diff --git a/_byte_buffer_util_8java.html b/_byte_buffer_util_8java.html
new file mode 100644
index 0000000000000000000000000000000000000000..1ead55152742876e35b0f88b4149390b29a8814b
--- /dev/null
+++ b/_byte_buffer_util_8java.html
@@ -0,0 +1,115 @@
+<!-- HTML header for doxygen 1.8.6-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
+<title>FlatBuffers: ByteBufferUtil.java File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+  $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+<link href="https://fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,500italic,700,700italic|Roboto+Mono:400,700" rel="stylesheet">
+<link href="style.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea" style="height: 110px;">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="commonprojectlogo">
+    <img alt="Logo" src="fpl_logo_small.png"/>
+  </td>
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">FlatBuffers
+   </div>
+   <div style="font-size:12px;">
+    An open source project by <a href="https://developers.google.com/games/#Tools">FPL</a>.
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.13 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_byte_buffer_util_8java.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Classes</a>  </div>
+  <div class="headertitle">
+<div class="title">ByteBufferUtil.java File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1google_1_1flatbuffers_1_1_byte_buffer_util.html">com.google.flatbuffers.ByteBufferUtil</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Class that collects utility functions around <code>ByteBuffer</code>.  <a href="classcom_1_1google_1_1flatbuffers_1_1_byte_buffer_util.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- Google Analytics -->
+<script>
+  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+  ga('create', 'UA-49880327-7', 'auto');
+  ga('send', 'pageview');
+</script>
+</body>
+</html>
diff --git a/_flat_buffer_builder_8cs.html b/_flat_buffer_builder_8cs.html
index cf1c0192c2501cbf7769e411abc6f3cd1c0dcfd4..9e4f0f9595c863c14cfc4fbc59817999ae176698 100644
--- a/_flat_buffer_builder_8cs.html
+++ b/_flat_buffer_builder_8cs.html
@@ -4,23 +4,21 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <title>FlatBuffers: FlatBufferBuilder.cs File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
 <link href="navtree.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
 <script type="text/javascript" src="navtree.js"></script>
 <script type="text/javascript">
   $(document).ready(initResizable);
-  $(window).load(resizeHeight);
 </script>
 <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
 <script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
-  $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,500italic,700,700italic|Roboto+Mono:400,700" rel="stylesheet">
 <link href="style.css" rel="stylesheet" type="text/css"/>
@@ -46,39 +44,19 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.7 -->
+<!-- Generated by Doxygen 1.8.13 -->
 <script type="text/javascript">
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </script>
-  <div id="navrow1" class="tabs">
-    <ul class="tablist">
-      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
-      <li><a href="usergroup0.html"><span>Programmer's&#160;Guide</span></a></li>
-      <li><a href="flatbuffers_support.html"><span>Platform&#160;/&#160;Language&#160;/&#160;Feature&#160;support</span></a></li>
-      <li><a href="flatbuffers_benchmarks.html"><span>Benchmarks</span></a></li>
-      <li><a href="flatbuffers_white_paper.html"><span>FlatBuffers&#160;white&#160;paper</span></a></li>
-      <li><a href="flatbuffers_internals.html"><span>FlatBuffers&#160;internals</span></a></li>
-      <li><a href="flatbuffers_grammar.html"><span>Grammar&#160;of&#160;the&#160;schema&#160;language</span></a></li>
-      <li><a href="usergroup2.html"><span>API&#160;Reference</span></a></li>
-      <li><a href="contributing.html"><span>Contributing</span></a></li>
-      <li>
-        <div id="MSearchBox" class="MSearchBoxInactive">
-        <span class="left">
-          <img id="MSearchSelect" src="search/mag_sel.png"
-               onmouseover="return searchBox.OnSearchSelectShow()"
-               onmouseout="return searchBox.OnSearchSelectHide()"
-               alt=""/>
-          <input type="text" id="MSearchField" value="Search" accesskey="S"
-               onfocus="searchBox.OnSearchFieldFocus(true)" 
-               onblur="searchBox.OnSearchFieldFocus(false)" 
-               onkeyup="searchBox.OnSearchFieldChange(event)"/>
-          </span><span class="right">
-            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
-          </span>
-        </div>
-      </li>
-    </ul>
-  </div>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -99,7 +77,7 @@ $(document).ready(function(){initNavTree('_flat_buffer_builder_8cs.html','');});
      onmouseover="return searchBox.OnSearchSelectShow()"
      onmouseout="return searchBox.OnSearchSelectHide()"
      onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Properties</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+</div>
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
@@ -125,8 +103,6 @@ Classes</h2></td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
 Namespaces</h2></td></tr>
-<tr class="memitem:namespace_flat_buffers"><td class="memItemLeft" align="right" valign="top">package &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespace_flat_buffers.html">FlatBuffers</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 </div><!-- contents -->
 </div><!-- doc-content -->
diff --git a/_flat_buffer_builder_8java.html b/_flat_buffer_builder_8java.html
index 9b55f793a4ba10556f358ddea2fcab415e96eae7..f1b4b9fcb2e098b6f9c91f07e741347ba7738cc0 100644
--- a/_flat_buffer_builder_8java.html
+++ b/_flat_buffer_builder_8java.html
@@ -4,23 +4,21 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <title>FlatBuffers: FlatBufferBuilder.java File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
 <link href="navtree.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
 <script type="text/javascript" src="navtree.js"></script>
 <script type="text/javascript">
   $(document).ready(initResizable);
-  $(window).load(resizeHeight);
 </script>
 <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
 <script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
-  $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,500italic,700,700italic|Roboto+Mono:400,700" rel="stylesheet">
 <link href="style.css" rel="stylesheet" type="text/css"/>
@@ -46,39 +44,19 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.7 -->
+<!-- Generated by Doxygen 1.8.13 -->
 <script type="text/javascript">
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </script>
-  <div id="navrow1" class="tabs">
-    <ul class="tablist">
-      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
-      <li><a href="usergroup0.html"><span>Programmer's&#160;Guide</span></a></li>
-      <li><a href="flatbuffers_support.html"><span>Platform&#160;/&#160;Language&#160;/&#160;Feature&#160;support</span></a></li>
-      <li><a href="flatbuffers_benchmarks.html"><span>Benchmarks</span></a></li>
-      <li><a href="flatbuffers_white_paper.html"><span>FlatBuffers&#160;white&#160;paper</span></a></li>
-      <li><a href="flatbuffers_internals.html"><span>FlatBuffers&#160;internals</span></a></li>
-      <li><a href="flatbuffers_grammar.html"><span>Grammar&#160;of&#160;the&#160;schema&#160;language</span></a></li>
-      <li><a href="usergroup2.html"><span>API&#160;Reference</span></a></li>
-      <li><a href="contributing.html"><span>Contributing</span></a></li>
-      <li>
-        <div id="MSearchBox" class="MSearchBoxInactive">
-        <span class="left">
-          <img id="MSearchSelect" src="search/mag_sel.png"
-               onmouseover="return searchBox.OnSearchSelectShow()"
-               onmouseout="return searchBox.OnSearchSelectHide()"
-               alt=""/>
-          <input type="text" id="MSearchField" value="Search" accesskey="S"
-               onfocus="searchBox.OnSearchFieldFocus(true)" 
-               onblur="searchBox.OnSearchFieldFocus(false)" 
-               onkeyup="searchBox.OnSearchFieldChange(event)"/>
-          </span><span class="right">
-            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
-          </span>
-        </div>
-      </li>
-    </ul>
-  </div>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -99,7 +77,7 @@ $(document).ready(function(){initNavTree('_flat_buffer_builder_8java.html','');}
      onmouseover="return searchBox.OnSearchSelectShow()"
      onmouseout="return searchBox.OnSearchSelectHide()"
      onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Properties</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+</div>
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
diff --git a/_flatbuffer_builder_8php.html b/_flatbuffer_builder_8php.html
index 0df720c7adac770b00542f3292e82da8d9375617..582f7c31fc43845c55d24b32ca29ef7f384b263d 100644
--- a/_flatbuffer_builder_8php.html
+++ b/_flatbuffer_builder_8php.html
@@ -4,23 +4,21 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <title>FlatBuffers: FlatbufferBuilder.php File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
 <link href="navtree.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
 <script type="text/javascript" src="navtree.js"></script>
 <script type="text/javascript">
   $(document).ready(initResizable);
-  $(window).load(resizeHeight);
 </script>
 <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
 <script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
-  $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,500italic,700,700italic|Roboto+Mono:400,700" rel="stylesheet">
 <link href="style.css" rel="stylesheet" type="text/css"/>
@@ -46,39 +44,19 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.7 -->
+<!-- Generated by Doxygen 1.8.13 -->
 <script type="text/javascript">
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </script>
-  <div id="navrow1" class="tabs">
-    <ul class="tablist">
-      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
-      <li><a href="usergroup0.html"><span>Programmer's&#160;Guide</span></a></li>
-      <li><a href="flatbuffers_support.html"><span>Platform&#160;/&#160;Language&#160;/&#160;Feature&#160;support</span></a></li>
-      <li><a href="flatbuffers_benchmarks.html"><span>Benchmarks</span></a></li>
-      <li><a href="flatbuffers_white_paper.html"><span>FlatBuffers&#160;white&#160;paper</span></a></li>
-      <li><a href="flatbuffers_internals.html"><span>FlatBuffers&#160;internals</span></a></li>
-      <li><a href="flatbuffers_grammar.html"><span>Grammar&#160;of&#160;the&#160;schema&#160;language</span></a></li>
-      <li><a href="usergroup2.html"><span>API&#160;Reference</span></a></li>
-      <li><a href="contributing.html"><span>Contributing</span></a></li>
-      <li>
-        <div id="MSearchBox" class="MSearchBoxInactive">
-        <span class="left">
-          <img id="MSearchSelect" src="search/mag_sel.png"
-               onmouseover="return searchBox.OnSearchSelectShow()"
-               onmouseout="return searchBox.OnSearchSelectHide()"
-               alt=""/>
-          <input type="text" id="MSearchField" value="Search" accesskey="S"
-               onfocus="searchBox.OnSearchFieldFocus(true)" 
-               onblur="searchBox.OnSearchFieldFocus(false)" 
-               onkeyup="searchBox.OnSearchFieldChange(event)"/>
-          </span><span class="right">
-            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
-          </span>
-        </div>
-      </li>
-    </ul>
-  </div>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -99,7 +77,7 @@ $(document).ready(function(){initNavTree('_flatbuffer_builder_8php.html','');});
      onmouseover="return searchBox.OnSearchSelectShow()"
      onmouseout="return searchBox.OnSearchSelectHide()"
      onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Properties</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+</div>
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
diff --git a/annotated.html b/annotated.html
index 3c9908ffdddbd54bf0b5f1df58ada3782804e7c8..939d668208ec30bdb34a8e5b390f1db09630b0b0 100644
--- a/annotated.html
+++ b/annotated.html
@@ -4,23 +4,21 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <title>FlatBuffers: Class List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
 <link href="navtree.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
 <script type="text/javascript" src="navtree.js"></script>
 <script type="text/javascript">
   $(document).ready(initResizable);
-  $(window).load(resizeHeight);
 </script>
 <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
 <script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
-  $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,500italic,700,700italic|Roboto+Mono:400,700" rel="stylesheet">
 <link href="style.css" rel="stylesheet" type="text/css"/>
@@ -46,53 +44,19 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.7 -->
+<!-- Generated by Doxygen 1.8.13 -->
 <script type="text/javascript">
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </script>
-  <div id="navrow1" class="tabs">
-    <ul class="tablist">
-      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
-      <li><a href="usergroup0.html"><span>Programmer's&#160;Guide</span></a></li>
-      <li><a href="flatbuffers_support.html"><span>Platform&#160;/&#160;Language&#160;/&#160;Feature&#160;support</span></a></li>
-      <li><a href="flatbuffers_benchmarks.html"><span>Benchmarks</span></a></li>
-      <li><a href="flatbuffers_white_paper.html"><span>FlatBuffers&#160;white&#160;paper</span></a></li>
-      <li><a href="flatbuffers_internals.html"><span>FlatBuffers&#160;internals</span></a></li>
-      <li><a href="flatbuffers_grammar.html"><span>Grammar&#160;of&#160;the&#160;schema&#160;language</span></a></li>
-      <li class="current"><a href="usergroup2.html"><span>API&#160;Reference</span></a></li>
-      <li><a href="contributing.html"><span>Contributing</span></a></li>
-      <li>
-        <div id="MSearchBox" class="MSearchBoxInactive">
-        <span class="left">
-          <img id="MSearchSelect" src="search/mag_sel.png"
-               onmouseover="return searchBox.OnSearchSelectShow()"
-               onmouseout="return searchBox.OnSearchSelectHide()"
-               alt=""/>
-          <input type="text" id="MSearchField" value="Search" accesskey="S"
-               onfocus="searchBox.OnSearchFieldFocus(true)" 
-               onblur="searchBox.OnSearchFieldFocus(false)" 
-               onkeyup="searchBox.OnSearchFieldChange(event)"/>
-          </span><span class="right">
-            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
-          </span>
-        </div>
-      </li>
-    </ul>
-  </div>
-  <div id="navrow2" class="tabs2">
-    <ul class="tablist">
-      <li><a href="modules.html"><span>APIs</span></a></li>
-      <li class="current"><a href="annotated.html"><span>Class&#160;List</span></a></li>
-    </ul>
-  </div>
-  <div id="navrow2" class="tabs2">
-    <ul class="tablist">
-      <li class="current"><a href="annotated.html"><span>Class&#160;List</span></a></li>
-      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
-      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
-      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
-    </ul>
-  </div>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -113,7 +77,7 @@ $(document).ready(function(){initNavTree('annotated.html','');});
      onmouseover="return searchBox.OnSearchSelectShow()"
      onmouseout="return searchBox.OnSearchSelectHide()"
      onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Properties</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+</div>
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
@@ -132,30 +96,31 @@ $(document).ready(function(){initNavTree('annotated.html','');});
 <tr id="row_0_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_0_" class="arrow" onclick="toggleFolder('0_')">&#9660;</span><span class="icona"><span class="icon">N</span></span><b>com</b></td><td class="desc"></td></tr>
 <tr id="row_0_0_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_0_0_" class="arrow" onclick="toggleFolder('0_0_')">&#9660;</span><span class="icona"><span class="icon">N</span></span><b>google</b></td><td class="desc"></td></tr>
 <tr id="row_0_0_0_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_0_0_0_" class="arrow" onclick="toggleFolder('0_0_0_')">&#9660;</span><span class="icona"><span class="icon">N</span></span><b>flatbuffers</b></td><td class="desc"></td></tr>
-<tr id="row_0_0_0_0_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span id="arr_0_0_0_0_" class="arrow" onclick="toggleFolder('0_0_0_0_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html" target="_self">FlatBufferBuilder</a></td><td class="desc">Class that helps you build a FlatBuffer </td></tr>
-<tr id="row_0_0_0_0_0_" class="even"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="interfacecom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder_1_1_byte_buffer_factory.html" target="_self">ByteBufferFactory</a></td><td class="desc">An interface that provides a user of the FlatBufferBuilder class the ability to specify the method in which the internal buffer gets allocated </td></tr>
-<tr id="row_0_0_0_0_1_"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder_1_1_heap_byte_buffer_factory.html" target="_self">HeapByteBufferFactory</a></td><td class="desc">An implementation of the ByteBufferFactory interface that is used when one is not provided by the user </td></tr>
-<tr id="row_1_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_1_" class="arrow" onclick="toggleFolder('1_')">&#9660;</span><span class="icona"><span class="icon">N</span></span><b>flatbuffers</b></td><td class="desc"></td></tr>
-<tr id="row_1_0_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflatbuffers_1_1_allocator.html" target="_self">Allocator</a></td><td class="desc"></td></tr>
-<tr id="row_1_1_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflatbuffers_1_1_default_allocator.html" target="_self">DefaultAllocator</a></td><td class="desc"></td></tr>
-<tr id="row_1_2_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflatbuffers_1_1_detached_buffer.html" target="_self">DetachedBuffer</a></td><td class="desc"></td></tr>
-<tr id="row_1_3_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_1_3_" class="arrow" onclick="toggleFolder('1_3_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html" target="_self">FlatBufferBuilder</a></td><td class="desc">Helper class to hold data needed in creation of a FlatBuffer </td></tr>
-<tr id="row_1_3_0_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structflatbuffers_1_1_flat_buffer_builder_1_1_field_loc.html" target="_self">FieldLoc</a></td><td class="desc"></td></tr>
-<tr id="row_1_3_1_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structflatbuffers_1_1_flat_buffer_builder_1_1_string_offset_compare.html" target="_self">StringOffsetCompare</a></td><td class="desc"></td></tr>
-<tr id="row_1_4_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structflatbuffers_1_1_indirect_helper.html" target="_self">IndirectHelper</a></td><td class="desc"></td></tr>
-<tr id="row_1_5_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structflatbuffers_1_1_indirect_helper_3_01const_01_t_01_5_01_4.html" target="_self">IndirectHelper&lt; const T * &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_1_6_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structflatbuffers_1_1_indirect_helper_3_01_offset_3_01_t_01_4_01_4.html" target="_self">IndirectHelper&lt; Offset&lt; T &gt; &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_1_7_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structflatbuffers_1_1_offset.html" target="_self">Offset</a></td><td class="desc"></td></tr>
-<tr id="row_1_8_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structflatbuffers_1_1_string.html" target="_self">String</a></td><td class="desc"></td></tr>
-<tr id="row_1_9_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflatbuffers_1_1_vector.html" target="_self">Vector</a></td><td class="desc"></td></tr>
-<tr id="row_1_10_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflatbuffers_1_1vector__downward.html" target="_self">vector_downward</a></td><td class="desc"></td></tr>
-<tr id="row_1_11_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structflatbuffers_1_1_vector_iterator.html" target="_self">VectorIterator</a></td><td class="desc"></td></tr>
-<tr id="row_1_12_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflatbuffers_1_1_vector_of_any.html" target="_self">VectorOfAny</a></td><td class="desc"></td></tr>
-<tr id="row_2_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_2_" class="arrow" onclick="toggleFolder('2_')">&#9660;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespace_flat_buffers.html" target="_self">FlatBuffers</a></td><td class="desc"></td></tr>
-<tr id="row_2_0_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_flat_buffers_1_1_flat_buffer_builder.html" target="_self">FlatBufferBuilder</a></td><td class="desc">Responsible for building up and accessing a FlatBuffer formatted byte array (via ByteBuffer) </td></tr>
-<tr id="row_3_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_3_" class="arrow" onclick="toggleFolder('3_')">&#9660;</span><span class="icona"><span class="icon">N</span></span><b>Google</b></td><td class="desc"></td></tr>
-<tr id="row_3_0_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_3_0_" class="arrow" onclick="toggleFolder('3_0_')">&#9660;</span><span class="icona"><span class="icon">N</span></span><b>FlatBuffers</b></td><td class="desc"></td></tr>
-<tr id="row_3_0_0_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html" target="_self">FlatbufferBuilder</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_0_0_"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classcom_1_1google_1_1flatbuffers_1_1_byte_buffer_util.html" target="_self">ByteBufferUtil</a></td><td class="desc">Class that collects utility functions around <code>ByteBuffer</code> </td></tr>
+<tr id="row_0_0_0_1_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span id="arr_0_0_0_1_" class="arrow" onclick="toggleFolder('0_0_0_1_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html" target="_self">FlatBufferBuilder</a></td><td class="desc">Class that helps you build a FlatBuffer </td></tr>
+<tr id="row_0_0_0_1_0_"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="interfacecom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder_1_1_byte_buffer_factory.html" target="_self">ByteBufferFactory</a></td><td class="desc">An interface that provides a user of the FlatBufferBuilder class the ability to specify the method in which the internal buffer gets allocated </td></tr>
+<tr id="row_0_0_0_1_1_" class="even"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder_1_1_heap_byte_buffer_factory.html" target="_self">HeapByteBufferFactory</a></td><td class="desc">An implementation of the ByteBufferFactory interface that is used when one is not provided by the user </td></tr>
+<tr id="row_1_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_1_" class="arrow" onclick="toggleFolder('1_')">&#9660;</span><span class="icona"><span class="icon">N</span></span><b>flatbuffers</b></td><td class="desc"></td></tr>
+<tr id="row_1_0_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflatbuffers_1_1_allocator.html" target="_self">Allocator</a></td><td class="desc"></td></tr>
+<tr id="row_1_1_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflatbuffers_1_1_default_allocator.html" target="_self">DefaultAllocator</a></td><td class="desc"></td></tr>
+<tr id="row_1_2_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflatbuffers_1_1_detached_buffer.html" target="_self">DetachedBuffer</a></td><td class="desc"></td></tr>
+<tr id="row_1_3_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_1_3_" class="arrow" onclick="toggleFolder('1_3_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html" target="_self">FlatBufferBuilder</a></td><td class="desc">Helper class to hold data needed in creation of a FlatBuffer </td></tr>
+<tr id="row_1_3_0_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structflatbuffers_1_1_flat_buffer_builder_1_1_field_loc.html" target="_self">FieldLoc</a></td><td class="desc"></td></tr>
+<tr id="row_1_3_1_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structflatbuffers_1_1_flat_buffer_builder_1_1_string_offset_compare.html" target="_self">StringOffsetCompare</a></td><td class="desc"></td></tr>
+<tr id="row_1_4_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structflatbuffers_1_1_indirect_helper.html" target="_self">IndirectHelper</a></td><td class="desc"></td></tr>
+<tr id="row_1_5_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structflatbuffers_1_1_indirect_helper_3_01const_01_t_01_5_01_4.html" target="_self">IndirectHelper&lt; const T * &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_1_6_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structflatbuffers_1_1_indirect_helper_3_01_offset_3_01_t_01_4_01_4.html" target="_self">IndirectHelper&lt; Offset&lt; T &gt; &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_1_7_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structflatbuffers_1_1_offset.html" target="_self">Offset</a></td><td class="desc"></td></tr>
+<tr id="row_1_8_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structflatbuffers_1_1_string.html" target="_self">String</a></td><td class="desc"></td></tr>
+<tr id="row_1_9_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflatbuffers_1_1_vector.html" target="_self">Vector</a></td><td class="desc"></td></tr>
+<tr id="row_1_10_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflatbuffers_1_1vector__downward.html" target="_self">vector_downward</a></td><td class="desc"></td></tr>
+<tr id="row_1_11_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structflatbuffers_1_1_vector_iterator.html" target="_self">VectorIterator</a></td><td class="desc"></td></tr>
+<tr id="row_1_12_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflatbuffers_1_1_vector_of_any.html" target="_self">VectorOfAny</a></td><td class="desc"></td></tr>
+<tr id="row_2_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_2_" class="arrow" onclick="toggleFolder('2_')">&#9660;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespace_flat_buffers.html" target="_self">FlatBuffers</a></td><td class="desc"></td></tr>
+<tr id="row_2_0_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_flat_buffers_1_1_flat_buffer_builder.html" target="_self">FlatBufferBuilder</a></td><td class="desc">Responsible for building up and accessing a FlatBuffer formatted byte array (via ByteBuffer) </td></tr>
+<tr id="row_3_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_3_" class="arrow" onclick="toggleFolder('3_')">&#9660;</span><span class="icona"><span class="icon">N</span></span><b>Google</b></td><td class="desc"></td></tr>
+<tr id="row_3_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_3_0_" class="arrow" onclick="toggleFolder('3_0_')">&#9660;</span><span class="icona"><span class="icon">N</span></span><b>FlatBuffers</b></td><td class="desc"></td></tr>
+<tr id="row_3_0_0_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html" target="_self">FlatbufferBuilder</a></td><td class="desc"></td></tr>
 </table>
 </div><!-- directory -->
 </div><!-- contents -->
diff --git a/annotated_dup.js b/annotated_dup.js
new file mode 100644
index 0000000000000000000000000000000000000000..b4f6c60ccf276a8e79508571d1a32297fdd9dce5
--- /dev/null
+++ b/annotated_dup.js
@@ -0,0 +1,32 @@
+var annotated_dup =
+[
+    [ "com", null, [
+      [ "google", null, [
+        [ "flatbuffers", null, [
+          [ "ByteBufferUtil", "classcom_1_1google_1_1flatbuffers_1_1_byte_buffer_util.html", "classcom_1_1google_1_1flatbuffers_1_1_byte_buffer_util" ],
+          [ "FlatBufferBuilder", "classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html", "classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder" ]
+        ] ]
+      ] ]
+    ] ],
+    [ "flatbuffers", null, [
+      [ "Allocator", "classflatbuffers_1_1_allocator.html", "classflatbuffers_1_1_allocator" ],
+      [ "DefaultAllocator", "classflatbuffers_1_1_default_allocator.html", "classflatbuffers_1_1_default_allocator" ],
+      [ "DetachedBuffer", "classflatbuffers_1_1_detached_buffer.html", "classflatbuffers_1_1_detached_buffer" ],
+      [ "FlatBufferBuilder", "classflatbuffers_1_1_flat_buffer_builder.html", "classflatbuffers_1_1_flat_buffer_builder" ],
+      [ "IndirectHelper", "structflatbuffers_1_1_indirect_helper.html", "structflatbuffers_1_1_indirect_helper" ],
+      [ "IndirectHelper< const T * >", "structflatbuffers_1_1_indirect_helper_3_01const_01_t_01_5_01_4.html", "structflatbuffers_1_1_indirect_helper_3_01const_01_t_01_5_01_4" ],
+      [ "IndirectHelper< Offset< T > >", "structflatbuffers_1_1_indirect_helper_3_01_offset_3_01_t_01_4_01_4.html", "structflatbuffers_1_1_indirect_helper_3_01_offset_3_01_t_01_4_01_4" ],
+      [ "Offset", "structflatbuffers_1_1_offset.html", "structflatbuffers_1_1_offset" ],
+      [ "String", "structflatbuffers_1_1_string.html", "structflatbuffers_1_1_string" ],
+      [ "Vector", "classflatbuffers_1_1_vector.html", "classflatbuffers_1_1_vector" ],
+      [ "vector_downward", "classflatbuffers_1_1vector__downward.html", "classflatbuffers_1_1vector__downward" ],
+      [ "VectorIterator", "structflatbuffers_1_1_vector_iterator.html", "structflatbuffers_1_1_vector_iterator" ],
+      [ "VectorOfAny", "classflatbuffers_1_1_vector_of_any.html", "classflatbuffers_1_1_vector_of_any" ]
+    ] ],
+    [ "FlatBuffers", "namespace_flat_buffers.html", "namespace_flat_buffers" ],
+    [ "Google", null, [
+      [ "FlatBuffers", null, [
+        [ "FlatbufferBuilder", "class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html", "class_google_1_1_flat_buffers_1_1_flatbuffer_builder" ]
+      ] ]
+    ] ]
+];
\ No newline at end of file
diff --git a/class_flat_buffers_1_1_flat_buffer_builder-members.html b/class_flat_buffers_1_1_flat_buffer_builder-members.html
index 8235f0b315991166d633d2fc9a3d7cf4acf2ee45..578505f4b94016fc62a7752528486b41c323c538 100644
--- a/class_flat_buffers_1_1_flat_buffer_builder-members.html
+++ b/class_flat_buffers_1_1_flat_buffer_builder-members.html
@@ -4,23 +4,21 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <title>FlatBuffers: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
 <link href="navtree.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
 <script type="text/javascript" src="navtree.js"></script>
 <script type="text/javascript">
   $(document).ready(initResizable);
-  $(window).load(resizeHeight);
 </script>
 <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
 <script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
-  $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,500italic,700,700italic|Roboto+Mono:400,700" rel="stylesheet">
 <link href="style.css" rel="stylesheet" type="text/css"/>
@@ -46,53 +44,19 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.7 -->
+<!-- Generated by Doxygen 1.8.13 -->
 <script type="text/javascript">
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </script>
-  <div id="navrow1" class="tabs">
-    <ul class="tablist">
-      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
-      <li><a href="usergroup0.html"><span>Programmer's&#160;Guide</span></a></li>
-      <li><a href="flatbuffers_support.html"><span>Platform&#160;/&#160;Language&#160;/&#160;Feature&#160;support</span></a></li>
-      <li><a href="flatbuffers_benchmarks.html"><span>Benchmarks</span></a></li>
-      <li><a href="flatbuffers_white_paper.html"><span>FlatBuffers&#160;white&#160;paper</span></a></li>
-      <li><a href="flatbuffers_internals.html"><span>FlatBuffers&#160;internals</span></a></li>
-      <li><a href="flatbuffers_grammar.html"><span>Grammar&#160;of&#160;the&#160;schema&#160;language</span></a></li>
-      <li class="current"><a href="usergroup2.html"><span>API&#160;Reference</span></a></li>
-      <li><a href="contributing.html"><span>Contributing</span></a></li>
-      <li>
-        <div id="MSearchBox" class="MSearchBoxInactive">
-        <span class="left">
-          <img id="MSearchSelect" src="search/mag_sel.png"
-               onmouseover="return searchBox.OnSearchSelectShow()"
-               onmouseout="return searchBox.OnSearchSelectHide()"
-               alt=""/>
-          <input type="text" id="MSearchField" value="Search" accesskey="S"
-               onfocus="searchBox.OnSearchFieldFocus(true)" 
-               onblur="searchBox.OnSearchFieldFocus(false)" 
-               onkeyup="searchBox.OnSearchFieldChange(event)"/>
-          </span><span class="right">
-            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
-          </span>
-        </div>
-      </li>
-    </ul>
-  </div>
-  <div id="navrow2" class="tabs2">
-    <ul class="tablist">
-      <li><a href="modules.html"><span>APIs</span></a></li>
-      <li class="current"><a href="annotated.html"><span>Class&#160;List</span></a></li>
-    </ul>
-  </div>
-  <div id="navrow2" class="tabs2">
-    <ul class="tablist">
-      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
-      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
-      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
-      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
-    </ul>
-  </div>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -113,7 +77,7 @@ $(document).ready(function(){initNavTree('class_flat_buffers_1_1_flat_buffer_bui
      onmouseover="return searchBox.OnSearchSelectShow()"
      onmouseout="return searchBox.OnSearchSelectHide()"
      onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Properties</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+</div>
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
@@ -147,8 +111,12 @@ $(document).ready(function(){initNavTree('class_flat_buffers_1_1_flat_buffer_bui
   <tr class="even"><td class="entry"><a class="el" href="class_flat_buffers_1_1_flat_buffer_builder.html#a82219d659221dfc4c271399d9e56c47a">CreateVectorOfTables&lt; T &gt;</a>(Offset&lt; T &gt;[] offsets)</td><td class="entry"><a class="el" href="class_flat_buffers_1_1_flat_buffer_builder.html">FlatBuffers.FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr><td class="entry"><a class="el" href="class_flat_buffers_1_1_flat_buffer_builder.html#a6f0cbd075878e2c0f021c0947cc8a211">DataBuffer</a></td><td class="entry"><a class="el" href="class_flat_buffers_1_1_flat_buffer_builder.html">FlatBuffers.FlatBufferBuilder</a></td><td class="entry"></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="class_flat_buffers_1_1_flat_buffer_builder.html#a7cacff748cbf996b52de2e31e731af41">EndVector</a>()</td><td class="entry"><a class="el" href="class_flat_buffers_1_1_flat_buffer_builder.html">FlatBuffers.FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr><td class="entry"><a class="el" href="class_flat_buffers_1_1_flat_buffer_builder.html#a1afc6853539aaff7ac6937ed03ff5c7b">Finish</a>(int rootTable)</td><td class="entry"><a class="el" href="class_flat_buffers_1_1_flat_buffer_builder.html">FlatBuffers.FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="class_flat_buffers_1_1_flat_buffer_builder.html#a709d1ded4ffd922b61bc6f7f4a12fb97">Finish</a>(int rootTable, bool sizePrefix)</td><td class="entry"><a class="el" href="class_flat_buffers_1_1_flat_buffer_builder.html">FlatBuffers.FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="class_flat_buffers_1_1_flat_buffer_builder.html#a1afc6853539aaff7ac6937ed03ff5c7b">Finish</a>(int rootTable)</td><td class="entry"><a class="el" href="class_flat_buffers_1_1_flat_buffer_builder.html">FlatBuffers.FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="class_flat_buffers_1_1_flat_buffer_builder.html#a703062d740b32a77d26c5f6d1928c75f">Finish</a>(int rootTable, string fileIdentifier, bool sizePrefix)</td><td class="entry"><a class="el" href="class_flat_buffers_1_1_flat_buffer_builder.html">FlatBuffers.FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="class_flat_buffers_1_1_flat_buffer_builder.html#ac7a48fd125d3f65f1bc1bc67d74eae73">Finish</a>(int rootTable, string fileIdentifier)</td><td class="entry"><a class="el" href="class_flat_buffers_1_1_flat_buffer_builder.html">FlatBuffers.FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="class_flat_buffers_1_1_flat_buffer_builder.html#a425ab2bd13a0e4331a7190ec2d17c3b2">FinishSizePrefixed</a>(int rootTable)</td><td class="entry"><a class="el" href="class_flat_buffers_1_1_flat_buffer_builder.html">FlatBuffers.FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="class_flat_buffers_1_1_flat_buffer_builder.html#a92de6a8a35e1ae5a07f5578bb0fda16c">FinishSizePrefixed</a>(int rootTable, string fileIdentifier)</td><td class="entry"><a class="el" href="class_flat_buffers_1_1_flat_buffer_builder.html">FlatBuffers.FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr><td class="entry"><a class="el" href="class_flat_buffers_1_1_flat_buffer_builder.html#ae24f93e3f9672846dd241d585d62c63d">FlatBufferBuilder</a>(int initialSize)</td><td class="entry"><a class="el" href="class_flat_buffers_1_1_flat_buffer_builder.html">FlatBuffers.FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="class_flat_buffers_1_1_flat_buffer_builder.html#a40d549b2db96b91b2345d1a44ff3fe13">ForceDefaults</a></td><td class="entry"><a class="el" href="class_flat_buffers_1_1_flat_buffer_builder.html">FlatBuffers.FlatBufferBuilder</a></td><td class="entry"></td></tr>
   <tr><td class="entry"><a class="el" href="class_flat_buffers_1_1_flat_buffer_builder.html#abfd2f4e19cf51f62290a0272683f23b2">SizedByteArray</a>()</td><td class="entry"><a class="el" href="class_flat_buffers_1_1_flat_buffer_builder.html">FlatBuffers.FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
diff --git a/class_flat_buffers_1_1_flat_buffer_builder.html b/class_flat_buffers_1_1_flat_buffer_builder.html
index 5dc922092b10aa05ffcfdcead79bfff68b048e3f..0382277588c5346e0a970dd9349187adc8490178 100644
--- a/class_flat_buffers_1_1_flat_buffer_builder.html
+++ b/class_flat_buffers_1_1_flat_buffer_builder.html
@@ -4,23 +4,21 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <title>FlatBuffers: FlatBuffers.FlatBufferBuilder Class Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
 <link href="navtree.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
 <script type="text/javascript" src="navtree.js"></script>
 <script type="text/javascript">
   $(document).ready(initResizable);
-  $(window).load(resizeHeight);
 </script>
 <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
 <script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
-  $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,500italic,700,700italic|Roboto+Mono:400,700" rel="stylesheet">
 <link href="style.css" rel="stylesheet" type="text/css"/>
@@ -46,53 +44,19 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.7 -->
+<!-- Generated by Doxygen 1.8.13 -->
 <script type="text/javascript">
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </script>
-  <div id="navrow1" class="tabs">
-    <ul class="tablist">
-      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
-      <li><a href="usergroup0.html"><span>Programmer's&#160;Guide</span></a></li>
-      <li><a href="flatbuffers_support.html"><span>Platform&#160;/&#160;Language&#160;/&#160;Feature&#160;support</span></a></li>
-      <li><a href="flatbuffers_benchmarks.html"><span>Benchmarks</span></a></li>
-      <li><a href="flatbuffers_white_paper.html"><span>FlatBuffers&#160;white&#160;paper</span></a></li>
-      <li><a href="flatbuffers_internals.html"><span>FlatBuffers&#160;internals</span></a></li>
-      <li><a href="flatbuffers_grammar.html"><span>Grammar&#160;of&#160;the&#160;schema&#160;language</span></a></li>
-      <li class="current"><a href="usergroup2.html"><span>API&#160;Reference</span></a></li>
-      <li><a href="contributing.html"><span>Contributing</span></a></li>
-      <li>
-        <div id="MSearchBox" class="MSearchBoxInactive">
-        <span class="left">
-          <img id="MSearchSelect" src="search/mag_sel.png"
-               onmouseover="return searchBox.OnSearchSelectShow()"
-               onmouseout="return searchBox.OnSearchSelectHide()"
-               alt=""/>
-          <input type="text" id="MSearchField" value="Search" accesskey="S"
-               onfocus="searchBox.OnSearchFieldFocus(true)" 
-               onblur="searchBox.OnSearchFieldFocus(false)" 
-               onkeyup="searchBox.OnSearchFieldChange(event)"/>
-          </span><span class="right">
-            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
-          </span>
-        </div>
-      </li>
-    </ul>
-  </div>
-  <div id="navrow2" class="tabs2">
-    <ul class="tablist">
-      <li><a href="modules.html"><span>APIs</span></a></li>
-      <li class="current"><a href="annotated.html"><span>Class&#160;List</span></a></li>
-    </ul>
-  </div>
-  <div id="navrow2" class="tabs2">
-    <ul class="tablist">
-      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
-      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
-      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
-      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
-    </ul>
-  </div>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -113,7 +77,7 @@ $(document).ready(function(){initNavTree('class_flat_buffers_1_1_flat_buffer_bui
      onmouseover="return searchBox.OnSearchSelectShow()"
      onmouseout="return searchBox.OnSearchSelectHide()"
      onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Properties</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+</div>
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
@@ -125,6 +89,7 @@ $(document).ready(function(){initNavTree('class_flat_buffers_1_1_flat_buffer_bui
 <div class="header">
   <div class="summary">
 <a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pro-methods">Protected Member Functions</a> &#124;
 <a href="#properties">Properties</a> &#124;
 <a href="class_flat_buffers_1_1_flat_buffer_builder-members.html">List of all members</a>  </div>
   <div class="headertitle">
@@ -193,13 +158,28 @@ Public Member Functions</h2></td></tr>
 <tr class="memitem:ac7a48fd125d3f65f1bc1bc67d74eae73"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_flat_buffers_1_1_flat_buffer_builder.html#ac7a48fd125d3f65f1bc1bc67d74eae73">Finish</a> (int rootTable, string fileIdentifier)</td></tr>
 <tr class="memdesc:ac7a48fd125d3f65f1bc1bc67d74eae73"><td class="mdescLeft">&#160;</td><td class="mdescRight">Finalize a buffer, pointing to the given <code>rootTable</code>.  <a href="#ac7a48fd125d3f65f1bc1bc67d74eae73">More...</a><br /></td></tr>
 <tr class="separator:ac7a48fd125d3f65f1bc1bc67d74eae73"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a425ab2bd13a0e4331a7190ec2d17c3b2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_flat_buffers_1_1_flat_buffer_builder.html#a425ab2bd13a0e4331a7190ec2d17c3b2">FinishSizePrefixed</a> (int rootTable)</td></tr>
+<tr class="memdesc:a425ab2bd13a0e4331a7190ec2d17c3b2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Finalize a buffer, pointing to the given <code>root_table</code>, with the size prefixed.  <a href="#a425ab2bd13a0e4331a7190ec2d17c3b2">More...</a><br /></td></tr>
+<tr class="separator:a425ab2bd13a0e4331a7190ec2d17c3b2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a92de6a8a35e1ae5a07f5578bb0fda16c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_flat_buffers_1_1_flat_buffer_builder.html#a92de6a8a35e1ae5a07f5578bb0fda16c">FinishSizePrefixed</a> (int rootTable, string fileIdentifier)</td></tr>
+<tr class="memdesc:a92de6a8a35e1ae5a07f5578bb0fda16c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Finalize a buffer, pointing to the given <code>rootTable</code>, with the size prefixed.  <a href="#a92de6a8a35e1ae5a07f5578bb0fda16c">More...</a><br /></td></tr>
+<tr class="separator:a92de6a8a35e1ae5a07f5578bb0fda16c"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ae24f93e3f9672846dd241d585d62c63d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_flat_buffers_1_1_flat_buffer_builder.html#ae24f93e3f9672846dd241d585d62c63d">FlatBufferBuilder</a> (int initialSize)</td></tr>
 <tr class="memdesc:ae24f93e3f9672846dd241d585d62c63d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a FlatBufferBuilder with a given initial size.  <a href="#ae24f93e3f9672846dd241d585d62c63d">More...</a><br /></td></tr>
 <tr class="separator:ae24f93e3f9672846dd241d585d62c63d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:abfd2f4e19cf51f62290a0272683f23b2"><td class="memItemLeft" align="right" valign="top">byte[]&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_flat_buffers_1_1_flat_buffer_builder.html#abfd2f4e19cf51f62290a0272683f23b2">SizedByteArray</a> ()</td></tr>
+<tr class="memitem:abfd2f4e19cf51f62290a0272683f23b2"><td class="memItemLeft" align="right" valign="top">byte []&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_flat_buffers_1_1_flat_buffer_builder.html#abfd2f4e19cf51f62290a0272683f23b2">SizedByteArray</a> ()</td></tr>
 <tr class="memdesc:abfd2f4e19cf51f62290a0272683f23b2"><td class="mdescLeft">&#160;</td><td class="mdescRight">A utility function to copy and return the ByteBuffer data as a <code>byte[]</code>.  <a href="#abfd2f4e19cf51f62290a0272683f23b2">More...</a><br /></td></tr>
 <tr class="separator:abfd2f4e19cf51f62290a0272683f23b2"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
+Protected Member Functions</h2></td></tr>
+<tr class="memitem:a709d1ded4ffd922b61bc6f7f4a12fb97"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_flat_buffers_1_1_flat_buffer_builder.html#a709d1ded4ffd922b61bc6f7f4a12fb97">Finish</a> (int rootTable, bool sizePrefix)</td></tr>
+<tr class="memdesc:a709d1ded4ffd922b61bc6f7f4a12fb97"><td class="mdescLeft">&#160;</td><td class="mdescRight">Finalize a buffer, pointing to the given <code>root_table</code>.  <a href="#a709d1ded4ffd922b61bc6f7f4a12fb97">More...</a><br /></td></tr>
+<tr class="separator:a709d1ded4ffd922b61bc6f7f4a12fb97"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a703062d740b32a77d26c5f6d1928c75f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_flat_buffers_1_1_flat_buffer_builder.html#a703062d740b32a77d26c5f6d1928c75f">Finish</a> (int rootTable, string fileIdentifier, bool sizePrefix)</td></tr>
+<tr class="memdesc:a703062d740b32a77d26c5f6d1928c75f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Finalize a buffer, pointing to the given <code>rootTable</code>.  <a href="#a703062d740b32a77d26c5f6d1928c75f">More...</a><br /></td></tr>
+<tr class="separator:a703062d740b32a77d26c5f6d1928c75f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="properties"></a>
 Properties</h2></td></tr>
 <tr class="memitem:a6f0cbd075878e2c0f021c0947cc8a211"><td class="memItemLeft" align="right" valign="top">ByteBuffer&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_flat_buffers_1_1_flat_buffer_builder.html#a6f0cbd075878e2c0f021c0947cc8a211">DataBuffer</a><code> [get]</code></td></tr>
@@ -210,7 +190,9 @@ Properties</h2></td></tr>
 <tr class="separator:a40d549b2db96b91b2345d1a44ff3fe13"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
-<a class="anchor" id="ae24f93e3f9672846dd241d585d62c63d"></a>
+<a id="ae24f93e3f9672846dd241d585d62c63d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ae24f93e3f9672846dd241d585d62c63d">&#9670;&nbsp;</a></span>FlatBufferBuilder()</h2>
+
 <div class="memitem">
 <div class="memproto">
 <table class="mlabels">
@@ -243,7 +225,9 @@ Properties</h2></td></tr>
 </div>
 </div>
 <h2 class="groupheader">Member Function Documentation</h2>
-<a class="anchor" id="a6b66d785555d19cd0f141978eff78e2e"></a>
+<a id="a6b66d785555d19cd0f141978eff78e2e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a6b66d785555d19cd0f141978eff78e2e">&#9670;&nbsp;</a></span>AddBool()</h2>
+
 <div class="memitem">
 <div class="memproto">
 <table class="mlabels">
@@ -275,7 +259,9 @@ Properties</h2></td></tr>
 
 </div>
 </div>
-<a class="anchor" id="ac11b10888152d4f687e8ce4d60022254"></a>
+<a id="ac11b10888152d4f687e8ce4d60022254"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ac11b10888152d4f687e8ce4d60022254">&#9670;&nbsp;</a></span>AddByte()</h2>
+
 <div class="memitem">
 <div class="memproto">
 <table class="mlabels">
@@ -307,7 +293,9 @@ Properties</h2></td></tr>
 
 </div>
 </div>
-<a class="anchor" id="aef6feaf282148043e6a1c9c1ba9e2094"></a>
+<a id="aef6feaf282148043e6a1c9c1ba9e2094"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aef6feaf282148043e6a1c9c1ba9e2094">&#9670;&nbsp;</a></span>AddDouble()</h2>
+
 <div class="memitem">
 <div class="memproto">
 <table class="mlabels">
@@ -339,7 +327,9 @@ Properties</h2></td></tr>
 
 </div>
 </div>
-<a class="anchor" id="a41a1e6f7e7b9098a9d8c1af7157ef2bf"></a>
+<a id="a41a1e6f7e7b9098a9d8c1af7157ef2bf"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a41a1e6f7e7b9098a9d8c1af7157ef2bf">&#9670;&nbsp;</a></span>AddFloat()</h2>
+
 <div class="memitem">
 <div class="memproto">
 <table class="mlabels">
@@ -371,7 +361,9 @@ Properties</h2></td></tr>
 
 </div>
 </div>
-<a class="anchor" id="a7970bfc069caeee5dfd994e6c1106ab9"></a>
+<a id="a7970bfc069caeee5dfd994e6c1106ab9"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a7970bfc069caeee5dfd994e6c1106ab9">&#9670;&nbsp;</a></span>AddInt()</h2>
+
 <div class="memitem">
 <div class="memproto">
 <table class="mlabels">
@@ -403,7 +395,9 @@ Properties</h2></td></tr>
 
 </div>
 </div>
-<a class="anchor" id="a0d182e151b4f57d47069885cc1d05893"></a>
+<a id="a0d182e151b4f57d47069885cc1d05893"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a0d182e151b4f57d47069885cc1d05893">&#9670;&nbsp;</a></span>AddLong()</h2>
+
 <div class="memitem">
 <div class="memproto">
 <table class="mlabels">
@@ -435,7 +429,9 @@ Properties</h2></td></tr>
 
 </div>
 </div>
-<a class="anchor" id="ae1d6d927d400c330cae48951eae546e5"></a>
+<a id="ae1d6d927d400c330cae48951eae546e5"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ae1d6d927d400c330cae48951eae546e5">&#9670;&nbsp;</a></span>AddOffset()</h2>
+
 <div class="memitem">
 <div class="memproto">
 <table class="mlabels">
@@ -467,7 +463,9 @@ Properties</h2></td></tr>
 
 </div>
 </div>
-<a class="anchor" id="a0b2addc87bde29213424a187b7b08707"></a>
+<a id="a0b2addc87bde29213424a187b7b08707"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a0b2addc87bde29213424a187b7b08707">&#9670;&nbsp;</a></span>AddSbyte()</h2>
+
 <div class="memitem">
 <div class="memproto">
 <table class="mlabels">
@@ -499,7 +497,9 @@ Properties</h2></td></tr>
 
 </div>
 </div>
-<a class="anchor" id="a93b38c262a248e625ea3719dddf903eb"></a>
+<a id="a93b38c262a248e625ea3719dddf903eb"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a93b38c262a248e625ea3719dddf903eb">&#9670;&nbsp;</a></span>AddShort()</h2>
+
 <div class="memitem">
 <div class="memproto">
 <table class="mlabels">
@@ -531,7 +531,9 @@ Properties</h2></td></tr>
 
 </div>
 </div>
-<a class="anchor" id="aef3581dee532ab763b99947ca43ddcfa"></a>
+<a id="aef3581dee532ab763b99947ca43ddcfa"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aef3581dee532ab763b99947ca43ddcfa">&#9670;&nbsp;</a></span>AddUint()</h2>
+
 <div class="memitem">
 <div class="memproto">
 <table class="mlabels">
@@ -563,7 +565,9 @@ Properties</h2></td></tr>
 
 </div>
 </div>
-<a class="anchor" id="aa9cc4371456b85d6393958ab56cbc515"></a>
+<a id="aa9cc4371456b85d6393958ab56cbc515"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aa9cc4371456b85d6393958ab56cbc515">&#9670;&nbsp;</a></span>AddUlong()</h2>
+
 <div class="memitem">
 <div class="memproto">
 <table class="mlabels">
@@ -595,7 +599,9 @@ Properties</h2></td></tr>
 
 </div>
 </div>
-<a class="anchor" id="a52c19b3daa97b0272da0dd7121b2ff5f"></a>
+<a id="a52c19b3daa97b0272da0dd7121b2ff5f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a52c19b3daa97b0272da0dd7121b2ff5f">&#9670;&nbsp;</a></span>AddUshort()</h2>
+
 <div class="memitem">
 <div class="memproto">
 <table class="mlabels">
@@ -627,7 +633,9 @@ Properties</h2></td></tr>
 
 </div>
 </div>
-<a class="anchor" id="a74ed0e43043c6e486dbe40b0d2ff63d6"></a>
+<a id="a74ed0e43043c6e486dbe40b0d2ff63d6"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a74ed0e43043c6e486dbe40b0d2ff63d6">&#9670;&nbsp;</a></span>Clear()</h2>
+
 <div class="memitem">
 <div class="memproto">
 <table class="mlabels">
@@ -652,7 +660,9 @@ Properties</h2></td></tr>
 
 </div>
 </div>
-<a class="anchor" id="a3b6e42519f278e4a060895633d048070"></a>
+<a id="a3b6e42519f278e4a060895633d048070"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a3b6e42519f278e4a060895633d048070">&#9670;&nbsp;</a></span>CreateString()</h2>
+
 <div class="memitem">
 <div class="memproto">
 <table class="mlabels">
@@ -685,7 +695,9 @@ Properties</h2></td></tr>
 
 </div>
 </div>
-<a class="anchor" id="a82219d659221dfc4c271399d9e56c47a"></a>
+<a id="a82219d659221dfc4c271399d9e56c47a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a82219d659221dfc4c271399d9e56c47a">&#9670;&nbsp;</a></span>CreateVectorOfTables< T >()</h2>
+
 <div class="memitem">
 <div class="memproto">
 <table class="mlabels">
@@ -695,7 +707,7 @@ Properties</h2></td></tr>
         <tr>
           <td class="memname">VectorOffset FlatBuffers.FlatBufferBuilder.CreateVectorOfTables&lt; T &gt; </td>
           <td>(</td>
-          <td class="paramtype">Offset&lt; T &gt;[]&#160;</td>
+          <td class="paramtype">Offset&lt; T &gt; []&#160;</td>
           <td class="paramname"><em>offsets</em></td><td>)</td>
           <td></td>
         </tr>
@@ -719,12 +731,15 @@ Properties</h2></td></tr>
 <table border="0" cellspacing="2" cellpadding="0">
 <tr><td valign="top"><em>T</em></td><td>&#160;:</td><td valign="top"><em>struct</em></td><td>&#160;</td></tr>
 </table>
+</dd>
 </dl>
 </div>
 
 </div>
 </div>
-<a class="anchor" id="a7cacff748cbf996b52de2e31e731af41"></a>
+<a id="a7cacff748cbf996b52de2e31e731af41"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a7cacff748cbf996b52de2e31e731af41">&#9670;&nbsp;</a></span>EndVector()</h2>
+
 <div class="memitem">
 <div class="memproto">
 <table class="mlabels">
@@ -749,7 +764,54 @@ Properties</h2></td></tr>
 
 </div>
 </div>
-<a class="anchor" id="a1afc6853539aaff7ac6937ed03ff5c7b"></a>
+<a id="a709d1ded4ffd922b61bc6f7f4a12fb97"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a709d1ded4ffd922b61bc6f7f4a12fb97">&#9670;&nbsp;</a></span>Finish() <span class="overload">[1/4]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">void FlatBuffers.FlatBufferBuilder.Finish </td>
+          <td>(</td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>rootTable</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">bool&#160;</td>
+          <td class="paramname"><em>sizePrefix</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Finalize a buffer, pointing to the given <code>root_table</code>. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">rootTable</td><td>An offset to be added to the buffer. </td></tr>
+    <tr><td class="paramname">sizePrefix</td><td>Whether to prefix the size to the buffer. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="a1afc6853539aaff7ac6937ed03ff5c7b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a1afc6853539aaff7ac6937ed03ff5c7b">&#9670;&nbsp;</a></span>Finish() <span class="overload">[2/4]</span></h2>
+
 <div class="memitem">
 <div class="memproto">
 <table class="mlabels">
@@ -781,7 +843,61 @@ Properties</h2></td></tr>
 
 </div>
 </div>
-<a class="anchor" id="ac7a48fd125d3f65f1bc1bc67d74eae73"></a>
+<a id="a703062d740b32a77d26c5f6d1928c75f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a703062d740b32a77d26c5f6d1928c75f">&#9670;&nbsp;</a></span>Finish() <span class="overload">[3/4]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">void FlatBuffers.FlatBufferBuilder.Finish </td>
+          <td>(</td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>rootTable</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">string&#160;</td>
+          <td class="paramname"><em>fileIdentifier</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">bool&#160;</td>
+          <td class="paramname"><em>sizePrefix</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Finalize a buffer, pointing to the given <code>rootTable</code>. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">rootTable</td><td>An offset to be added to the buffer. </td></tr>
+    <tr><td class="paramname">fileIdentifier</td><td>A FlatBuffer file identifier to be added to the buffer before <code>root_table</code>. </td></tr>
+    <tr><td class="paramname">sizePrefix</td><td>Whether to prefix the size to the buffer. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ac7a48fd125d3f65f1bc1bc67d74eae73"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ac7a48fd125d3f65f1bc1bc67d74eae73">&#9670;&nbsp;</a></span>Finish() <span class="overload">[4/4]</span></h2>
+
 <div class="memitem">
 <div class="memproto">
 <table class="mlabels">
@@ -824,7 +940,88 @@ Properties</h2></td></tr>
 
 </div>
 </div>
-<a class="anchor" id="abfd2f4e19cf51f62290a0272683f23b2"></a>
+<a id="a425ab2bd13a0e4331a7190ec2d17c3b2"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a425ab2bd13a0e4331a7190ec2d17c3b2">&#9670;&nbsp;</a></span>FinishSizePrefixed() <span class="overload">[1/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">void FlatBuffers.FlatBufferBuilder.FinishSizePrefixed </td>
+          <td>(</td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>rootTable</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Finalize a buffer, pointing to the given <code>root_table</code>, with the size prefixed. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">rootTable</td><td>An offset to be added to the buffer. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="a92de6a8a35e1ae5a07f5578bb0fda16c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a92de6a8a35e1ae5a07f5578bb0fda16c">&#9670;&nbsp;</a></span>FinishSizePrefixed() <span class="overload">[2/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">void FlatBuffers.FlatBufferBuilder.FinishSizePrefixed </td>
+          <td>(</td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>rootTable</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">string&#160;</td>
+          <td class="paramname"><em>fileIdentifier</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Finalize a buffer, pointing to the given <code>rootTable</code>, with the size prefixed. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">rootTable</td><td>An offset to be added to the buffer. </td></tr>
+    <tr><td class="paramname">fileIdentifier</td><td>A FlatBuffer file identifier to be added to the buffer before <code>root_table</code>. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="abfd2f4e19cf51f62290a0272683f23b2"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#abfd2f4e19cf51f62290a0272683f23b2">&#9670;&nbsp;</a></span>SizedByteArray()</h2>
+
 <div class="memitem">
 <div class="memproto">
 <table class="mlabels">
@@ -851,7 +1048,9 @@ Properties</h2></td></tr>
 </div>
 </div>
 <h2 class="groupheader">Property Documentation</h2>
-<a class="anchor" id="a6f0cbd075878e2c0f021c0947cc8a211"></a>
+<a id="a6f0cbd075878e2c0f021c0947cc8a211"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a6f0cbd075878e2c0f021c0947cc8a211">&#9670;&nbsp;</a></span>DataBuffer</h2>
+
 <div class="memitem">
 <div class="memproto">
 <table class="mlabels">
@@ -875,7 +1074,9 @@ Properties</h2></td></tr>
 
 </div>
 </div>
-<a class="anchor" id="a40d549b2db96b91b2345d1a44ff3fe13"></a>
+<a id="a40d549b2db96b91b2345d1a44ff3fe13"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a40d549b2db96b91b2345d1a44ff3fe13">&#9670;&nbsp;</a></span>ForceDefaults</h2>
+
 <div class="memitem">
 <div class="memproto">
 <table class="mlabels">
diff --git a/class_flat_buffers_1_1_flat_buffer_builder.js b/class_flat_buffers_1_1_flat_buffer_builder.js
index ac7d3b6e22ef48c0f6eaddf7755d661eb95e5984..d070298036be05bbd29a5f796a9f532613f0890f 100644
--- a/class_flat_buffers_1_1_flat_buffer_builder.js
+++ b/class_flat_buffers_1_1_flat_buffer_builder.js
@@ -17,8 +17,12 @@ var class_flat_buffers_1_1_flat_buffer_builder =
     [ "CreateString", "class_flat_buffers_1_1_flat_buffer_builder.html#a3b6e42519f278e4a060895633d048070", null ],
     [ "CreateVectorOfTables< T >", "class_flat_buffers_1_1_flat_buffer_builder.html#a82219d659221dfc4c271399d9e56c47a", null ],
     [ "EndVector", "class_flat_buffers_1_1_flat_buffer_builder.html#a7cacff748cbf996b52de2e31e731af41", null ],
+    [ "Finish", "class_flat_buffers_1_1_flat_buffer_builder.html#a709d1ded4ffd922b61bc6f7f4a12fb97", null ],
     [ "Finish", "class_flat_buffers_1_1_flat_buffer_builder.html#a1afc6853539aaff7ac6937ed03ff5c7b", null ],
+    [ "Finish", "class_flat_buffers_1_1_flat_buffer_builder.html#a703062d740b32a77d26c5f6d1928c75f", null ],
     [ "Finish", "class_flat_buffers_1_1_flat_buffer_builder.html#ac7a48fd125d3f65f1bc1bc67d74eae73", null ],
+    [ "FinishSizePrefixed", "class_flat_buffers_1_1_flat_buffer_builder.html#a425ab2bd13a0e4331a7190ec2d17c3b2", null ],
+    [ "FinishSizePrefixed", "class_flat_buffers_1_1_flat_buffer_builder.html#a92de6a8a35e1ae5a07f5578bb0fda16c", null ],
     [ "SizedByteArray", "class_flat_buffers_1_1_flat_buffer_builder.html#abfd2f4e19cf51f62290a0272683f23b2", null ],
     [ "DataBuffer", "class_flat_buffers_1_1_flat_buffer_builder.html#a6f0cbd075878e2c0f021c0947cc8a211", null ],
     [ "ForceDefaults", "class_flat_buffers_1_1_flat_buffer_builder.html#a40d549b2db96b91b2345d1a44ff3fe13", null ]
diff --git a/class_google_1_1_flat_buffers_1_1_flatbuffer_builder-members.html b/class_google_1_1_flat_buffers_1_1_flatbuffer_builder-members.html
index 77174bb580e3717dc46c32fd9904ee7beeea50d9..f419c9c0b85401a589211e5cef9a7f14c3424314 100644
--- a/class_google_1_1_flat_buffers_1_1_flatbuffer_builder-members.html
+++ b/class_google_1_1_flat_buffers_1_1_flatbuffer_builder-members.html
@@ -4,23 +4,21 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <title>FlatBuffers: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
 <link href="navtree.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
 <script type="text/javascript" src="navtree.js"></script>
 <script type="text/javascript">
   $(document).ready(initResizable);
-  $(window).load(resizeHeight);
 </script>
 <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
 <script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
-  $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,500italic,700,700italic|Roboto+Mono:400,700" rel="stylesheet">
 <link href="style.css" rel="stylesheet" type="text/css"/>
@@ -46,53 +44,19 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.7 -->
+<!-- Generated by Doxygen 1.8.13 -->
 <script type="text/javascript">
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </script>
-  <div id="navrow1" class="tabs">
-    <ul class="tablist">
-      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
-      <li><a href="usergroup0.html"><span>Programmer's&#160;Guide</span></a></li>
-      <li><a href="flatbuffers_support.html"><span>Platform&#160;/&#160;Language&#160;/&#160;Feature&#160;support</span></a></li>
-      <li><a href="flatbuffers_benchmarks.html"><span>Benchmarks</span></a></li>
-      <li><a href="flatbuffers_white_paper.html"><span>FlatBuffers&#160;white&#160;paper</span></a></li>
-      <li><a href="flatbuffers_internals.html"><span>FlatBuffers&#160;internals</span></a></li>
-      <li><a href="flatbuffers_grammar.html"><span>Grammar&#160;of&#160;the&#160;schema&#160;language</span></a></li>
-      <li class="current"><a href="usergroup2.html"><span>API&#160;Reference</span></a></li>
-      <li><a href="contributing.html"><span>Contributing</span></a></li>
-      <li>
-        <div id="MSearchBox" class="MSearchBoxInactive">
-        <span class="left">
-          <img id="MSearchSelect" src="search/mag_sel.png"
-               onmouseover="return searchBox.OnSearchSelectShow()"
-               onmouseout="return searchBox.OnSearchSelectHide()"
-               alt=""/>
-          <input type="text" id="MSearchField" value="Search" accesskey="S"
-               onfocus="searchBox.OnSearchFieldFocus(true)" 
-               onblur="searchBox.OnSearchFieldFocus(false)" 
-               onkeyup="searchBox.OnSearchFieldChange(event)"/>
-          </span><span class="right">
-            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
-          </span>
-        </div>
-      </li>
-    </ul>
-  </div>
-  <div id="navrow2" class="tabs2">
-    <ul class="tablist">
-      <li><a href="modules.html"><span>APIs</span></a></li>
-      <li class="current"><a href="annotated.html"><span>Class&#160;List</span></a></li>
-    </ul>
-  </div>
-  <div id="navrow2" class="tabs2">
-    <ul class="tablist">
-      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
-      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
-      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
-      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
-    </ul>
-  </div>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -113,7 +77,7 @@ $(document).ready(function(){initNavTree('class_google_1_1_flat_buffers_1_1_flat
      onmouseover="return searchBox.OnSearchSelectShow()"
      onmouseout="return searchBox.OnSearchSelectHide()"
      onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Properties</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+</div>
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
diff --git a/class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html b/class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html
index 2c55be20161635ec9c269b5fee0967d85bf7db2d..a3c1e12c5a769cbac459b3c2b4f717b6b0cae3da 100644
--- a/class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html
+++ b/class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html
@@ -4,23 +4,21 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <title>FlatBuffers: Google\FlatBuffers\FlatbufferBuilder Class Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
 <link href="navtree.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
 <script type="text/javascript" src="navtree.js"></script>
 <script type="text/javascript">
   $(document).ready(initResizable);
-  $(window).load(resizeHeight);
 </script>
 <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
 <script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
-  $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,500italic,700,700italic|Roboto+Mono:400,700" rel="stylesheet">
 <link href="style.css" rel="stylesheet" type="text/css"/>
@@ -46,53 +44,19 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.7 -->
+<!-- Generated by Doxygen 1.8.13 -->
 <script type="text/javascript">
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </script>
-  <div id="navrow1" class="tabs">
-    <ul class="tablist">
-      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
-      <li><a href="usergroup0.html"><span>Programmer's&#160;Guide</span></a></li>
-      <li><a href="flatbuffers_support.html"><span>Platform&#160;/&#160;Language&#160;/&#160;Feature&#160;support</span></a></li>
-      <li><a href="flatbuffers_benchmarks.html"><span>Benchmarks</span></a></li>
-      <li><a href="flatbuffers_white_paper.html"><span>FlatBuffers&#160;white&#160;paper</span></a></li>
-      <li><a href="flatbuffers_internals.html"><span>FlatBuffers&#160;internals</span></a></li>
-      <li><a href="flatbuffers_grammar.html"><span>Grammar&#160;of&#160;the&#160;schema&#160;language</span></a></li>
-      <li class="current"><a href="usergroup2.html"><span>API&#160;Reference</span></a></li>
-      <li><a href="contributing.html"><span>Contributing</span></a></li>
-      <li>
-        <div id="MSearchBox" class="MSearchBoxInactive">
-        <span class="left">
-          <img id="MSearchSelect" src="search/mag_sel.png"
-               onmouseover="return searchBox.OnSearchSelectShow()"
-               onmouseout="return searchBox.OnSearchSelectHide()"
-               alt=""/>
-          <input type="text" id="MSearchField" value="Search" accesskey="S"
-               onfocus="searchBox.OnSearchFieldFocus(true)" 
-               onblur="searchBox.OnSearchFieldFocus(false)" 
-               onkeyup="searchBox.OnSearchFieldChange(event)"/>
-          </span><span class="right">
-            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
-          </span>
-        </div>
-      </li>
-    </ul>
-  </div>
-  <div id="navrow2" class="tabs2">
-    <ul class="tablist">
-      <li><a href="modules.html"><span>APIs</span></a></li>
-      <li class="current"><a href="annotated.html"><span>Class&#160;List</span></a></li>
-    </ul>
-  </div>
-  <div id="navrow2" class="tabs2">
-    <ul class="tablist">
-      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
-      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
-      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
-      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
-    </ul>
-  </div>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -113,7 +77,7 @@ $(document).ready(function(){initNavTree('class_google_1_1_flat_buffers_1_1_flat
      onmouseover="return searchBox.OnSearchSelectShow()"
      onmouseout="return searchBox.OnSearchSelectHide()"
      onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Properties</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+</div>
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
@@ -128,7 +92,7 @@ $(document).ready(function(){initNavTree('class_google_1_1_flat_buffers_1_1_flat
 <a href="#pub-attribs">Public Attributes</a> &#124;
 <a href="class_google_1_1_flat_buffers_1_1_flatbuffer_builder-members.html">List of all members</a>  </div>
   <div class="headertitle">
-<div class="title">Google\FlatBuffers\FlatbufferBuilder Class Reference<div class="ingroups"><a class="el" href="group__flatbuffers__php__api.html">PHP API</a></div></div>  </div>
+<div class="title">Google\FlatBuffers\FlatbufferBuilder Class Reference<div class="ingroups"><a class="el" href="group__flatbuffers__php__api.html">Flatbuffers_php_api</a></div></div>  </div>
 </div><!--header-->
 <div class="contents">
 <table class="memberdecls">
@@ -191,13 +155,15 @@ Public Member Functions</h2></td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
 Public Attributes</h2></td></tr>
-<tr class="memitem:aa01f9205792614930138e19d3e310b7b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa01f9205792614930138e19d3e310b7b"></a>
+<tr class="memitem:aa01f9205792614930138e19d3e310b7b"><td class="memItemLeft" align="right" valign="top"><a id="aa01f9205792614930138e19d3e310b7b"></a>
 &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html#aa01f9205792614930138e19d3e310b7b">$bb</a></td></tr>
 <tr class="memdesc:aa01f9205792614930138e19d3e310b7b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Internal ByteBuffer for the FlatBuffer data. <br /></td></tr>
 <tr class="separator:aa01f9205792614930138e19d3e310b7b"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
-<a class="anchor" id="a5aa5323732b1efe0da24fa235a40f5d4"></a>
+<a id="a5aa5323732b1efe0da24fa235a40f5d4"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a5aa5323732b1efe0da24fa235a40f5d4">&#9670;&nbsp;</a></span>__construct()</h2>
+
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
@@ -222,7 +188,9 @@ Public Attributes</h2></td></tr>
 </div>
 </div>
 <h2 class="groupheader">Member Function Documentation</h2>
-<a class="anchor" id="a723a1053d3a17d5433c37bdbd015844e"></a>
+<a id="a723a1053d3a17d5433c37bdbd015844e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a723a1053d3a17d5433c37bdbd015844e">&#9670;&nbsp;</a></span>addBool()</h2>
+
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
@@ -246,7 +214,9 @@ Public Attributes</h2></td></tr>
 
 </div>
 </div>
-<a class="anchor" id="a7b78098530190cb90d315419fb1d21fc"></a>
+<a id="a7b78098530190cb90d315419fb1d21fc"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a7b78098530190cb90d315419fb1d21fc">&#9670;&nbsp;</a></span>addByte()</h2>
+
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
@@ -270,7 +240,9 @@ Public Attributes</h2></td></tr>
 
 </div>
 </div>
-<a class="anchor" id="a23a5478774e8909117d31b62dde51e86"></a>
+<a id="a23a5478774e8909117d31b62dde51e86"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a23a5478774e8909117d31b62dde51e86">&#9670;&nbsp;</a></span>addDouble()</h2>
+
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
@@ -294,7 +266,9 @@ Public Attributes</h2></td></tr>
 
 </div>
 </div>
-<a class="anchor" id="a5ce6215b65e222b8ee22d3eb4436e404"></a>
+<a id="a5ce6215b65e222b8ee22d3eb4436e404"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a5ce6215b65e222b8ee22d3eb4436e404">&#9670;&nbsp;</a></span>addFloat()</h2>
+
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
@@ -318,7 +292,9 @@ Public Attributes</h2></td></tr>
 
 </div>
 </div>
-<a class="anchor" id="a63c9d66329dff15855d11c89134599e0"></a>
+<a id="a63c9d66329dff15855d11c89134599e0"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a63c9d66329dff15855d11c89134599e0">&#9670;&nbsp;</a></span>addInt()</h2>
+
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
@@ -342,7 +318,9 @@ Public Attributes</h2></td></tr>
 
 </div>
 </div>
-<a class="anchor" id="a8875bff7ef67af16938cabe719ceac70"></a>
+<a id="a8875bff7ef67af16938cabe719ceac70"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a8875bff7ef67af16938cabe719ceac70">&#9670;&nbsp;</a></span>addLong()</h2>
+
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
@@ -366,7 +344,9 @@ Public Attributes</h2></td></tr>
 
 </div>
 </div>
-<a class="anchor" id="a127fe515651f4b4347ea8e01b3951934"></a>
+<a id="a127fe515651f4b4347ea8e01b3951934"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a127fe515651f4b4347ea8e01b3951934">&#9670;&nbsp;</a></span>addOffset()</h2>
+
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
@@ -389,14 +369,16 @@ Public Attributes</h2></td></tr>
 </dl>
 <dl class="exception"><dt>Exceptions</dt><dd>
   <table class="exception">
-    <tr><td class="paramname"></td><td>Exception Throws an exception if <code>$off</code> is greater than the underlying ByteBuffer's offest. </td></tr>
+    <tr><td class="paramname"></td><td></td></tr>
   </table>
   </dd>
 </dl>
 
 </div>
 </div>
-<a class="anchor" id="a6add2b19644657fbe0925cb0238618c6"></a>
+<a id="a6add2b19644657fbe0925cb0238618c6"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a6add2b19644657fbe0925cb0238618c6">&#9670;&nbsp;</a></span>addSbyte()</h2>
+
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
@@ -420,7 +402,9 @@ Public Attributes</h2></td></tr>
 
 </div>
 </div>
-<a class="anchor" id="a1e11aa1f080749100de6e153e88f9dd5"></a>
+<a id="a1e11aa1f080749100de6e153e88f9dd5"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a1e11aa1f080749100de6e153e88f9dd5">&#9670;&nbsp;</a></span>addShort()</h2>
+
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
@@ -444,7 +428,9 @@ Public Attributes</h2></td></tr>
 
 </div>
 </div>
-<a class="anchor" id="a6f4a37444fca01dcbd0922d18cf2be5c"></a>
+<a id="a6f4a37444fca01dcbd0922d18cf2be5c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a6f4a37444fca01dcbd0922d18cf2be5c">&#9670;&nbsp;</a></span>addUint()</h2>
+
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
@@ -468,7 +454,9 @@ Public Attributes</h2></td></tr>
 
 </div>
 </div>
-<a class="anchor" id="a01be3a805c221796997b023b64e90826"></a>
+<a id="a01be3a805c221796997b023b64e90826"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a01be3a805c221796997b023b64e90826">&#9670;&nbsp;</a></span>addUlong()</h2>
+
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
@@ -492,7 +480,9 @@ Public Attributes</h2></td></tr>
 
 </div>
 </div>
-<a class="anchor" id="a570a0024a8a54e2f73374c94b8fa6c42"></a>
+<a id="a570a0024a8a54e2f73374c94b8fa6c42"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a570a0024a8a54e2f73374c94b8fa6c42">&#9670;&nbsp;</a></span>addUshort()</h2>
+
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
@@ -516,7 +506,9 @@ Public Attributes</h2></td></tr>
 
 </div>
 </div>
-<a class="anchor" id="ac54a8acfac1dda020b610da53b2d9a0f"></a>
+<a id="ac54a8acfac1dda020b610da53b2d9a0f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ac54a8acfac1dda020b610da53b2d9a0f">&#9670;&nbsp;</a></span>createString()</h2>
+
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
@@ -547,7 +539,9 @@ Public Attributes</h2></td></tr>
 
 </div>
 </div>
-<a class="anchor" id="ae7e97c2d21da04ef483e6940d442938f"></a>
+<a id="ae7e97c2d21da04ef483e6940d442938f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ae7e97c2d21da04ef483e6940d442938f">&#9670;&nbsp;</a></span>dataBuffer()</h2>
+
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
@@ -565,7 +559,9 @@ Public Attributes</h2></td></tr>
 
 </div>
 </div>
-<a class="anchor" id="a799f0d1cf0fff359d6d04768108cb2a5"></a>
+<a id="a799f0d1cf0fff359d6d04768108cb2a5"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a799f0d1cf0fff359d6d04768108cb2a5">&#9670;&nbsp;</a></span>finish()</h2>
+
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
@@ -606,7 +602,9 @@ Public Attributes</h2></td></tr>
 
 </div>
 </div>
-<a class="anchor" id="a5d75bca1a17d58bb6e383a73761ba45f"></a>
+<a id="a5d75bca1a17d58bb6e383a73761ba45f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a5d75bca1a17d58bb6e383a73761ba45f">&#9670;&nbsp;</a></span>forceDefaults()</h2>
+
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
@@ -630,7 +628,9 @@ Public Attributes</h2></td></tr>
 
 </div>
 </div>
-<a class="anchor" id="a967e7dc8f051d4e73b3155e3b281d7b4"></a>
+<a id="a967e7dc8f051d4e73b3155e3b281d7b4"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a967e7dc8f051d4e73b3155e3b281d7b4">&#9670;&nbsp;</a></span>sizedByteArray()</h2>
+
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
diff --git a/classcom_1_1google_1_1flatbuffers_1_1_byte_buffer_util-members.html b/classcom_1_1google_1_1flatbuffers_1_1_byte_buffer_util-members.html
new file mode 100644
index 0000000000000000000000000000000000000000..0131f0348de94ea772389b0685f877d04f7f762c
--- /dev/null
+++ b/classcom_1_1google_1_1flatbuffers_1_1_byte_buffer_util-members.html
@@ -0,0 +1,111 @@
+<!-- HTML header for doxygen 1.8.6-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
+<title>FlatBuffers: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+  $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+<link href="https://fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,500italic,700,700italic|Roboto+Mono:400,700" rel="stylesheet">
+<link href="style.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea" style="height: 110px;">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="commonprojectlogo">
+    <img alt="Logo" src="fpl_logo_small.png"/>
+  </td>
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">FlatBuffers
+   </div>
+   <div style="font-size:12px;">
+    An open source project by <a href="https://developers.google.com/games/#Tools">FPL</a>.
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.13 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classcom_1_1google_1_1flatbuffers_1_1_byte_buffer_util.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">com.google.flatbuffers.ByteBufferUtil Member List</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classcom_1_1google_1_1flatbuffers_1_1_byte_buffer_util.html">com.google.flatbuffers.ByteBufferUtil</a>, including all inherited members.</p>
+<table class="directory">
+  <tr class="even"><td class="entry"><a class="el" href="classcom_1_1google_1_1flatbuffers_1_1_byte_buffer_util.html#a4c87c63fa8d31e039b344bbaef00a3be">getSizePrefix</a>(ByteBuffer bb)</td><td class="entry"><a class="el" href="classcom_1_1google_1_1flatbuffers_1_1_byte_buffer_util.html">com.google.flatbuffers.ByteBufferUtil</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classcom_1_1google_1_1flatbuffers_1_1_byte_buffer_util.html#a58d6c39c53a0c981a2f72a5eca7d992c">removeSizePrefix</a>(ByteBuffer bb)</td><td class="entry"><a class="el" href="classcom_1_1google_1_1flatbuffers_1_1_byte_buffer_util.html">com.google.flatbuffers.ByteBufferUtil</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+</table></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- Google Analytics -->
+<script>
+  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+  ga('create', 'UA-49880327-7', 'auto');
+  ga('send', 'pageview');
+</script>
+</body>
+</html>
diff --git a/classcom_1_1google_1_1flatbuffers_1_1_byte_buffer_util.html b/classcom_1_1google_1_1flatbuffers_1_1_byte_buffer_util.html
new file mode 100644
index 0000000000000000000000000000000000000000..cfd6b9e109e43a38d0285da8e2bef92bcac26986
--- /dev/null
+++ b/classcom_1_1google_1_1flatbuffers_1_1_byte_buffer_util.html
@@ -0,0 +1,198 @@
+<!-- HTML header for doxygen 1.8.6-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
+<title>FlatBuffers: com.google.flatbuffers.ByteBufferUtil Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+  $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+<link href="https://fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,500italic,700,700italic|Roboto+Mono:400,700" rel="stylesheet">
+<link href="style.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea" style="height: 110px;">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="commonprojectlogo">
+    <img alt="Logo" src="fpl_logo_small.png"/>
+  </td>
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">FlatBuffers
+   </div>
+   <div style="font-size:12px;">
+    An open source project by <a href="https://developers.google.com/games/#Tools">FPL</a>.
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.13 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classcom_1_1google_1_1flatbuffers_1_1_byte_buffer_util.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
+<a href="classcom_1_1google_1_1flatbuffers_1_1_byte_buffer_util-members.html">List of all members</a>  </div>
+  <div class="headertitle">
+<div class="title">com.google.flatbuffers.ByteBufferUtil Class Reference<div class="ingroups"><a class="el" href="group__flatbuffers__java__api.html">Flatbuffers_java_api</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Class that collects utility functions around <code>ByteBuffer</code>.  
+ <a href="classcom_1_1google_1_1flatbuffers_1_1_byte_buffer_util.html#details">More...</a></p>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Class that collects utility functions around <code>ByteBuffer</code>. </p>
+</div><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
+Static Public Member Functions</h2></td></tr>
+<tr class="memitem:a4c87c63fa8d31e039b344bbaef00a3be"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1google_1_1flatbuffers_1_1_byte_buffer_util.html#a4c87c63fa8d31e039b344bbaef00a3be">getSizePrefix</a> (ByteBuffer bb)</td></tr>
+<tr class="memdesc:a4c87c63fa8d31e039b344bbaef00a3be"><td class="mdescLeft">&#160;</td><td class="mdescRight">Extract the size prefix from a <code>ByteBuffer</code>.  <a href="#a4c87c63fa8d31e039b344bbaef00a3be">More...</a><br /></td></tr>
+<tr class="separator:a4c87c63fa8d31e039b344bbaef00a3be"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a58d6c39c53a0c981a2f72a5eca7d992c"><td class="memItemLeft" align="right" valign="top">static ByteBuffer&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1google_1_1flatbuffers_1_1_byte_buffer_util.html#a58d6c39c53a0c981a2f72a5eca7d992c">removeSizePrefix</a> (ByteBuffer bb)</td></tr>
+<tr class="memdesc:a58d6c39c53a0c981a2f72a5eca7d992c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a duplicate of a size-prefixed <code>ByteBuffer</code> that has its position advanced just past the size prefix.  <a href="#a58d6c39c53a0c981a2f72a5eca7d992c">More...</a><br /></td></tr>
+<tr class="separator:a58d6c39c53a0c981a2f72a5eca7d992c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a id="a4c87c63fa8d31e039b344bbaef00a3be"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a4c87c63fa8d31e039b344bbaef00a3be">&#9670;&nbsp;</a></span>getSizePrefix()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">static int com.google.flatbuffers.ByteBufferUtil.getSizePrefix </td>
+          <td>(</td>
+          <td class="paramtype">ByteBuffer&#160;</td>
+          <td class="paramname"><em>bb</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Extract the size prefix from a <code>ByteBuffer</code>. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">bb</td><td>a size-prefixed buffer </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>the size prefix </dd></dl>
+
+</div>
+</div>
+<a id="a58d6c39c53a0c981a2f72a5eca7d992c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a58d6c39c53a0c981a2f72a5eca7d992c">&#9670;&nbsp;</a></span>removeSizePrefix()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">static ByteBuffer com.google.flatbuffers.ByteBufferUtil.removeSizePrefix </td>
+          <td>(</td>
+          <td class="paramtype">ByteBuffer&#160;</td>
+          <td class="paramname"><em>bb</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Create a duplicate of a size-prefixed <code>ByteBuffer</code> that has its position advanced just past the size prefix. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">bb</td><td>a size-prefixed buffer </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>a new buffer on the same underlying data that has skipped the size prefix </dd></dl>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li><a class="el" href="_byte_buffer_util_8java.html">ByteBufferUtil.java</a></li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- Google Analytics -->
+<script>
+  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+  ga('create', 'UA-49880327-7', 'auto');
+  ga('send', 'pageview');
+</script>
+</body>
+</html>
diff --git a/classcom_1_1google_1_1flatbuffers_1_1_byte_buffer_util.js b/classcom_1_1google_1_1flatbuffers_1_1_byte_buffer_util.js
new file mode 100644
index 0000000000000000000000000000000000000000..88f08ead7f40dfe440177b06850eaa2177835e95
--- /dev/null
+++ b/classcom_1_1google_1_1flatbuffers_1_1_byte_buffer_util.js
@@ -0,0 +1,5 @@
+var classcom_1_1google_1_1flatbuffers_1_1_byte_buffer_util =
+[
+    [ "getSizePrefix", "classcom_1_1google_1_1flatbuffers_1_1_byte_buffer_util.html#a4c87c63fa8d31e039b344bbaef00a3be", null ],
+    [ "removeSizePrefix", "classcom_1_1google_1_1flatbuffers_1_1_byte_buffer_util.html#a58d6c39c53a0c981a2f72a5eca7d992c", null ]
+];
\ No newline at end of file
diff --git a/classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder-members.html b/classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder-members.html
index b1f512fcebd1584eb285bec87908935ca16ccd1c..1ed0b15c1293e322111935316c1799fa949fb322 100644
--- a/classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder-members.html
+++ b/classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder-members.html
@@ -4,23 +4,21 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <title>FlatBuffers: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
 <link href="navtree.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
 <script type="text/javascript" src="navtree.js"></script>
 <script type="text/javascript">
   $(document).ready(initResizable);
-  $(window).load(resizeHeight);
 </script>
 <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
 <script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
-  $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,500italic,700,700italic|Roboto+Mono:400,700" rel="stylesheet">
 <link href="style.css" rel="stylesheet" type="text/css"/>
@@ -46,53 +44,19 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.7 -->
+<!-- Generated by Doxygen 1.8.13 -->
 <script type="text/javascript">
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </script>
-  <div id="navrow1" class="tabs">
-    <ul class="tablist">
-      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
-      <li><a href="usergroup0.html"><span>Programmer's&#160;Guide</span></a></li>
-      <li><a href="flatbuffers_support.html"><span>Platform&#160;/&#160;Language&#160;/&#160;Feature&#160;support</span></a></li>
-      <li><a href="flatbuffers_benchmarks.html"><span>Benchmarks</span></a></li>
-      <li><a href="flatbuffers_white_paper.html"><span>FlatBuffers&#160;white&#160;paper</span></a></li>
-      <li><a href="flatbuffers_internals.html"><span>FlatBuffers&#160;internals</span></a></li>
-      <li><a href="flatbuffers_grammar.html"><span>Grammar&#160;of&#160;the&#160;schema&#160;language</span></a></li>
-      <li class="current"><a href="usergroup2.html"><span>API&#160;Reference</span></a></li>
-      <li><a href="contributing.html"><span>Contributing</span></a></li>
-      <li>
-        <div id="MSearchBox" class="MSearchBoxInactive">
-        <span class="left">
-          <img id="MSearchSelect" src="search/mag_sel.png"
-               onmouseover="return searchBox.OnSearchSelectShow()"
-               onmouseout="return searchBox.OnSearchSelectHide()"
-               alt=""/>
-          <input type="text" id="MSearchField" value="Search" accesskey="S"
-               onfocus="searchBox.OnSearchFieldFocus(true)" 
-               onblur="searchBox.OnSearchFieldFocus(false)" 
-               onkeyup="searchBox.OnSearchFieldChange(event)"/>
-          </span><span class="right">
-            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
-          </span>
-        </div>
-      </li>
-    </ul>
-  </div>
-  <div id="navrow2" class="tabs2">
-    <ul class="tablist">
-      <li><a href="modules.html"><span>APIs</span></a></li>
-      <li class="current"><a href="annotated.html"><span>Class&#160;List</span></a></li>
-    </ul>
-  </div>
-  <div id="navrow2" class="tabs2">
-    <ul class="tablist">
-      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
-      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
-      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
-      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
-    </ul>
-  </div>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -113,7 +77,7 @@ $(document).ready(function(){initNavTree('classcom_1_1google_1_1flatbuffers_1_1_
      onmouseover="return searchBox.OnSearchSelectShow()"
      onmouseout="return searchBox.OnSearchSelectHide()"
      onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Properties</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+</div>
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
@@ -145,8 +109,12 @@ $(document).ready(function(){initNavTree('classcom_1_1google_1_1flatbuffers_1_1_
   <tr class="even"><td class="entry"><a class="el" href="classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#acc889115f91460ca89ce981cb02c2039">createUnintializedVector</a>(int elem_size, int num_elems, int alignment)</td><td class="entry"><a class="el" href="classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html">com.google.flatbuffers.FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr><td class="entry"><a class="el" href="classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a24ea4649f508a7843e429737a4a9fad1">createVectorOfTables</a>(int[] offsets)</td><td class="entry"><a class="el" href="classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html">com.google.flatbuffers.FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#abf0fd34f0d93a9d89f595fddf752feb7">dataBuffer</a>()</td><td class="entry"><a class="el" href="classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html">com.google.flatbuffers.FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#aee9ed3214a7b35075773c506e3d95a14">finish</a>(int root_table)</td><td class="entry"><a class="el" href="classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html">com.google.flatbuffers.FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#af344604d66e9e8524fef826fc516d5b2">finish</a>(int root_table, boolean size_prefix)</td><td class="entry"><a class="el" href="classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html">com.google.flatbuffers.FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#aee9ed3214a7b35075773c506e3d95a14">finish</a>(int root_table)</td><td class="entry"><a class="el" href="classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html">com.google.flatbuffers.FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#afc31aba1a9523fde4be3558f8f19f49b">finish</a>(int root_table, String file_identifier, boolean size_prefix)</td><td class="entry"><a class="el" href="classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html">com.google.flatbuffers.FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a189de474e0c39d663cc65fa21a63f071">finish</a>(int root_table, String file_identifier)</td><td class="entry"><a class="el" href="classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html">com.google.flatbuffers.FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#aa00c035b0f60abe32a5f1467ebd4ec54">finishSizePrefixed</a>(int root_table)</td><td class="entry"><a class="el" href="classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html">com.google.flatbuffers.FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#ab179d8aa4c4b782d83b3817a6b08ee35">finishSizePrefixed</a>(int root_table, String file_identifier)</td><td class="entry"><a class="el" href="classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html">com.google.flatbuffers.FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr><td class="entry"><a class="el" href="classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#aed1e475e75409625c8df85dc3d396e4c">FlatBufferBuilder</a>(int initial_size, ByteBufferFactory bb_factory)</td><td class="entry"><a class="el" href="classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html">com.google.flatbuffers.FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#af49427a6a8a6ec24f3c9cf812f30812d">FlatBufferBuilder</a>(int initial_size)</td><td class="entry"><a class="el" href="classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html">com.google.flatbuffers.FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr><td class="entry"><a class="el" href="classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#ac8a8a558ce1d2531447a765636db2387">FlatBufferBuilder</a>()</td><td class="entry"><a class="el" href="classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html">com.google.flatbuffers.FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
diff --git a/classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html b/classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html
index fece88aa6db5d1333e9c5555bc4249cbd188fbe5..7ba7f8fa41f273c8391a396b721cb67d08ecf5b7 100644
--- a/classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html
+++ b/classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html
@@ -4,23 +4,21 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <title>FlatBuffers: com.google.flatbuffers.FlatBufferBuilder Class Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
 <link href="navtree.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
 <script type="text/javascript" src="navtree.js"></script>
 <script type="text/javascript">
   $(document).ready(initResizable);
-  $(window).load(resizeHeight);
 </script>
 <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
 <script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
-  $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,500italic,700,700italic|Roboto+Mono:400,700" rel="stylesheet">
 <link href="style.css" rel="stylesheet" type="text/css"/>
@@ -46,53 +44,19 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.7 -->
+<!-- Generated by Doxygen 1.8.13 -->
 <script type="text/javascript">
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </script>
-  <div id="navrow1" class="tabs">
-    <ul class="tablist">
-      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
-      <li><a href="usergroup0.html"><span>Programmer's&#160;Guide</span></a></li>
-      <li><a href="flatbuffers_support.html"><span>Platform&#160;/&#160;Language&#160;/&#160;Feature&#160;support</span></a></li>
-      <li><a href="flatbuffers_benchmarks.html"><span>Benchmarks</span></a></li>
-      <li><a href="flatbuffers_white_paper.html"><span>FlatBuffers&#160;white&#160;paper</span></a></li>
-      <li><a href="flatbuffers_internals.html"><span>FlatBuffers&#160;internals</span></a></li>
-      <li><a href="flatbuffers_grammar.html"><span>Grammar&#160;of&#160;the&#160;schema&#160;language</span></a></li>
-      <li class="current"><a href="usergroup2.html"><span>API&#160;Reference</span></a></li>
-      <li><a href="contributing.html"><span>Contributing</span></a></li>
-      <li>
-        <div id="MSearchBox" class="MSearchBoxInactive">
-        <span class="left">
-          <img id="MSearchSelect" src="search/mag_sel.png"
-               onmouseover="return searchBox.OnSearchSelectShow()"
-               onmouseout="return searchBox.OnSearchSelectHide()"
-               alt=""/>
-          <input type="text" id="MSearchField" value="Search" accesskey="S"
-               onfocus="searchBox.OnSearchFieldFocus(true)" 
-               onblur="searchBox.OnSearchFieldFocus(false)" 
-               onkeyup="searchBox.OnSearchFieldChange(event)"/>
-          </span><span class="right">
-            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
-          </span>
-        </div>
-      </li>
-    </ul>
-  </div>
-  <div id="navrow2" class="tabs2">
-    <ul class="tablist">
-      <li><a href="modules.html"><span>APIs</span></a></li>
-      <li class="current"><a href="annotated.html"><span>Class&#160;List</span></a></li>
-    </ul>
-  </div>
-  <div id="navrow2" class="tabs2">
-    <ul class="tablist">
-      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
-      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
-      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
-      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
-    </ul>
-  </div>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -113,7 +77,7 @@ $(document).ready(function(){initNavTree('classcom_1_1google_1_1flatbuffers_1_1_
      onmouseover="return searchBox.OnSearchSelectShow()"
      onmouseout="return searchBox.OnSearchSelectHide()"
      onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Properties</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+</div>
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
@@ -126,9 +90,10 @@ $(document).ready(function(){initNavTree('classcom_1_1google_1_1flatbuffers_1_1_
   <div class="summary">
 <a href="#nested-classes">Classes</a> &#124;
 <a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pro-methods">Protected Member Functions</a> &#124;
 <a href="classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder-members.html">List of all members</a>  </div>
   <div class="headertitle">
-<div class="title">com.google.flatbuffers.FlatBufferBuilder Class Reference<div class="ingroups"><a class="el" href="group__flatbuffers__java__api.html">Java API</a></div></div>  </div>
+<div class="title">com.google.flatbuffers.FlatBufferBuilder Class Reference<div class="ingroups"><a class="el" href="group__flatbuffers__java__api.html">Flatbuffers_java_api</a></div></div>  </div>
 </div><!--header-->
 <div class="contents">
 
@@ -176,7 +141,7 @@ Public Member Functions</h2></td></tr>
 <tr class="memitem:a67a9f5dcd251735d6b96e1ad46de9d94"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a67a9f5dcd251735d6b96e1ad46de9d94">addShort</a> (short x)</td></tr>
 <tr class="memdesc:a67a9f5dcd251735d6b96e1ad46de9d94"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a <code>short</code> to the buffer, properly aligned, and grows the buffer (if necessary).  <a href="#a67a9f5dcd251735d6b96e1ad46de9d94">More...</a><br /></td></tr>
 <tr class="separator:a67a9f5dcd251735d6b96e1ad46de9d94"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a3a5dd461dc86a2132eaa4f0348b4c001"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3a5dd461dc86a2132eaa4f0348b4c001"></a>
+<tr class="memitem:a3a5dd461dc86a2132eaa4f0348b4c001"><td class="memItemLeft" align="right" valign="top"><a id="a3a5dd461dc86a2132eaa4f0348b4c001"></a>
 void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a3a5dd461dc86a2132eaa4f0348b4c001">clear</a> ()</td></tr>
 <tr class="memdesc:a3a5dd461dc86a2132eaa4f0348b4c001"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reset the FlatBufferBuilder by purging all data that it holds. <br /></td></tr>
 <tr class="separator:a3a5dd461dc86a2132eaa4f0348b4c001"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -204,13 +169,19 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
 <tr class="memitem:a189de474e0c39d663cc65fa21a63f071"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a189de474e0c39d663cc65fa21a63f071">finish</a> (int root_table, String file_identifier)</td></tr>
 <tr class="memdesc:a189de474e0c39d663cc65fa21a63f071"><td class="mdescLeft">&#160;</td><td class="mdescRight">Finalize a buffer, pointing to the given <code>root_table</code>.  <a href="#a189de474e0c39d663cc65fa21a63f071">More...</a><br /></td></tr>
 <tr class="separator:a189de474e0c39d663cc65fa21a63f071"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa00c035b0f60abe32a5f1467ebd4ec54"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#aa00c035b0f60abe32a5f1467ebd4ec54">finishSizePrefixed</a> (int root_table)</td></tr>
+<tr class="memdesc:aa00c035b0f60abe32a5f1467ebd4ec54"><td class="mdescLeft">&#160;</td><td class="mdescRight">Finalize a buffer, pointing to the given <code>root_table</code>, with the size prefixed.  <a href="#aa00c035b0f60abe32a5f1467ebd4ec54">More...</a><br /></td></tr>
+<tr class="separator:aa00c035b0f60abe32a5f1467ebd4ec54"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab179d8aa4c4b782d83b3817a6b08ee35"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#ab179d8aa4c4b782d83b3817a6b08ee35">finishSizePrefixed</a> (int root_table, String file_identifier)</td></tr>
+<tr class="memdesc:ab179d8aa4c4b782d83b3817a6b08ee35"><td class="mdescLeft">&#160;</td><td class="mdescRight">Finalize a buffer, pointing to the given <code>root_table</code>, with the size prefixed.  <a href="#ab179d8aa4c4b782d83b3817a6b08ee35">More...</a><br /></td></tr>
+<tr class="separator:ab179d8aa4c4b782d83b3817a6b08ee35"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:aed1e475e75409625c8df85dc3d396e4c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#aed1e475e75409625c8df85dc3d396e4c">FlatBufferBuilder</a> (int initial_size, <a class="el" href="interfacecom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder_1_1_byte_buffer_factory.html">ByteBufferFactory</a> bb_factory)</td></tr>
 <tr class="memdesc:aed1e475e75409625c8df85dc3d396e4c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Start with a buffer of size <code>initial_size</code>, then grow as required.  <a href="#aed1e475e75409625c8df85dc3d396e4c">More...</a><br /></td></tr>
 <tr class="separator:aed1e475e75409625c8df85dc3d396e4c"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:af49427a6a8a6ec24f3c9cf812f30812d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#af49427a6a8a6ec24f3c9cf812f30812d">FlatBufferBuilder</a> (int initial_size)</td></tr>
 <tr class="memdesc:af49427a6a8a6ec24f3c9cf812f30812d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Start with a buffer of size <code>initial_size</code>, then grow as required.  <a href="#af49427a6a8a6ec24f3c9cf812f30812d">More...</a><br /></td></tr>
 <tr class="separator:af49427a6a8a6ec24f3c9cf812f30812d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ac8a8a558ce1d2531447a765636db2387"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac8a8a558ce1d2531447a765636db2387"></a>
+<tr class="memitem:ac8a8a558ce1d2531447a765636db2387"><td class="memItemLeft" align="right" valign="top"><a id="ac8a8a558ce1d2531447a765636db2387"></a>
 &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#ac8a8a558ce1d2531447a765636db2387">FlatBufferBuilder</a> ()</td></tr>
 <tr class="memdesc:ac8a8a558ce1d2531447a765636db2387"><td class="mdescLeft">&#160;</td><td class="mdescRight">Start with a buffer of 1KiB, then grow as required. <br /></td></tr>
 <tr class="separator:ac8a8a558ce1d2531447a765636db2387"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -256,18 +227,29 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
 <tr class="memitem:a5a98de8b6e8fc5df984c435ba3181690"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a5a98de8b6e8fc5df984c435ba3181690">putShort</a> (short x)</td></tr>
 <tr class="memdesc:a5a98de8b6e8fc5df984c435ba3181690"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a <code>short</code> to the buffer, backwards from the current location.  <a href="#a5a98de8b6e8fc5df984c435ba3181690">More...</a><br /></td></tr>
 <tr class="separator:a5a98de8b6e8fc5df984c435ba3181690"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a81a5c2d7ab36e913cc16d9499aabe078"><td class="memItemLeft" align="right" valign="top">byte[]&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a81a5c2d7ab36e913cc16d9499aabe078">sizedByteArray</a> (int start, int length)</td></tr>
+<tr class="memitem:a81a5c2d7ab36e913cc16d9499aabe078"><td class="memItemLeft" align="right" valign="top">byte []&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a81a5c2d7ab36e913cc16d9499aabe078">sizedByteArray</a> (int start, int length)</td></tr>
 <tr class="memdesc:a81a5c2d7ab36e913cc16d9499aabe078"><td class="mdescLeft">&#160;</td><td class="mdescRight">A utility function to copy and return the ByteBuffer data from <code>start</code> to <code>start</code> + <code>length</code> as a <code>byte[]</code>.  <a href="#a81a5c2d7ab36e913cc16d9499aabe078">More...</a><br /></td></tr>
 <tr class="separator:a81a5c2d7ab36e913cc16d9499aabe078"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aa636cf5190524c43212b6d96239d7672"><td class="memItemLeft" align="right" valign="top">byte[]&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#aa636cf5190524c43212b6d96239d7672">sizedByteArray</a> ()</td></tr>
+<tr class="memitem:aa636cf5190524c43212b6d96239d7672"><td class="memItemLeft" align="right" valign="top">byte []&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#aa636cf5190524c43212b6d96239d7672">sizedByteArray</a> ()</td></tr>
 <tr class="memdesc:aa636cf5190524c43212b6d96239d7672"><td class="mdescLeft">&#160;</td><td class="mdescRight">A utility function to copy and return the ByteBuffer data as a <code>byte[]</code>.  <a href="#aa636cf5190524c43212b6d96239d7672">More...</a><br /></td></tr>
 <tr class="separator:aa636cf5190524c43212b6d96239d7672"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ab8fc86fe501b182b4a1a50fcdbcb3e6b"><td class="memItemLeft" align="right" valign="top">InputStream&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#ab8fc86fe501b182b4a1a50fcdbcb3e6b">sizedInputStream</a> ()</td></tr>
 <tr class="memdesc:ab8fc86fe501b182b4a1a50fcdbcb3e6b"><td class="mdescLeft">&#160;</td><td class="mdescRight">A utility function to return an InputStream to the ByteBuffer data.  <a href="#ab8fc86fe501b182b4a1a50fcdbcb3e6b">More...</a><br /></td></tr>
 <tr class="separator:ab8fc86fe501b182b4a1a50fcdbcb3e6b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
+Protected Member Functions</h2></td></tr>
+<tr class="memitem:af344604d66e9e8524fef826fc516d5b2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#af344604d66e9e8524fef826fc516d5b2">finish</a> (int root_table, boolean size_prefix)</td></tr>
+<tr class="memdesc:af344604d66e9e8524fef826fc516d5b2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Finalize a buffer, pointing to the given <code>root_table</code>.  <a href="#af344604d66e9e8524fef826fc516d5b2">More...</a><br /></td></tr>
+<tr class="separator:af344604d66e9e8524fef826fc516d5b2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afc31aba1a9523fde4be3558f8f19f49b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#afc31aba1a9523fde4be3558f8f19f49b">finish</a> (int root_table, String file_identifier, boolean size_prefix)</td></tr>
+<tr class="memdesc:afc31aba1a9523fde4be3558f8f19f49b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Finalize a buffer, pointing to the given <code>root_table</code>.  <a href="#afc31aba1a9523fde4be3558f8f19f49b">More...</a><br /></td></tr>
+<tr class="separator:afc31aba1a9523fde4be3558f8f19f49b"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
-<a class="anchor" id="aed1e475e75409625c8df85dc3d396e4c"></a>
+<a id="aed1e475e75409625c8df85dc3d396e4c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aed1e475e75409625c8df85dc3d396e4c">&#9670;&nbsp;</a></span>FlatBufferBuilder() <span class="overload">[1/4]</span></h2>
+
 <div class="memitem">
 <div class="memproto">
 <table class="mlabels">
@@ -310,7 +292,9 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
 
 </div>
 </div>
-<a class="anchor" id="af49427a6a8a6ec24f3c9cf812f30812d"></a>
+<a id="af49427a6a8a6ec24f3c9cf812f30812d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af49427a6a8a6ec24f3c9cf812f30812d">&#9670;&nbsp;</a></span>FlatBufferBuilder() <span class="overload">[2/4]</span></h2>
+
 <div class="memitem">
 <div class="memproto">
 <table class="mlabels">
@@ -342,7 +326,9 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
 
 </div>
 </div>
-<a class="anchor" id="a3388cd4dc6e5233283fb4927b71a1c39"></a>
+<a id="a3388cd4dc6e5233283fb4927b71a1c39"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a3388cd4dc6e5233283fb4927b71a1c39">&#9670;&nbsp;</a></span>FlatBufferBuilder() <span class="overload">[3/4]</span></h2>
+
 <div class="memitem">
 <div class="memproto">
 <table class="mlabels">
@@ -386,7 +372,9 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
 
 </div>
 </div>
-<a class="anchor" id="a61ad1938219bcdbe99cc4b668f4c0f99"></a>
+<a id="a61ad1938219bcdbe99cc4b668f4c0f99"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a61ad1938219bcdbe99cc4b668f4c0f99">&#9670;&nbsp;</a></span>FlatBufferBuilder() <span class="overload">[4/4]</span></h2>
+
 <div class="memitem">
 <div class="memproto">
 <table class="mlabels">
@@ -420,7 +408,9 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
 </div>
 </div>
 <h2 class="groupheader">Member Function Documentation</h2>
-<a class="anchor" id="a53e6356cfef3d6be298efb9a0d67be06"></a>
+<a id="a53e6356cfef3d6be298efb9a0d67be06"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a53e6356cfef3d6be298efb9a0d67be06">&#9670;&nbsp;</a></span>addBoolean()</h2>
+
 <div class="memitem">
 <div class="memproto">
 <table class="mlabels">
@@ -452,7 +442,9 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
 
 </div>
 </div>
-<a class="anchor" id="ae019d7ee089c95a37421365d5fb9533b"></a>
+<a id="ae019d7ee089c95a37421365d5fb9533b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ae019d7ee089c95a37421365d5fb9533b">&#9670;&nbsp;</a></span>addByte()</h2>
+
 <div class="memitem">
 <div class="memproto">
 <table class="mlabels">
@@ -484,7 +476,9 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
 
 </div>
 </div>
-<a class="anchor" id="ac36c1fc72851b17129fc763da00cff32"></a>
+<a id="ac36c1fc72851b17129fc763da00cff32"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ac36c1fc72851b17129fc763da00cff32">&#9670;&nbsp;</a></span>addDouble()</h2>
+
 <div class="memitem">
 <div class="memproto">
 <table class="mlabels">
@@ -516,7 +510,9 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
 
 </div>
 </div>
-<a class="anchor" id="a55c20e99ba68be516dfbddfddb9efd4d"></a>
+<a id="a55c20e99ba68be516dfbddfddb9efd4d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a55c20e99ba68be516dfbddfddb9efd4d">&#9670;&nbsp;</a></span>addFloat()</h2>
+
 <div class="memitem">
 <div class="memproto">
 <table class="mlabels">
@@ -548,7 +544,9 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
 
 </div>
 </div>
-<a class="anchor" id="a1c0ae381bf6adb84b18e613aadf8d4db"></a>
+<a id="a1c0ae381bf6adb84b18e613aadf8d4db"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a1c0ae381bf6adb84b18e613aadf8d4db">&#9670;&nbsp;</a></span>addInt()</h2>
+
 <div class="memitem">
 <div class="memproto">
 <table class="mlabels">
@@ -580,7 +578,9 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
 
 </div>
 </div>
-<a class="anchor" id="a0e1215f334989ecc59b49a3239aed5b5"></a>
+<a id="a0e1215f334989ecc59b49a3239aed5b5"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a0e1215f334989ecc59b49a3239aed5b5">&#9670;&nbsp;</a></span>addLong()</h2>
+
 <div class="memitem">
 <div class="memproto">
 <table class="mlabels">
@@ -612,7 +612,9 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
 
 </div>
 </div>
-<a class="anchor" id="ae817751382089b603753452cc1e56790"></a>
+<a id="ae817751382089b603753452cc1e56790"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ae817751382089b603753452cc1e56790">&#9670;&nbsp;</a></span>addOffset()</h2>
+
 <div class="memitem">
 <div class="memproto">
 <table class="mlabels">
@@ -644,7 +646,9 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
 
 </div>
 </div>
-<a class="anchor" id="a67a9f5dcd251735d6b96e1ad46de9d94"></a>
+<a id="a67a9f5dcd251735d6b96e1ad46de9d94"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a67a9f5dcd251735d6b96e1ad46de9d94">&#9670;&nbsp;</a></span>addShort()</h2>
+
 <div class="memitem">
 <div class="memproto">
 <table class="mlabels">
@@ -676,7 +680,9 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
 
 </div>
 </div>
-<a class="anchor" id="a37b5debda58afd1fcb71ec82efe663b9"></a>
+<a id="a37b5debda58afd1fcb71ec82efe663b9"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a37b5debda58afd1fcb71ec82efe663b9">&#9670;&nbsp;</a></span>createByteVector()</h2>
+
 <div class="memitem">
 <div class="memproto">
 <table class="mlabels">
@@ -686,7 +692,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
         <tr>
           <td class="memname">int com.google.flatbuffers.FlatBufferBuilder.createByteVector </td>
           <td>(</td>
-          <td class="paramtype">byte[]&#160;</td>
+          <td class="paramtype">byte []&#160;</td>
           <td class="paramname"><em>arr</em></td><td>)</td>
           <td></td>
         </tr>
@@ -709,7 +715,9 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
 
 </div>
 </div>
-<a class="anchor" id="abd3b2f9b239a702ffaa8a1e97894f09e"></a>
+<a id="abd3b2f9b239a702ffaa8a1e97894f09e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#abd3b2f9b239a702ffaa8a1e97894f09e">&#9670;&nbsp;</a></span>createString() <span class="overload">[1/2]</span></h2>
+
 <div class="memitem">
 <div class="memproto">
 <table class="mlabels">
@@ -732,8 +740,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
 </div><div class="memdoc">
 
 <p>Encode the string <code>s</code> in the buffer using UTF-8. </p>
-<p>If</p><div class="fragment"><div class="line">s </div>
-</div><!-- fragment --><p> is already a <a class="el" href="">CharBuffer</a>, this method is allocation free.</p>
+<p>If</p><div class="fragment"><div class="line">s </div></div><!-- fragment --><p> is already a <a class="el" href="">CharBuffer</a>, this method is allocation free.</p>
 <dl class="params"><dt>Parameters</dt><dd>
   <table class="params">
     <tr><td class="paramname">s</td><td>The string to encode. </td></tr>
@@ -744,7 +751,9 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
 
 </div>
 </div>
-<a class="anchor" id="a8d676eb9973ecba574a220cdef725577"></a>
+<a id="a8d676eb9973ecba574a220cdef725577"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a8d676eb9973ecba574a220cdef725577">&#9670;&nbsp;</a></span>createString() <span class="overload">[2/2]</span></h2>
+
 <div class="memitem">
 <div class="memproto">
 <table class="mlabels">
@@ -777,7 +786,9 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
 
 </div>
 </div>
-<a class="anchor" id="acc889115f91460ca89ce981cb02c2039"></a>
+<a id="acc889115f91460ca89ce981cb02c2039"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#acc889115f91460ca89ce981cb02c2039">&#9670;&nbsp;</a></span>createUnintializedVector()</h2>
+
 <div class="memitem">
 <div class="memproto">
 <table class="mlabels">
@@ -829,7 +840,9 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
 
 </div>
 </div>
-<a class="anchor" id="a24ea4649f508a7843e429737a4a9fad1"></a>
+<a id="a24ea4649f508a7843e429737a4a9fad1"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a24ea4649f508a7843e429737a4a9fad1">&#9670;&nbsp;</a></span>createVectorOfTables()</h2>
+
 <div class="memitem">
 <div class="memproto">
 <table class="mlabels">
@@ -839,7 +852,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
         <tr>
           <td class="memname">int com.google.flatbuffers.FlatBufferBuilder.createVectorOfTables </td>
           <td>(</td>
-          <td class="paramtype">int[]&#160;</td>
+          <td class="paramtype">int []&#160;</td>
           <td class="paramname"><em>offsets</em></td><td>)</td>
           <td></td>
         </tr>
@@ -862,7 +875,9 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
 
 </div>
 </div>
-<a class="anchor" id="abf0fd34f0d93a9d89f595fddf752feb7"></a>
+<a id="abf0fd34f0d93a9d89f595fddf752feb7"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#abf0fd34f0d93a9d89f595fddf752feb7">&#9670;&nbsp;</a></span>dataBuffer()</h2>
+
 <div class="memitem">
 <div class="memproto">
 <table class="mlabels">
@@ -889,7 +904,54 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
 
 </div>
 </div>
-<a class="anchor" id="aee9ed3214a7b35075773c506e3d95a14"></a>
+<a id="af344604d66e9e8524fef826fc516d5b2"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af344604d66e9e8524fef826fc516d5b2">&#9670;&nbsp;</a></span>finish() <span class="overload">[1/4]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">void com.google.flatbuffers.FlatBufferBuilder.finish </td>
+          <td>(</td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>root_table</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">boolean&#160;</td>
+          <td class="paramname"><em>size_prefix</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Finalize a buffer, pointing to the given <code>root_table</code>. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">root_table</td><td>An offset to be added to the buffer. </td></tr>
+    <tr><td class="paramname">size_prefix</td><td>Whether to prefix the size to the buffer. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="aee9ed3214a7b35075773c506e3d95a14"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aee9ed3214a7b35075773c506e3d95a14">&#9670;&nbsp;</a></span>finish() <span class="overload">[2/4]</span></h2>
+
 <div class="memitem">
 <div class="memproto">
 <table class="mlabels">
@@ -921,7 +983,61 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
 
 </div>
 </div>
-<a class="anchor" id="a189de474e0c39d663cc65fa21a63f071"></a>
+<a id="afc31aba1a9523fde4be3558f8f19f49b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#afc31aba1a9523fde4be3558f8f19f49b">&#9670;&nbsp;</a></span>finish() <span class="overload">[3/4]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">void com.google.flatbuffers.FlatBufferBuilder.finish </td>
+          <td>(</td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>root_table</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">String&#160;</td>
+          <td class="paramname"><em>file_identifier</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">boolean&#160;</td>
+          <td class="paramname"><em>size_prefix</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Finalize a buffer, pointing to the given <code>root_table</code>. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">root_table</td><td>An offset to be added to the buffer. </td></tr>
+    <tr><td class="paramname">file_identifier</td><td>A FlatBuffer file identifier to be added to the buffer before <code>root_table</code>. </td></tr>
+    <tr><td class="paramname">size_prefix</td><td>Whether to prefix the size to the buffer. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="a189de474e0c39d663cc65fa21a63f071"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a189de474e0c39d663cc65fa21a63f071">&#9670;&nbsp;</a></span>finish() <span class="overload">[4/4]</span></h2>
+
 <div class="memitem">
 <div class="memproto">
 <table class="mlabels">
@@ -964,7 +1080,88 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
 
 </div>
 </div>
-<a class="anchor" id="aaadff3772bfdff756b4f269afae5ac69"></a>
+<a id="aa00c035b0f60abe32a5f1467ebd4ec54"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aa00c035b0f60abe32a5f1467ebd4ec54">&#9670;&nbsp;</a></span>finishSizePrefixed() <span class="overload">[1/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">void com.google.flatbuffers.FlatBufferBuilder.finishSizePrefixed </td>
+          <td>(</td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>root_table</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Finalize a buffer, pointing to the given <code>root_table</code>, with the size prefixed. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">root_table</td><td>An offset to be added to the buffer. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ab179d8aa4c4b782d83b3817a6b08ee35"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ab179d8aa4c4b782d83b3817a6b08ee35">&#9670;&nbsp;</a></span>finishSizePrefixed() <span class="overload">[2/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">void com.google.flatbuffers.FlatBufferBuilder.finishSizePrefixed </td>
+          <td>(</td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>root_table</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">String&#160;</td>
+          <td class="paramname"><em>file_identifier</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Finalize a buffer, pointing to the given <code>root_table</code>, with the size prefixed. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">root_table</td><td>An offset to be added to the buffer. </td></tr>
+    <tr><td class="paramname">file_identifier</td><td>A FlatBuffer file identifier to be added to the buffer before <code>root_table</code>. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="aaadff3772bfdff756b4f269afae5ac69"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aaadff3772bfdff756b4f269afae5ac69">&#9670;&nbsp;</a></span>forceDefaults()</h2>
+
 <div class="memitem">
 <div class="memproto">
 <table class="mlabels">
@@ -998,7 +1195,9 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
 
 </div>
 </div>
-<a class="anchor" id="adf671e70a4d30c85f37393c47a7a7dd1"></a>
+<a id="adf671e70a4d30c85f37393c47a7a7dd1"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#adf671e70a4d30c85f37393c47a7a7dd1">&#9670;&nbsp;</a></span>init()</h2>
+
 <div class="memitem">
 <div class="memproto">
 <table class="mlabels">
@@ -1043,7 +1242,9 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
 
 </div>
 </div>
-<a class="anchor" id="ae3a3fbf645e64ce784a524f935a6e6f2"></a>
+<a id="ae3a3fbf645e64ce784a524f935a6e6f2"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ae3a3fbf645e64ce784a524f935a6e6f2">&#9670;&nbsp;</a></span>offset()</h2>
+
 <div class="memitem">
 <div class="memproto">
 <table class="mlabels">
@@ -1069,7 +1270,9 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
 
 </div>
 </div>
-<a class="anchor" id="a4a2e8c6430c6538509147225b8a4697e"></a>
+<a id="a4a2e8c6430c6538509147225b8a4697e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a4a2e8c6430c6538509147225b8a4697e">&#9670;&nbsp;</a></span>pad()</h2>
+
 <div class="memitem">
 <div class="memproto">
 <table class="mlabels">
@@ -1101,7 +1304,9 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
 
 </div>
 </div>
-<a class="anchor" id="a2023123a33f19d670182d5f00ef9aa59"></a>
+<a id="a2023123a33f19d670182d5f00ef9aa59"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a2023123a33f19d670182d5f00ef9aa59">&#9670;&nbsp;</a></span>prep()</h2>
+
 <div class="memitem">
 <div class="memproto">
 <table class="mlabels">
@@ -1145,7 +1350,9 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
 
 </div>
 </div>
-<a class="anchor" id="a24114cfb1adb89f1e3d72736b06a8df0"></a>
+<a id="a24114cfb1adb89f1e3d72736b06a8df0"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a24114cfb1adb89f1e3d72736b06a8df0">&#9670;&nbsp;</a></span>putBoolean()</h2>
+
 <div class="memitem">
 <div class="memproto">
 <table class="mlabels">
@@ -1178,7 +1385,9 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
 
 </div>
 </div>
-<a class="anchor" id="a86b42641d0c600afa11f8c8493f5e6a3"></a>
+<a id="a86b42641d0c600afa11f8c8493f5e6a3"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a86b42641d0c600afa11f8c8493f5e6a3">&#9670;&nbsp;</a></span>putByte()</h2>
+
 <div class="memitem">
 <div class="memproto">
 <table class="mlabels">
@@ -1211,7 +1420,9 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
 
 </div>
 </div>
-<a class="anchor" id="a36bc3231cc9f86e6fd2750dcec8b7336"></a>
+<a id="a36bc3231cc9f86e6fd2750dcec8b7336"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a36bc3231cc9f86e6fd2750dcec8b7336">&#9670;&nbsp;</a></span>putDouble()</h2>
+
 <div class="memitem">
 <div class="memproto">
 <table class="mlabels">
@@ -1244,7 +1455,9 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
 
 </div>
 </div>
-<a class="anchor" id="a0e3fae083ea9c9bff3b80cde3f4581bb"></a>
+<a id="a0e3fae083ea9c9bff3b80cde3f4581bb"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a0e3fae083ea9c9bff3b80cde3f4581bb">&#9670;&nbsp;</a></span>putFloat()</h2>
+
 <div class="memitem">
 <div class="memproto">
 <table class="mlabels">
@@ -1277,7 +1490,9 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
 
 </div>
 </div>
-<a class="anchor" id="a108d4c3d931b4f2a63a71aeefa562bba"></a>
+<a id="a108d4c3d931b4f2a63a71aeefa562bba"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a108d4c3d931b4f2a63a71aeefa562bba">&#9670;&nbsp;</a></span>putInt()</h2>
+
 <div class="memitem">
 <div class="memproto">
 <table class="mlabels">
@@ -1310,7 +1525,9 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
 
 </div>
 </div>
-<a class="anchor" id="a083507c3c359c28bb008142e8ad41a7d"></a>
+<a id="a083507c3c359c28bb008142e8ad41a7d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a083507c3c359c28bb008142e8ad41a7d">&#9670;&nbsp;</a></span>putLong()</h2>
+
 <div class="memitem">
 <div class="memproto">
 <table class="mlabels">
@@ -1343,7 +1560,9 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
 
 </div>
 </div>
-<a class="anchor" id="a5a98de8b6e8fc5df984c435ba3181690"></a>
+<a id="a5a98de8b6e8fc5df984c435ba3181690"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a5a98de8b6e8fc5df984c435ba3181690">&#9670;&nbsp;</a></span>putShort()</h2>
+
 <div class="memitem">
 <div class="memproto">
 <table class="mlabels">
@@ -1376,7 +1595,9 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
 
 </div>
 </div>
-<a class="anchor" id="a81a5c2d7ab36e913cc16d9499aabe078"></a>
+<a id="a81a5c2d7ab36e913cc16d9499aabe078"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a81a5c2d7ab36e913cc16d9499aabe078">&#9670;&nbsp;</a></span>sizedByteArray() <span class="overload">[1/2]</span></h2>
+
 <div class="memitem">
 <div class="memproto">
 <table class="mlabels">
@@ -1426,7 +1647,9 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
 
 </div>
 </div>
-<a class="anchor" id="aa636cf5190524c43212b6d96239d7672"></a>
+<a id="aa636cf5190524c43212b6d96239d7672"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aa636cf5190524c43212b6d96239d7672">&#9670;&nbsp;</a></span>sizedByteArray() <span class="overload">[2/2]</span></h2>
+
 <div class="memitem">
 <div class="memproto">
 <table class="mlabels">
@@ -1452,7 +1675,9 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
 
 </div>
 </div>
-<a class="anchor" id="ab8fc86fe501b182b4a1a50fcdbcb3e6b"></a>
+<a id="ab8fc86fe501b182b4a1a50fcdbcb3e6b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ab8fc86fe501b182b4a1a50fcdbcb3e6b">&#9670;&nbsp;</a></span>sizedInputStream()</h2>
+
 <div class="memitem">
 <div class="memproto">
 <table class="mlabels">
diff --git a/classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.js b/classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.js
index 33ff110da5c8e1ac45202bae40139f382a733318..d0a5c46d2c2da1d96894cdf823df321bb81b5b31 100644
--- a/classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.js
+++ b/classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.js
@@ -22,8 +22,12 @@ var classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder =
     [ "createUnintializedVector", "classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#acc889115f91460ca89ce981cb02c2039", null ],
     [ "createVectorOfTables", "classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a24ea4649f508a7843e429737a4a9fad1", null ],
     [ "dataBuffer", "classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#abf0fd34f0d93a9d89f595fddf752feb7", null ],
+    [ "finish", "classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#af344604d66e9e8524fef826fc516d5b2", null ],
     [ "finish", "classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#aee9ed3214a7b35075773c506e3d95a14", null ],
+    [ "finish", "classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#afc31aba1a9523fde4be3558f8f19f49b", null ],
     [ "finish", "classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a189de474e0c39d663cc65fa21a63f071", null ],
+    [ "finishSizePrefixed", "classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#aa00c035b0f60abe32a5f1467ebd4ec54", null ],
+    [ "finishSizePrefixed", "classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#ab179d8aa4c4b782d83b3817a6b08ee35", null ],
     [ "forceDefaults", "classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#aaadff3772bfdff756b4f269afae5ac69", null ],
     [ "init", "classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#adf671e70a4d30c85f37393c47a7a7dd1", null ],
     [ "offset", "classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#ae3a3fbf645e64ce784a524f935a6e6f2", null ],
diff --git a/classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder_1_1_heap_byte_buffer_factory-members.html b/classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder_1_1_heap_byte_buffer_factory-members.html
index 476e956d8ff34ba6667f344d22f9063e933709cb..daedbfea0136273d0b055fa51e7179d626b5e95a 100644
--- a/classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder_1_1_heap_byte_buffer_factory-members.html
+++ b/classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder_1_1_heap_byte_buffer_factory-members.html
@@ -4,23 +4,21 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <title>FlatBuffers: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
 <link href="navtree.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
 <script type="text/javascript" src="navtree.js"></script>
 <script type="text/javascript">
   $(document).ready(initResizable);
-  $(window).load(resizeHeight);
 </script>
 <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
 <script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
-  $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,500italic,700,700italic|Roboto+Mono:400,700" rel="stylesheet">
 <link href="style.css" rel="stylesheet" type="text/css"/>
@@ -46,53 +44,19 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.7 -->
+<!-- Generated by Doxygen 1.8.13 -->
 <script type="text/javascript">
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </script>
-  <div id="navrow1" class="tabs">
-    <ul class="tablist">
-      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
-      <li><a href="usergroup0.html"><span>Programmer's&#160;Guide</span></a></li>
-      <li><a href="flatbuffers_support.html"><span>Platform&#160;/&#160;Language&#160;/&#160;Feature&#160;support</span></a></li>
-      <li><a href="flatbuffers_benchmarks.html"><span>Benchmarks</span></a></li>
-      <li><a href="flatbuffers_white_paper.html"><span>FlatBuffers&#160;white&#160;paper</span></a></li>
-      <li><a href="flatbuffers_internals.html"><span>FlatBuffers&#160;internals</span></a></li>
-      <li><a href="flatbuffers_grammar.html"><span>Grammar&#160;of&#160;the&#160;schema&#160;language</span></a></li>
-      <li class="current"><a href="usergroup2.html"><span>API&#160;Reference</span></a></li>
-      <li><a href="contributing.html"><span>Contributing</span></a></li>
-      <li>
-        <div id="MSearchBox" class="MSearchBoxInactive">
-        <span class="left">
-          <img id="MSearchSelect" src="search/mag_sel.png"
-               onmouseover="return searchBox.OnSearchSelectShow()"
-               onmouseout="return searchBox.OnSearchSelectHide()"
-               alt=""/>
-          <input type="text" id="MSearchField" value="Search" accesskey="S"
-               onfocus="searchBox.OnSearchFieldFocus(true)" 
-               onblur="searchBox.OnSearchFieldFocus(false)" 
-               onkeyup="searchBox.OnSearchFieldChange(event)"/>
-          </span><span class="right">
-            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
-          </span>
-        </div>
-      </li>
-    </ul>
-  </div>
-  <div id="navrow2" class="tabs2">
-    <ul class="tablist">
-      <li><a href="modules.html"><span>APIs</span></a></li>
-      <li class="current"><a href="annotated.html"><span>Class&#160;List</span></a></li>
-    </ul>
-  </div>
-  <div id="navrow2" class="tabs2">
-    <ul class="tablist">
-      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
-      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
-      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
-      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
-    </ul>
-  </div>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -113,7 +77,7 @@ $(document).ready(function(){initNavTree('classcom_1_1google_1_1flatbuffers_1_1_
      onmouseover="return searchBox.OnSearchSelectShow()"
      onmouseout="return searchBox.OnSearchSelectHide()"
      onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Properties</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+</div>
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
diff --git a/classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder_1_1_heap_byte_buffer_factory.html b/classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder_1_1_heap_byte_buffer_factory.html
index f34b9305769278c96827745c4abb05edd90febce..48cf5c72d9d668800acba5bed71a6b15ad57a759 100644
--- a/classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder_1_1_heap_byte_buffer_factory.html
+++ b/classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder_1_1_heap_byte_buffer_factory.html
@@ -4,23 +4,21 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <title>FlatBuffers: com.google.flatbuffers.FlatBufferBuilder.HeapByteBufferFactory Class Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
 <link href="navtree.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
 <script type="text/javascript" src="navtree.js"></script>
 <script type="text/javascript">
   $(document).ready(initResizable);
-  $(window).load(resizeHeight);
 </script>
 <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
 <script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
-  $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,500italic,700,700italic|Roboto+Mono:400,700" rel="stylesheet">
 <link href="style.css" rel="stylesheet" type="text/css"/>
@@ -46,53 +44,19 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.7 -->
+<!-- Generated by Doxygen 1.8.13 -->
 <script type="text/javascript">
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </script>
-  <div id="navrow1" class="tabs">
-    <ul class="tablist">
-      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
-      <li><a href="usergroup0.html"><span>Programmer's&#160;Guide</span></a></li>
-      <li><a href="flatbuffers_support.html"><span>Platform&#160;/&#160;Language&#160;/&#160;Feature&#160;support</span></a></li>
-      <li><a href="flatbuffers_benchmarks.html"><span>Benchmarks</span></a></li>
-      <li><a href="flatbuffers_white_paper.html"><span>FlatBuffers&#160;white&#160;paper</span></a></li>
-      <li><a href="flatbuffers_internals.html"><span>FlatBuffers&#160;internals</span></a></li>
-      <li><a href="flatbuffers_grammar.html"><span>Grammar&#160;of&#160;the&#160;schema&#160;language</span></a></li>
-      <li class="current"><a href="usergroup2.html"><span>API&#160;Reference</span></a></li>
-      <li><a href="contributing.html"><span>Contributing</span></a></li>
-      <li>
-        <div id="MSearchBox" class="MSearchBoxInactive">
-        <span class="left">
-          <img id="MSearchSelect" src="search/mag_sel.png"
-               onmouseover="return searchBox.OnSearchSelectShow()"
-               onmouseout="return searchBox.OnSearchSelectHide()"
-               alt=""/>
-          <input type="text" id="MSearchField" value="Search" accesskey="S"
-               onfocus="searchBox.OnSearchFieldFocus(true)" 
-               onblur="searchBox.OnSearchFieldFocus(false)" 
-               onkeyup="searchBox.OnSearchFieldChange(event)"/>
-          </span><span class="right">
-            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
-          </span>
-        </div>
-      </li>
-    </ul>
-  </div>
-  <div id="navrow2" class="tabs2">
-    <ul class="tablist">
-      <li><a href="modules.html"><span>APIs</span></a></li>
-      <li class="current"><a href="annotated.html"><span>Class&#160;List</span></a></li>
-    </ul>
-  </div>
-  <div id="navrow2" class="tabs2">
-    <ul class="tablist">
-      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
-      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
-      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
-      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
-    </ul>
-  </div>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -113,7 +77,7 @@ $(document).ready(function(){initNavTree('classcom_1_1google_1_1flatbuffers_1_1_
      onmouseover="return searchBox.OnSearchSelectShow()"
      onmouseout="return searchBox.OnSearchSelectHide()"
      onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Properties</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+</div>
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
@@ -153,7 +117,9 @@ Public Member Functions</h2></td></tr>
 <tr class="separator:aac26ff51a8162b37a072792ec9068644"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <h2 class="groupheader">Member Function Documentation</h2>
-<a class="anchor" id="aac26ff51a8162b37a072792ec9068644"></a>
+<a id="aac26ff51a8162b37a072792ec9068644"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aac26ff51a8162b37a072792ec9068644">&#9670;&nbsp;</a></span>newByteBuffer()</h2>
+
 <div class="memitem">
 <div class="memproto">
 <table class="mlabels">
diff --git a/classes.html b/classes.html
index c6efd40e253afd50a9f80d80bda7087aef36850b..c5f42c88915d090099592f2c061e263b772ec0aa 100644
--- a/classes.html
+++ b/classes.html
@@ -4,23 +4,21 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <title>FlatBuffers: Class Index</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
 <link href="navtree.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
 <script type="text/javascript" src="navtree.js"></script>
 <script type="text/javascript">
   $(document).ready(initResizable);
-  $(window).load(resizeHeight);
 </script>
 <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
 <script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
-  $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,500italic,700,700italic|Roboto+Mono:400,700" rel="stylesheet">
 <link href="style.css" rel="stylesheet" type="text/css"/>
@@ -46,53 +44,19 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.7 -->
+<!-- Generated by Doxygen 1.8.13 -->
 <script type="text/javascript">
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </script>
-  <div id="navrow1" class="tabs">
-    <ul class="tablist">
-      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
-      <li><a href="usergroup0.html"><span>Programmer's&#160;Guide</span></a></li>
-      <li><a href="flatbuffers_support.html"><span>Platform&#160;/&#160;Language&#160;/&#160;Feature&#160;support</span></a></li>
-      <li><a href="flatbuffers_benchmarks.html"><span>Benchmarks</span></a></li>
-      <li><a href="flatbuffers_white_paper.html"><span>FlatBuffers&#160;white&#160;paper</span></a></li>
-      <li><a href="flatbuffers_internals.html"><span>FlatBuffers&#160;internals</span></a></li>
-      <li><a href="flatbuffers_grammar.html"><span>Grammar&#160;of&#160;the&#160;schema&#160;language</span></a></li>
-      <li class="current"><a href="usergroup2.html"><span>API&#160;Reference</span></a></li>
-      <li><a href="contributing.html"><span>Contributing</span></a></li>
-      <li>
-        <div id="MSearchBox" class="MSearchBoxInactive">
-        <span class="left">
-          <img id="MSearchSelect" src="search/mag_sel.png"
-               onmouseover="return searchBox.OnSearchSelectShow()"
-               onmouseout="return searchBox.OnSearchSelectHide()"
-               alt=""/>
-          <input type="text" id="MSearchField" value="Search" accesskey="S"
-               onfocus="searchBox.OnSearchFieldFocus(true)" 
-               onblur="searchBox.OnSearchFieldFocus(false)" 
-               onkeyup="searchBox.OnSearchFieldChange(event)"/>
-          </span><span class="right">
-            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
-          </span>
-        </div>
-      </li>
-    </ul>
-  </div>
-  <div id="navrow2" class="tabs2">
-    <ul class="tablist">
-      <li><a href="modules.html"><span>APIs</span></a></li>
-      <li class="current"><a href="annotated.html"><span>Class&#160;List</span></a></li>
-    </ul>
-  </div>
-  <div id="navrow2" class="tabs2">
-    <ul class="tablist">
-      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
-      <li class="current"><a href="classes.html"><span>Class&#160;Index</span></a></li>
-      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
-      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
-    </ul>
-  </div>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -113,7 +77,7 @@ $(document).ready(function(){initNavTree('classes.html','');});
      onmouseover="return searchBox.OnSearchSelectShow()"
      onmouseout="return searchBox.OnSearchSelectHide()"
      onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Properties</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+</div>
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
@@ -127,31 +91,30 @@ $(document).ready(function(){initNavTree('classes.html','');});
 <div class="title">Class Index</div>  </div>
 </div><!--header-->
 <div class="contents">
-<div class="qindex"><a class="qindex" href="#letter_A">A</a>&#160;|&#160;<a class="qindex" href="#letter_B">B</a>&#160;|&#160;<a class="qindex" href="#letter_D">D</a>&#160;|&#160;<a class="qindex" href="#letter_F">F</a>&#160;|&#160;<a class="qindex" href="#letter_H">H</a>&#160;|&#160;<a class="qindex" href="#letter_I">I</a>&#160;|&#160;<a class="qindex" href="#letter_O">O</a>&#160;|&#160;<a class="qindex" href="#letter_S">S</a>&#160;|&#160;<a class="qindex" href="#letter_V">V</a></div>
-<table style="margin: 10px; white-space: nowrap;" align="center" width="95%" border="0" cellspacing="0" cellpadding="0">
-<tr><td rowspan="2" valign="bottom"><a name="letter_A"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;A&#160;&#160;</div></td></tr></table>
-</td><td valign="top"><a class="el" href="classflatbuffers_1_1_detached_buffer.html">DetachedBuffer</a> (flatbuffers)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_H"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;H&#160;&#160;</div></td></tr></table>
-</td><td rowspan="2" valign="bottom"><a name="letter_O"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;O&#160;&#160;</div></td></tr></table>
+<div class="qindex"><a class="qindex" href="#letter_a">a</a>&#160;|&#160;<a class="qindex" href="#letter_b">b</a>&#160;|&#160;<a class="qindex" href="#letter_d">d</a>&#160;|&#160;<a class="qindex" href="#letter_f">f</a>&#160;|&#160;<a class="qindex" href="#letter_h">h</a>&#160;|&#160;<a class="qindex" href="#letter_i">i</a>&#160;|&#160;<a class="qindex" href="#letter_o">o</a>&#160;|&#160;<a class="qindex" href="#letter_s">s</a>&#160;|&#160;<a class="qindex" href="#letter_v">v</a></div>
+<table class="classindex">
+<tr><td rowspan="2" valign="bottom"><a name="letter_a"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;a&#160;&#160;</div></td></tr></table>
+</td><td valign="top"><a class="el" href="classflatbuffers_1_1_detached_buffer.html">DetachedBuffer</a> (flatbuffers)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_h"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;h&#160;&#160;</div></td></tr></table>
+</td><td rowspan="2" valign="bottom"><a name="letter_o"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;o&#160;&#160;</div></td></tr></table>
+</td><td valign="top"><a class="el" href="classflatbuffers_1_1vector__downward.html">vector_downward</a> (flatbuffers)&#160;&#160;&#160;</td></tr>
+<tr><td rowspan="2" valign="bottom"><a name="letter_f"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;f&#160;&#160;</div></td></tr></table>
 </td><td valign="top"><a class="el" href="structflatbuffers_1_1_vector_iterator.html">VectorIterator</a> (flatbuffers)&#160;&#160;&#160;</td></tr>
-<tr><td rowspan="2" valign="bottom"><a name="letter_F"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;F&#160;&#160;</div></td></tr></table>
-</td><td valign="top"><a class="el" href="classflatbuffers_1_1_vector_of_any.html">VectorOfAny</a> (flatbuffers)&#160;&#160;&#160;</td></tr>
-<tr><td valign="top"><a class="el" href="classflatbuffers_1_1_allocator.html">Allocator</a> (flatbuffers)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder_1_1_heap_byte_buffer_factory.html">FlatBufferBuilder.HeapByteBufferFactory</a> (com.google.flatbuffers)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structflatbuffers_1_1_offset.html">Offset</a> (flatbuffers)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_v"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;v&#160;&#160;</div></td></tr></table>
-</td></tr>
-<tr><td rowspan="2" valign="bottom"><a name="letter_B"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;B&#160;&#160;</div></td></tr></table>
-</td><td valign="top"><a class="el" href="structflatbuffers_1_1_flat_buffer_builder_1_1_field_loc.html">FlatBufferBuilder::FieldLoc</a> (flatbuffers)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_I"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;I&#160;&#160;</div></td></tr></table>
-</td><td rowspan="2" valign="bottom"><a name="letter_S"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;S&#160;&#160;</div></td></tr></table>
-</td></tr>
-<tr><td valign="top"><a class="el" href="classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html">FlatBufferBuilder</a> (com.google.flatbuffers)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classflatbuffers_1_1vector__downward.html">vector_downward</a> (flatbuffers)&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="classflatbuffers_1_1_allocator.html">Allocator</a> (flatbuffers)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder_1_1_heap_byte_buffer_factory.html">FlatBufferBuilder.HeapByteBufferFactory</a> (com.google.flatbuffers)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structflatbuffers_1_1_offset.html">Offset</a> (flatbuffers)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classflatbuffers_1_1_vector_of_any.html">VectorOfAny</a> (flatbuffers)&#160;&#160;&#160;</td></tr>
+<tr><td rowspan="2" valign="bottom"><a name="letter_b"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;b&#160;&#160;</div></td></tr></table>
+</td><td valign="top"><a class="el" href="structflatbuffers_1_1_flat_buffer_builder_1_1_field_loc.html">FlatBufferBuilder::FieldLoc</a> (flatbuffers)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_i"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;i&#160;&#160;</div></td></tr></table>
+</td><td rowspan="2" valign="bottom"><a name="letter_s"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;s&#160;&#160;</div></td></tr></table>
+</td><td></td></tr>
+<tr><td valign="top"><a class="el" href="classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html">FlatBufferBuilder</a> (com.google.flatbuffers)&#160;&#160;&#160;</td><td></td></tr>
 <tr><td valign="top"><a class="el" href="interfacecom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder_1_1_byte_buffer_factory.html">FlatBufferBuilder.ByteBufferFactory</a> (com.google.flatbuffers)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">FlatBufferBuilder</a> (flatbuffers)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structflatbuffers_1_1_indirect_helper.html">IndirectHelper</a> (flatbuffers)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structflatbuffers_1_1_string.html">String</a> (flatbuffers)&#160;&#160;&#160;</td><td></td></tr>
-<tr><td rowspan="2" valign="bottom"><a name="letter_D"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;D&#160;&#160;</div></td></tr></table>
-</td><td valign="top"><a class="el" href="class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html">FlatbufferBuilder</a> (Google\FlatBuffers)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structflatbuffers_1_1_indirect_helper_3_01const_01_t_01_5_01_4.html">IndirectHelper&lt; const T * &gt;</a> (flatbuffers)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structflatbuffers_1_1_flat_buffer_builder_1_1_string_offset_compare.html">FlatBufferBuilder::StringOffsetCompare</a> (flatbuffers)&#160;&#160;&#160;</td><td></td></tr>
-<tr><td valign="top"><a class="el" href="class_flat_buffers_1_1_flat_buffer_builder.html">FlatBufferBuilder</a> (<a class="el" href="namespace_flat_buffers.html">FlatBuffers</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structflatbuffers_1_1_indirect_helper_3_01_offset_3_01_t_01_4_01_4.html">IndirectHelper&lt; Offset&lt; T &gt; &gt;</a> (flatbuffers)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_V"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;V&#160;&#160;</div></td></tr></table>
+<tr><td valign="top"><a class="el" href="classcom_1_1google_1_1flatbuffers_1_1_byte_buffer_util.html">ByteBufferUtil</a> (com.google.flatbuffers)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html">FlatbufferBuilder</a> (Google\FlatBuffers)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structflatbuffers_1_1_indirect_helper_3_01const_01_t_01_5_01_4.html">IndirectHelper&lt; const T * &gt;</a> (flatbuffers)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structflatbuffers_1_1_flat_buffer_builder_1_1_string_offset_compare.html">FlatBufferBuilder::StringOffsetCompare</a> (flatbuffers)&#160;&#160;&#160;</td><td></td></tr>
+<tr><td rowspan="2" valign="bottom"><a name="letter_d"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;d&#160;&#160;</div></td></tr></table>
+</td><td valign="top"><a class="el" href="class_flat_buffers_1_1_flat_buffer_builder.html">FlatBufferBuilder</a> (<a class="el" href="namespace_flat_buffers.html">FlatBuffers</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structflatbuffers_1_1_indirect_helper_3_01_offset_3_01_t_01_4_01_4.html">IndirectHelper&lt; Offset&lt; T &gt; &gt;</a> (flatbuffers)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_v"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;v&#160;&#160;</div></td></tr></table>
 </td><td></td></tr>
-<tr><td valign="top"><a class="el" href="classflatbuffers_1_1_default_allocator.html">DefaultAllocator</a> (flatbuffers)&#160;&#160;&#160;</td><td></td><td></td><td></td></tr>
-<tr><td></td><td></td><td></td><td valign="top"><a class="el" href="classflatbuffers_1_1_vector.html">Vector</a> (flatbuffers)&#160;&#160;&#160;</td><td></td></tr>
+<tr><td></td><td></td><td></td></tr>
+<tr><td valign="top"><a class="el" href="classflatbuffers_1_1_default_allocator.html">DefaultAllocator</a> (flatbuffers)&#160;&#160;&#160;</td><td></td><td></td><td valign="top"><a class="el" href="classflatbuffers_1_1_vector.html">Vector</a> (flatbuffers)&#160;&#160;&#160;</td><td></td></tr>
 <tr><td></td><td></td><td></td><td></td><td></td></tr>
 </table>
-<div class="qindex"><a class="qindex" href="#letter_A">A</a>&#160;|&#160;<a class="qindex" href="#letter_B">B</a>&#160;|&#160;<a class="qindex" href="#letter_D">D</a>&#160;|&#160;<a class="qindex" href="#letter_F">F</a>&#160;|&#160;<a class="qindex" href="#letter_H">H</a>&#160;|&#160;<a class="qindex" href="#letter_I">I</a>&#160;|&#160;<a class="qindex" href="#letter_O">O</a>&#160;|&#160;<a class="qindex" href="#letter_S">S</a>&#160;|&#160;<a class="qindex" href="#letter_V">V</a></div>
+<div class="qindex"><a class="qindex" href="#letter_a">a</a>&#160;|&#160;<a class="qindex" href="#letter_b">b</a>&#160;|&#160;<a class="qindex" href="#letter_d">d</a>&#160;|&#160;<a class="qindex" href="#letter_f">f</a>&#160;|&#160;<a class="qindex" href="#letter_h">h</a>&#160;|&#160;<a class="qindex" href="#letter_i">i</a>&#160;|&#160;<a class="qindex" href="#letter_o">o</a>&#160;|&#160;<a class="qindex" href="#letter_s">s</a>&#160;|&#160;<a class="qindex" href="#letter_v">v</a></div>
 </div><!-- contents -->
 </div><!-- doc-content -->
 <!-- Google Analytics -->
diff --git a/classflatbuffers_1_1_allocator-members.html b/classflatbuffers_1_1_allocator-members.html
index d2b4a94528a481996bea7a4a8e17936498e47b44..0052b841a0e830fc1f11b6098ea6cec5f13c6b8f 100644
--- a/classflatbuffers_1_1_allocator-members.html
+++ b/classflatbuffers_1_1_allocator-members.html
@@ -4,23 +4,21 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <title>FlatBuffers: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
 <link href="navtree.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
 <script type="text/javascript" src="navtree.js"></script>
 <script type="text/javascript">
   $(document).ready(initResizable);
-  $(window).load(resizeHeight);
 </script>
 <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
 <script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
-  $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,500italic,700,700italic|Roboto+Mono:400,700" rel="stylesheet">
 <link href="style.css" rel="stylesheet" type="text/css"/>
@@ -46,53 +44,19 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.7 -->
+<!-- Generated by Doxygen 1.8.13 -->
 <script type="text/javascript">
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </script>
-  <div id="navrow1" class="tabs">
-    <ul class="tablist">
-      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
-      <li><a href="usergroup0.html"><span>Programmer's&#160;Guide</span></a></li>
-      <li><a href="flatbuffers_support.html"><span>Platform&#160;/&#160;Language&#160;/&#160;Feature&#160;support</span></a></li>
-      <li><a href="flatbuffers_benchmarks.html"><span>Benchmarks</span></a></li>
-      <li><a href="flatbuffers_white_paper.html"><span>FlatBuffers&#160;white&#160;paper</span></a></li>
-      <li><a href="flatbuffers_internals.html"><span>FlatBuffers&#160;internals</span></a></li>
-      <li><a href="flatbuffers_grammar.html"><span>Grammar&#160;of&#160;the&#160;schema&#160;language</span></a></li>
-      <li class="current"><a href="usergroup2.html"><span>API&#160;Reference</span></a></li>
-      <li><a href="contributing.html"><span>Contributing</span></a></li>
-      <li>
-        <div id="MSearchBox" class="MSearchBoxInactive">
-        <span class="left">
-          <img id="MSearchSelect" src="search/mag_sel.png"
-               onmouseover="return searchBox.OnSearchSelectShow()"
-               onmouseout="return searchBox.OnSearchSelectHide()"
-               alt=""/>
-          <input type="text" id="MSearchField" value="Search" accesskey="S"
-               onfocus="searchBox.OnSearchFieldFocus(true)" 
-               onblur="searchBox.OnSearchFieldFocus(false)" 
-               onkeyup="searchBox.OnSearchFieldChange(event)"/>
-          </span><span class="right">
-            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
-          </span>
-        </div>
-      </li>
-    </ul>
-  </div>
-  <div id="navrow2" class="tabs2">
-    <ul class="tablist">
-      <li><a href="modules.html"><span>APIs</span></a></li>
-      <li class="current"><a href="annotated.html"><span>Class&#160;List</span></a></li>
-    </ul>
-  </div>
-  <div id="navrow2" class="tabs2">
-    <ul class="tablist">
-      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
-      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
-      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
-      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
-    </ul>
-  </div>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -113,7 +77,7 @@ $(document).ready(function(){initNavTree('classflatbuffers_1_1_allocator.html','
      onmouseover="return searchBox.OnSearchSelectShow()"
      onmouseout="return searchBox.OnSearchSelectHide()"
      onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Properties</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+</div>
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
@@ -132,8 +96,9 @@ $(document).ready(function(){initNavTree('classflatbuffers_1_1_allocator.html','
 <table class="directory">
   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>allocate</b>(size_t size)=0 (defined in <a class="el" href="classflatbuffers_1_1_allocator.html">flatbuffers::Allocator</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_allocator.html">flatbuffers::Allocator</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
   <tr bgcolor="#f0f0f0"><td class="entry"><b>deallocate</b>(uint8_t *p, size_t size)=0 (defined in <a class="el" href="classflatbuffers_1_1_allocator.html">flatbuffers::Allocator</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_allocator.html">flatbuffers::Allocator</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>reallocate_downward</b>(uint8_t *old_p, size_t old_size, size_t new_size) (defined in <a class="el" href="classflatbuffers_1_1_allocator.html">flatbuffers::Allocator</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_allocator.html">flatbuffers::Allocator</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>~Allocator</b>() (defined in <a class="el" href="classflatbuffers_1_1_allocator.html">flatbuffers::Allocator</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_allocator.html">flatbuffers::Allocator</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>memcpy_downward</b>(uint8_t *old_p, size_t old_size, uint8_t *new_p, size_t new_size, size_t in_use_back, size_t in_use_front) (defined in <a class="el" href="classflatbuffers_1_1_allocator.html">flatbuffers::Allocator</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_allocator.html">flatbuffers::Allocator</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>reallocate_downward</b>(uint8_t *old_p, size_t old_size, size_t new_size, size_t in_use_back, size_t in_use_front) (defined in <a class="el" href="classflatbuffers_1_1_allocator.html">flatbuffers::Allocator</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_allocator.html">flatbuffers::Allocator</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>~Allocator</b>() (defined in <a class="el" href="classflatbuffers_1_1_allocator.html">flatbuffers::Allocator</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_allocator.html">flatbuffers::Allocator</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
 </table></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- Google Analytics -->
diff --git a/classflatbuffers_1_1_allocator.html b/classflatbuffers_1_1_allocator.html
index b716b46965d3351900531e32ff7637c95cef71ef..10e6f51c900f33ebf3cb052952254433161390d2 100644
--- a/classflatbuffers_1_1_allocator.html
+++ b/classflatbuffers_1_1_allocator.html
@@ -4,23 +4,21 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <title>FlatBuffers: flatbuffers::Allocator Class Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
 <link href="navtree.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
 <script type="text/javascript" src="navtree.js"></script>
 <script type="text/javascript">
   $(document).ready(initResizable);
-  $(window).load(resizeHeight);
 </script>
 <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
 <script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
-  $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,500italic,700,700italic|Roboto+Mono:400,700" rel="stylesheet">
 <link href="style.css" rel="stylesheet" type="text/css"/>
@@ -46,53 +44,19 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.7 -->
+<!-- Generated by Doxygen 1.8.13 -->
 <script type="text/javascript">
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </script>
-  <div id="navrow1" class="tabs">
-    <ul class="tablist">
-      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
-      <li><a href="usergroup0.html"><span>Programmer's&#160;Guide</span></a></li>
-      <li><a href="flatbuffers_support.html"><span>Platform&#160;/&#160;Language&#160;/&#160;Feature&#160;support</span></a></li>
-      <li><a href="flatbuffers_benchmarks.html"><span>Benchmarks</span></a></li>
-      <li><a href="flatbuffers_white_paper.html"><span>FlatBuffers&#160;white&#160;paper</span></a></li>
-      <li><a href="flatbuffers_internals.html"><span>FlatBuffers&#160;internals</span></a></li>
-      <li><a href="flatbuffers_grammar.html"><span>Grammar&#160;of&#160;the&#160;schema&#160;language</span></a></li>
-      <li class="current"><a href="usergroup2.html"><span>API&#160;Reference</span></a></li>
-      <li><a href="contributing.html"><span>Contributing</span></a></li>
-      <li>
-        <div id="MSearchBox" class="MSearchBoxInactive">
-        <span class="left">
-          <img id="MSearchSelect" src="search/mag_sel.png"
-               onmouseover="return searchBox.OnSearchSelectShow()"
-               onmouseout="return searchBox.OnSearchSelectHide()"
-               alt=""/>
-          <input type="text" id="MSearchField" value="Search" accesskey="S"
-               onfocus="searchBox.OnSearchFieldFocus(true)" 
-               onblur="searchBox.OnSearchFieldFocus(false)" 
-               onkeyup="searchBox.OnSearchFieldChange(event)"/>
-          </span><span class="right">
-            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
-          </span>
-        </div>
-      </li>
-    </ul>
-  </div>
-  <div id="navrow2" class="tabs2">
-    <ul class="tablist">
-      <li><a href="modules.html"><span>APIs</span></a></li>
-      <li class="current"><a href="annotated.html"><span>Class&#160;List</span></a></li>
-    </ul>
-  </div>
-  <div id="navrow2" class="tabs2">
-    <ul class="tablist">
-      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
-      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
-      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
-      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
-    </ul>
-  </div>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -113,7 +77,7 @@ $(document).ready(function(){initNavTree('classflatbuffers_1_1_allocator.html','
      onmouseover="return searchBox.OnSearchSelectShow()"
      onmouseout="return searchBox.OnSearchSelectHide()"
      onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Properties</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+</div>
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
@@ -125,6 +89,7 @@ $(document).ready(function(){initNavTree('classflatbuffers_1_1_allocator.html','
 <div class="header">
   <div class="summary">
 <a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pro-methods">Protected Member Functions</a> &#124;
 <a href="classflatbuffers_1_1_allocator-members.html">List of all members</a>  </div>
   <div class="headertitle">
 <div class="title">flatbuffers::Allocator Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div>  </div>
@@ -142,15 +107,21 @@ Inheritance diagram for flatbuffers::Allocator:</div>
 <table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
 Public Member Functions</h2></td></tr>
-<tr class="memitem:afbce153366f4087f2876384ecc9d0674"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="afbce153366f4087f2876384ecc9d0674"></a>
+<tr class="memitem:afbce153366f4087f2876384ecc9d0674"><td class="memItemLeft" align="right" valign="top"><a id="afbce153366f4087f2876384ecc9d0674"></a>
 virtual uint8_t *&#160;</td><td class="memItemRight" valign="bottom"><b>allocate</b> (size_t size)=0</td></tr>
 <tr class="separator:afbce153366f4087f2876384ecc9d0674"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ab72efb51f31b9238373f5922ac282a89"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab72efb51f31b9238373f5922ac282a89"></a>
+<tr class="memitem:ab72efb51f31b9238373f5922ac282a89"><td class="memItemLeft" align="right" valign="top"><a id="ab72efb51f31b9238373f5922ac282a89"></a>
 virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>deallocate</b> (uint8_t *p, size_t size)=0</td></tr>
 <tr class="separator:ab72efb51f31b9238373f5922ac282a89"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ae94248cd85a8abf1aa5c0cc957d1cb69"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae94248cd85a8abf1aa5c0cc957d1cb69"></a>
-virtual uint8_t *&#160;</td><td class="memItemRight" valign="bottom"><b>reallocate_downward</b> (uint8_t *old_p, size_t old_size, size_t new_size)</td></tr>
-<tr class="separator:ae94248cd85a8abf1aa5c0cc957d1cb69"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1344ebeb1c1ab40a6d5b78b4e20ed187"><td class="memItemLeft" align="right" valign="top"><a id="a1344ebeb1c1ab40a6d5b78b4e20ed187"></a>
+virtual uint8_t *&#160;</td><td class="memItemRight" valign="bottom"><b>reallocate_downward</b> (uint8_t *old_p, size_t old_size, size_t new_size, size_t in_use_back, size_t in_use_front)</td></tr>
+<tr class="separator:a1344ebeb1c1ab40a6d5b78b4e20ed187"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
+Protected Member Functions</h2></td></tr>
+<tr class="memitem:afa22a0382f1886795440785d7e3bb478"><td class="memItemLeft" align="right" valign="top"><a id="afa22a0382f1886795440785d7e3bb478"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>memcpy_downward</b> (uint8_t *old_p, size_t old_size, uint8_t *new_p, size_t new_size, size_t in_use_back, size_t in_use_front)</td></tr>
+<tr class="separator:afa22a0382f1886795440785d7e3bb478"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <hr/>The documentation for this class was generated from the following file:<ul>
 <li><a class="el" href="flatbuffers_8h_source.html">flatbuffers.h</a></li>
diff --git a/classflatbuffers_1_1_allocator.js b/classflatbuffers_1_1_allocator.js
index 9c092d7b1ed728a47d26eec9bb35b96a90cfa6f4..e6223c00b4fb9674aa1f1f96c4de70c8ce2ce791 100644
--- a/classflatbuffers_1_1_allocator.js
+++ b/classflatbuffers_1_1_allocator.js
@@ -3,5 +3,6 @@ var classflatbuffers_1_1_allocator =
     [ "~Allocator", "classflatbuffers_1_1_allocator.html#a96abc6f31fe94e932d7f4daac10388b9", null ],
     [ "allocate", "classflatbuffers_1_1_allocator.html#afbce153366f4087f2876384ecc9d0674", null ],
     [ "deallocate", "classflatbuffers_1_1_allocator.html#ab72efb51f31b9238373f5922ac282a89", null ],
-    [ "reallocate_downward", "classflatbuffers_1_1_allocator.html#ae94248cd85a8abf1aa5c0cc957d1cb69", null ]
+    [ "memcpy_downward", "classflatbuffers_1_1_allocator.html#afa22a0382f1886795440785d7e3bb478", null ],
+    [ "reallocate_downward", "classflatbuffers_1_1_allocator.html#a1344ebeb1c1ab40a6d5b78b4e20ed187", null ]
 ];
\ No newline at end of file
diff --git a/classflatbuffers_1_1_default_allocator-members.html b/classflatbuffers_1_1_default_allocator-members.html
index 02755b6f120d8a01ee259820d24ea198e5ba6246..e05eef2ddc1e6c59027b5b3853d5d1e468e88b13 100644
--- a/classflatbuffers_1_1_default_allocator-members.html
+++ b/classflatbuffers_1_1_default_allocator-members.html
@@ -4,23 +4,21 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <title>FlatBuffers: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
 <link href="navtree.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
 <script type="text/javascript" src="navtree.js"></script>
 <script type="text/javascript">
   $(document).ready(initResizable);
-  $(window).load(resizeHeight);
 </script>
 <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
 <script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
-  $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,500italic,700,700italic|Roboto+Mono:400,700" rel="stylesheet">
 <link href="style.css" rel="stylesheet" type="text/css"/>
@@ -46,53 +44,19 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.7 -->
+<!-- Generated by Doxygen 1.8.13 -->
 <script type="text/javascript">
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </script>
-  <div id="navrow1" class="tabs">
-    <ul class="tablist">
-      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
-      <li><a href="usergroup0.html"><span>Programmer's&#160;Guide</span></a></li>
-      <li><a href="flatbuffers_support.html"><span>Platform&#160;/&#160;Language&#160;/&#160;Feature&#160;support</span></a></li>
-      <li><a href="flatbuffers_benchmarks.html"><span>Benchmarks</span></a></li>
-      <li><a href="flatbuffers_white_paper.html"><span>FlatBuffers&#160;white&#160;paper</span></a></li>
-      <li><a href="flatbuffers_internals.html"><span>FlatBuffers&#160;internals</span></a></li>
-      <li><a href="flatbuffers_grammar.html"><span>Grammar&#160;of&#160;the&#160;schema&#160;language</span></a></li>
-      <li class="current"><a href="usergroup2.html"><span>API&#160;Reference</span></a></li>
-      <li><a href="contributing.html"><span>Contributing</span></a></li>
-      <li>
-        <div id="MSearchBox" class="MSearchBoxInactive">
-        <span class="left">
-          <img id="MSearchSelect" src="search/mag_sel.png"
-               onmouseover="return searchBox.OnSearchSelectShow()"
-               onmouseout="return searchBox.OnSearchSelectHide()"
-               alt=""/>
-          <input type="text" id="MSearchField" value="Search" accesskey="S"
-               onfocus="searchBox.OnSearchFieldFocus(true)" 
-               onblur="searchBox.OnSearchFieldFocus(false)" 
-               onkeyup="searchBox.OnSearchFieldChange(event)"/>
-          </span><span class="right">
-            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
-          </span>
-        </div>
-      </li>
-    </ul>
-  </div>
-  <div id="navrow2" class="tabs2">
-    <ul class="tablist">
-      <li><a href="modules.html"><span>APIs</span></a></li>
-      <li class="current"><a href="annotated.html"><span>Class&#160;List</span></a></li>
-    </ul>
-  </div>
-  <div id="navrow2" class="tabs2">
-    <ul class="tablist">
-      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
-      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
-      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
-      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
-    </ul>
-  </div>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -113,7 +77,7 @@ $(document).ready(function(){initNavTree('classflatbuffers_1_1_default_allocator
      onmouseover="return searchBox.OnSearchSelectShow()"
      onmouseout="return searchBox.OnSearchSelectHide()"
      onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Properties</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+</div>
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
@@ -133,8 +97,9 @@ $(document).ready(function(){initNavTree('classflatbuffers_1_1_default_allocator
   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>allocate</b>(size_t size) FLATBUFFERS_OVERRIDE (defined in <a class="el" href="classflatbuffers_1_1_default_allocator.html">flatbuffers::DefaultAllocator</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_default_allocator.html">flatbuffers::DefaultAllocator</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
   <tr bgcolor="#f0f0f0"><td class="entry"><b>deallocate</b>(uint8_t *p, size_t) FLATBUFFERS_OVERRIDE (defined in <a class="el" href="classflatbuffers_1_1_default_allocator.html">flatbuffers::DefaultAllocator</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_default_allocator.html">flatbuffers::DefaultAllocator</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>instance</b>() (defined in <a class="el" href="classflatbuffers_1_1_default_allocator.html">flatbuffers::DefaultAllocator</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_default_allocator.html">flatbuffers::DefaultAllocator</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>reallocate_downward</b>(uint8_t *old_p, size_t old_size, size_t new_size) (defined in <a class="el" href="classflatbuffers_1_1_allocator.html">flatbuffers::Allocator</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_allocator.html">flatbuffers::Allocator</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>~Allocator</b>() (defined in <a class="el" href="classflatbuffers_1_1_allocator.html">flatbuffers::Allocator</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_allocator.html">flatbuffers::Allocator</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>memcpy_downward</b>(uint8_t *old_p, size_t old_size, uint8_t *new_p, size_t new_size, size_t in_use_back, size_t in_use_front) (defined in <a class="el" href="classflatbuffers_1_1_allocator.html">flatbuffers::Allocator</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_allocator.html">flatbuffers::Allocator</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>reallocate_downward</b>(uint8_t *old_p, size_t old_size, size_t new_size, size_t in_use_back, size_t in_use_front) (defined in <a class="el" href="classflatbuffers_1_1_allocator.html">flatbuffers::Allocator</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_allocator.html">flatbuffers::Allocator</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>~Allocator</b>() (defined in <a class="el" href="classflatbuffers_1_1_allocator.html">flatbuffers::Allocator</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_allocator.html">flatbuffers::Allocator</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
 </table></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- Google Analytics -->
diff --git a/classflatbuffers_1_1_default_allocator.html b/classflatbuffers_1_1_default_allocator.html
index ea9eb4bf9c43dacf2e4b5e358a60d6d9e0f7048c..3130ea262bfb10f7a423556d19e03ffe3cacaeac 100644
--- a/classflatbuffers_1_1_default_allocator.html
+++ b/classflatbuffers_1_1_default_allocator.html
@@ -4,23 +4,21 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <title>FlatBuffers: flatbuffers::DefaultAllocator Class Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
 <link href="navtree.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
 <script type="text/javascript" src="navtree.js"></script>
 <script type="text/javascript">
   $(document).ready(initResizable);
-  $(window).load(resizeHeight);
 </script>
 <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
 <script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
-  $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,500italic,700,700italic|Roboto+Mono:400,700" rel="stylesheet">
 <link href="style.css" rel="stylesheet" type="text/css"/>
@@ -46,53 +44,19 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.7 -->
+<!-- Generated by Doxygen 1.8.13 -->
 <script type="text/javascript">
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </script>
-  <div id="navrow1" class="tabs">
-    <ul class="tablist">
-      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
-      <li><a href="usergroup0.html"><span>Programmer's&#160;Guide</span></a></li>
-      <li><a href="flatbuffers_support.html"><span>Platform&#160;/&#160;Language&#160;/&#160;Feature&#160;support</span></a></li>
-      <li><a href="flatbuffers_benchmarks.html"><span>Benchmarks</span></a></li>
-      <li><a href="flatbuffers_white_paper.html"><span>FlatBuffers&#160;white&#160;paper</span></a></li>
-      <li><a href="flatbuffers_internals.html"><span>FlatBuffers&#160;internals</span></a></li>
-      <li><a href="flatbuffers_grammar.html"><span>Grammar&#160;of&#160;the&#160;schema&#160;language</span></a></li>
-      <li class="current"><a href="usergroup2.html"><span>API&#160;Reference</span></a></li>
-      <li><a href="contributing.html"><span>Contributing</span></a></li>
-      <li>
-        <div id="MSearchBox" class="MSearchBoxInactive">
-        <span class="left">
-          <img id="MSearchSelect" src="search/mag_sel.png"
-               onmouseover="return searchBox.OnSearchSelectShow()"
-               onmouseout="return searchBox.OnSearchSelectHide()"
-               alt=""/>
-          <input type="text" id="MSearchField" value="Search" accesskey="S"
-               onfocus="searchBox.OnSearchFieldFocus(true)" 
-               onblur="searchBox.OnSearchFieldFocus(false)" 
-               onkeyup="searchBox.OnSearchFieldChange(event)"/>
-          </span><span class="right">
-            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
-          </span>
-        </div>
-      </li>
-    </ul>
-  </div>
-  <div id="navrow2" class="tabs2">
-    <ul class="tablist">
-      <li><a href="modules.html"><span>APIs</span></a></li>
-      <li class="current"><a href="annotated.html"><span>Class&#160;List</span></a></li>
-    </ul>
-  </div>
-  <div id="navrow2" class="tabs2">
-    <ul class="tablist">
-      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
-      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
-      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
-      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
-    </ul>
-  </div>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -113,7 +77,7 @@ $(document).ready(function(){initNavTree('classflatbuffers_1_1_default_allocator
      onmouseover="return searchBox.OnSearchSelectShow()"
      onmouseout="return searchBox.OnSearchSelectHide()"
      onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Properties</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+</div>
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
@@ -143,22 +107,29 @@ Inheritance diagram for flatbuffers::DefaultAllocator:</div>
 <table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
 Public Member Functions</h2></td></tr>
-<tr class="memitem:a9ddbc3a812e35a46a36b37baa17503d0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9ddbc3a812e35a46a36b37baa17503d0"></a>
+<tr class="memitem:a9ddbc3a812e35a46a36b37baa17503d0"><td class="memItemLeft" align="right" valign="top"><a id="a9ddbc3a812e35a46a36b37baa17503d0"></a>
 virtual uint8_t *&#160;</td><td class="memItemRight" valign="bottom"><b>allocate</b> (size_t size) FLATBUFFERS_OVERRIDE</td></tr>
 <tr class="separator:a9ddbc3a812e35a46a36b37baa17503d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a69f1e08a9f98cd86d04a0bc5ad08b187"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a69f1e08a9f98cd86d04a0bc5ad08b187"></a>
+<tr class="memitem:a69f1e08a9f98cd86d04a0bc5ad08b187"><td class="memItemLeft" align="right" valign="top"><a id="a69f1e08a9f98cd86d04a0bc5ad08b187"></a>
 virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>deallocate</b> (uint8_t *p, size_t) FLATBUFFERS_OVERRIDE</td></tr>
 <tr class="separator:a69f1e08a9f98cd86d04a0bc5ad08b187"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="inherit_header pub_methods_classflatbuffers_1_1_allocator"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classflatbuffers_1_1_allocator')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classflatbuffers_1_1_allocator.html">flatbuffers::Allocator</a></td></tr>
-<tr class="memitem:ae94248cd85a8abf1aa5c0cc957d1cb69 inherit pub_methods_classflatbuffers_1_1_allocator"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae94248cd85a8abf1aa5c0cc957d1cb69"></a>
-virtual uint8_t *&#160;</td><td class="memItemRight" valign="bottom"><b>reallocate_downward</b> (uint8_t *old_p, size_t old_size, size_t new_size)</td></tr>
-<tr class="separator:ae94248cd85a8abf1aa5c0cc957d1cb69 inherit pub_methods_classflatbuffers_1_1_allocator"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1344ebeb1c1ab40a6d5b78b4e20ed187 inherit pub_methods_classflatbuffers_1_1_allocator"><td class="memItemLeft" align="right" valign="top"><a id="a1344ebeb1c1ab40a6d5b78b4e20ed187"></a>
+virtual uint8_t *&#160;</td><td class="memItemRight" valign="bottom"><b>reallocate_downward</b> (uint8_t *old_p, size_t old_size, size_t new_size, size_t in_use_back, size_t in_use_front)</td></tr>
+<tr class="separator:a1344ebeb1c1ab40a6d5b78b4e20ed187 inherit pub_methods_classflatbuffers_1_1_allocator"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
 Static Public Member Functions</h2></td></tr>
-<tr class="memitem:a57604c8749237a162bb22fcea09482ef"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a57604c8749237a162bb22fcea09482ef"></a>
+<tr class="memitem:a57604c8749237a162bb22fcea09482ef"><td class="memItemLeft" align="right" valign="top"><a id="a57604c8749237a162bb22fcea09482ef"></a>
 static <a class="el" href="classflatbuffers_1_1_default_allocator.html">DefaultAllocator</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>instance</b> ()</td></tr>
 <tr class="separator:a57604c8749237a162bb22fcea09482ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
+Additional Inherited Members</h2></td></tr>
+<tr class="inherit_header pro_methods_classflatbuffers_1_1_allocator"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classflatbuffers_1_1_allocator')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classflatbuffers_1_1_allocator.html">flatbuffers::Allocator</a></td></tr>
+<tr class="memitem:afa22a0382f1886795440785d7e3bb478 inherit pro_methods_classflatbuffers_1_1_allocator"><td class="memItemLeft" align="right" valign="top"><a id="afa22a0382f1886795440785d7e3bb478"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>memcpy_downward</b> (uint8_t *old_p, size_t old_size, uint8_t *new_p, size_t new_size, size_t in_use_back, size_t in_use_front)</td></tr>
+<tr class="separator:afa22a0382f1886795440785d7e3bb478 inherit pro_methods_classflatbuffers_1_1_allocator"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <hr/>The documentation for this class was generated from the following file:<ul>
 <li><a class="el" href="flatbuffers_8h_source.html">flatbuffers.h</a></li>
diff --git a/classflatbuffers_1_1_detached_buffer-members.html b/classflatbuffers_1_1_detached_buffer-members.html
index 4e88037c3fe38c8667be631af394ae6cf66ebc5b..eae9a30499339dcd2a32f6b162b6a35a2bafa4f4 100644
--- a/classflatbuffers_1_1_detached_buffer-members.html
+++ b/classflatbuffers_1_1_detached_buffer-members.html
@@ -4,23 +4,21 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <title>FlatBuffers: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
 <link href="navtree.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
 <script type="text/javascript" src="navtree.js"></script>
 <script type="text/javascript">
   $(document).ready(initResizable);
-  $(window).load(resizeHeight);
 </script>
 <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
 <script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
-  $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,500italic,700,700italic|Roboto+Mono:400,700" rel="stylesheet">
 <link href="style.css" rel="stylesheet" type="text/css"/>
@@ -46,53 +44,19 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.7 -->
+<!-- Generated by Doxygen 1.8.13 -->
 <script type="text/javascript">
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </script>
-  <div id="navrow1" class="tabs">
-    <ul class="tablist">
-      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
-      <li><a href="usergroup0.html"><span>Programmer's&#160;Guide</span></a></li>
-      <li><a href="flatbuffers_support.html"><span>Platform&#160;/&#160;Language&#160;/&#160;Feature&#160;support</span></a></li>
-      <li><a href="flatbuffers_benchmarks.html"><span>Benchmarks</span></a></li>
-      <li><a href="flatbuffers_white_paper.html"><span>FlatBuffers&#160;white&#160;paper</span></a></li>
-      <li><a href="flatbuffers_internals.html"><span>FlatBuffers&#160;internals</span></a></li>
-      <li><a href="flatbuffers_grammar.html"><span>Grammar&#160;of&#160;the&#160;schema&#160;language</span></a></li>
-      <li class="current"><a href="usergroup2.html"><span>API&#160;Reference</span></a></li>
-      <li><a href="contributing.html"><span>Contributing</span></a></li>
-      <li>
-        <div id="MSearchBox" class="MSearchBoxInactive">
-        <span class="left">
-          <img id="MSearchSelect" src="search/mag_sel.png"
-               onmouseover="return searchBox.OnSearchSelectShow()"
-               onmouseout="return searchBox.OnSearchSelectHide()"
-               alt=""/>
-          <input type="text" id="MSearchField" value="Search" accesskey="S"
-               onfocus="searchBox.OnSearchFieldFocus(true)" 
-               onblur="searchBox.OnSearchFieldFocus(false)" 
-               onkeyup="searchBox.OnSearchFieldChange(event)"/>
-          </span><span class="right">
-            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
-          </span>
-        </div>
-      </li>
-    </ul>
-  </div>
-  <div id="navrow2" class="tabs2">
-    <ul class="tablist">
-      <li><a href="modules.html"><span>APIs</span></a></li>
-      <li class="current"><a href="annotated.html"><span>Class&#160;List</span></a></li>
-    </ul>
-  </div>
-  <div id="navrow2" class="tabs2">
-    <ul class="tablist">
-      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
-      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
-      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
-      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
-    </ul>
-  </div>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -113,7 +77,7 @@ $(document).ready(function(){initNavTree('classflatbuffers_1_1_detached_buffer.h
      onmouseover="return searchBox.OnSearchSelectShow()"
      onmouseout="return searchBox.OnSearchSelectHide()"
      onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Properties</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+</div>
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
@@ -132,22 +96,22 @@ $(document).ready(function(){initNavTree('classflatbuffers_1_1_detached_buffer.h
 <table class="directory">
   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>buf_</b> (defined in <a class="el" href="classflatbuffers_1_1_detached_buffer.html">flatbuffers::DetachedBuffer</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_detached_buffer.html">flatbuffers::DetachedBuffer</a></td><td class="entry"></td></tr>
   <tr bgcolor="#f0f0f0"><td class="entry"><b>cur_</b> (defined in <a class="el" href="classflatbuffers_1_1_detached_buffer.html">flatbuffers::DetachedBuffer</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_detached_buffer.html">flatbuffers::DetachedBuffer</a></td><td class="entry"></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>data</b>() const  (defined in <a class="el" href="classflatbuffers_1_1_detached_buffer.html">flatbuffers::DetachedBuffer</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_detached_buffer.html">flatbuffers::DetachedBuffer</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>data</b>() const (defined in <a class="el" href="classflatbuffers_1_1_detached_buffer.html">flatbuffers::DetachedBuffer</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_detached_buffer.html">flatbuffers::DetachedBuffer</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr bgcolor="#f0f0f0"><td class="entry"><b>data</b>() (defined in <a class="el" href="classflatbuffers_1_1_detached_buffer.html">flatbuffers::DetachedBuffer</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_detached_buffer.html">flatbuffers::DetachedBuffer</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>destroy</b>() (defined in <a class="el" href="classflatbuffers_1_1_detached_buffer.html">flatbuffers::DetachedBuffer</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_detached_buffer.html">flatbuffers::DetachedBuffer</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr bgcolor="#f0f0f0"><td class="entry"><b>DetachedBuffer</b>() (defined in <a class="el" href="classflatbuffers_1_1_detached_buffer.html">flatbuffers::DetachedBuffer</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_detached_buffer.html">flatbuffers::DetachedBuffer</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>DetachedBuffer</b>(Allocator *allocator, bool own_allocator, uint8_t *buf, size_t reserved, uint8_t *cur, size_t sz) (defined in <a class="el" href="classflatbuffers_1_1_detached_buffer.html">flatbuffers::DetachedBuffer</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_detached_buffer.html">flatbuffers::DetachedBuffer</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr bgcolor="#f0f0f0"><td class="entry"><b>DetachedBuffer</b>(DetachedBuffer &amp;&amp;other) (defined in <a class="el" href="classflatbuffers_1_1_detached_buffer.html">flatbuffers::DetachedBuffer</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_detached_buffer.html">flatbuffers::DetachedBuffer</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>FLATBUFFERS_DELETE_FUNC</b>(DetachedBuffer(const DetachedBuffer &amp;other)) FLATBUFFERS_DELETE_FUNC(DetachedBuffer &amp;operator (defined in <a class="el" href="classflatbuffers_1_1_detached_buffer.html">flatbuffers::DetachedBuffer</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_detached_buffer.html">flatbuffers::DetachedBuffer</a></td><td class="entry"></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>GetRoot</b>() const  (defined in <a class="el" href="classflatbuffers_1_1_detached_buffer.html">flatbuffers::DetachedBuffer</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_detached_buffer.html">flatbuffers::DetachedBuffer</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>GetRoot</b>() const (defined in <a class="el" href="classflatbuffers_1_1_detached_buffer.html">flatbuffers::DetachedBuffer</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_detached_buffer.html">flatbuffers::DetachedBuffer</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>GetRoot</b>() (defined in <a class="el" href="classflatbuffers_1_1_detached_buffer.html">flatbuffers::DetachedBuffer</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_detached_buffer.html">flatbuffers::DetachedBuffer</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr bgcolor="#f0f0f0"><td class="entry"><b>operator=</b>(DetachedBuffer &amp;&amp;other) (defined in <a class="el" href="classflatbuffers_1_1_detached_buffer.html">flatbuffers::DetachedBuffer</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_detached_buffer.html">flatbuffers::DetachedBuffer</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>own_allocator_</b> (defined in <a class="el" href="classflatbuffers_1_1_detached_buffer.html">flatbuffers::DetachedBuffer</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_detached_buffer.html">flatbuffers::DetachedBuffer</a></td><td class="entry"></td></tr>
   <tr bgcolor="#f0f0f0"><td class="entry"><b>reserved_</b> (defined in <a class="el" href="classflatbuffers_1_1_detached_buffer.html">flatbuffers::DetachedBuffer</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_detached_buffer.html">flatbuffers::DetachedBuffer</a></td><td class="entry"></td></tr>
   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>reset</b>() (defined in <a class="el" href="classflatbuffers_1_1_detached_buffer.html">flatbuffers::DetachedBuffer</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_detached_buffer.html">flatbuffers::DetachedBuffer</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>size</b>() const  (defined in <a class="el" href="classflatbuffers_1_1_detached_buffer.html">flatbuffers::DetachedBuffer</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_detached_buffer.html">flatbuffers::DetachedBuffer</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>size</b>() const (defined in <a class="el" href="classflatbuffers_1_1_detached_buffer.html">flatbuffers::DetachedBuffer</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_detached_buffer.html">flatbuffers::DetachedBuffer</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>size_</b> (defined in <a class="el" href="classflatbuffers_1_1_detached_buffer.html">flatbuffers::DetachedBuffer</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_detached_buffer.html">flatbuffers::DetachedBuffer</a></td><td class="entry"></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>Verify</b>() const  (defined in <a class="el" href="classflatbuffers_1_1_detached_buffer.html">flatbuffers::DetachedBuffer</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_detached_buffer.html">flatbuffers::DetachedBuffer</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>Verify</b>() const (defined in <a class="el" href="classflatbuffers_1_1_detached_buffer.html">flatbuffers::DetachedBuffer</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_detached_buffer.html">flatbuffers::DetachedBuffer</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>~DetachedBuffer</b>() (defined in <a class="el" href="classflatbuffers_1_1_detached_buffer.html">flatbuffers::DetachedBuffer</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_detached_buffer.html">flatbuffers::DetachedBuffer</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
 </table></div><!-- contents -->
 </div><!-- doc-content -->
diff --git a/classflatbuffers_1_1_detached_buffer.html b/classflatbuffers_1_1_detached_buffer.html
index e55c9367781f39fe2414d3edbc4a5b324f9bbb33..c888fa20b6e8e42cfcaf0ae545803b9705f10129 100644
--- a/classflatbuffers_1_1_detached_buffer.html
+++ b/classflatbuffers_1_1_detached_buffer.html
@@ -4,23 +4,21 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <title>FlatBuffers: flatbuffers::DetachedBuffer Class Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
 <link href="navtree.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
 <script type="text/javascript" src="navtree.js"></script>
 <script type="text/javascript">
   $(document).ready(initResizable);
-  $(window).load(resizeHeight);
 </script>
 <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
 <script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
-  $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,500italic,700,700italic|Roboto+Mono:400,700" rel="stylesheet">
 <link href="style.css" rel="stylesheet" type="text/css"/>
@@ -46,53 +44,19 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.7 -->
+<!-- Generated by Doxygen 1.8.13 -->
 <script type="text/javascript">
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </script>
-  <div id="navrow1" class="tabs">
-    <ul class="tablist">
-      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
-      <li><a href="usergroup0.html"><span>Programmer's&#160;Guide</span></a></li>
-      <li><a href="flatbuffers_support.html"><span>Platform&#160;/&#160;Language&#160;/&#160;Feature&#160;support</span></a></li>
-      <li><a href="flatbuffers_benchmarks.html"><span>Benchmarks</span></a></li>
-      <li><a href="flatbuffers_white_paper.html"><span>FlatBuffers&#160;white&#160;paper</span></a></li>
-      <li><a href="flatbuffers_internals.html"><span>FlatBuffers&#160;internals</span></a></li>
-      <li><a href="flatbuffers_grammar.html"><span>Grammar&#160;of&#160;the&#160;schema&#160;language</span></a></li>
-      <li class="current"><a href="usergroup2.html"><span>API&#160;Reference</span></a></li>
-      <li><a href="contributing.html"><span>Contributing</span></a></li>
-      <li>
-        <div id="MSearchBox" class="MSearchBoxInactive">
-        <span class="left">
-          <img id="MSearchSelect" src="search/mag_sel.png"
-               onmouseover="return searchBox.OnSearchSelectShow()"
-               onmouseout="return searchBox.OnSearchSelectHide()"
-               alt=""/>
-          <input type="text" id="MSearchField" value="Search" accesskey="S"
-               onfocus="searchBox.OnSearchFieldFocus(true)" 
-               onblur="searchBox.OnSearchFieldFocus(false)" 
-               onkeyup="searchBox.OnSearchFieldChange(event)"/>
-          </span><span class="right">
-            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
-          </span>
-        </div>
-      </li>
-    </ul>
-  </div>
-  <div id="navrow2" class="tabs2">
-    <ul class="tablist">
-      <li><a href="modules.html"><span>APIs</span></a></li>
-      <li class="current"><a href="annotated.html"><span>Class&#160;List</span></a></li>
-    </ul>
-  </div>
-  <div id="navrow2" class="tabs2">
-    <ul class="tablist">
-      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
-      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
-      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
-      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
-    </ul>
-  </div>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -113,7 +77,7 @@ $(document).ready(function(){initNavTree('classflatbuffers_1_1_detached_buffer.h
      onmouseover="return searchBox.OnSearchSelectShow()"
      onmouseout="return searchBox.OnSearchSelectHide()"
      onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Properties</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+</div>
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
@@ -134,61 +98,61 @@ $(document).ready(function(){initNavTree('classflatbuffers_1_1_detached_buffer.h
 <table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
 Public Member Functions</h2></td></tr>
-<tr class="memitem:aa4805376aebda238661d5ac1107bac9a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa4805376aebda238661d5ac1107bac9a"></a>
-const uint8_t *&#160;</td><td class="memItemRight" valign="bottom"><b>data</b> () const </td></tr>
-<tr class="separator:aa4805376aebda238661d5ac1107bac9a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:adad27e36c1df5169d35fde21c6fa6745"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="adad27e36c1df5169d35fde21c6fa6745"></a>
+<tr class="memitem:a4a38b710f767376d6817f4336fea8075"><td class="memItemLeft" align="right" valign="top"><a id="a4a38b710f767376d6817f4336fea8075"></a>
+const uint8_t *&#160;</td><td class="memItemRight" valign="bottom"><b>data</b> () const</td></tr>
+<tr class="separator:a4a38b710f767376d6817f4336fea8075"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adad27e36c1df5169d35fde21c6fa6745"><td class="memItemLeft" align="right" valign="top"><a id="adad27e36c1df5169d35fde21c6fa6745"></a>
 uint8_t *&#160;</td><td class="memItemRight" valign="bottom"><b>data</b> ()</td></tr>
 <tr class="separator:adad27e36c1df5169d35fde21c6fa6745"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a3a4bb3269ce95d77a8765f43fefe44ab"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3a4bb3269ce95d77a8765f43fefe44ab"></a>
+<tr class="memitem:a3a4bb3269ce95d77a8765f43fefe44ab"><td class="memItemLeft" align="right" valign="top"><a id="a3a4bb3269ce95d77a8765f43fefe44ab"></a>
 void&#160;</td><td class="memItemRight" valign="bottom"><b>destroy</b> ()</td></tr>
 <tr class="separator:a3a4bb3269ce95d77a8765f43fefe44ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:abae2caaa17d721325235755e6a4feea0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abae2caaa17d721325235755e6a4feea0"></a>
+<tr class="memitem:abae2caaa17d721325235755e6a4feea0"><td class="memItemLeft" align="right" valign="top"><a id="abae2caaa17d721325235755e6a4feea0"></a>
 &#160;</td><td class="memItemRight" valign="bottom"><b>DetachedBuffer</b> (<a class="el" href="classflatbuffers_1_1_allocator.html">Allocator</a> *allocator, bool own_allocator, uint8_t *buf, size_t reserved, uint8_t *cur, size_t sz)</td></tr>
 <tr class="separator:abae2caaa17d721325235755e6a4feea0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aebfcd21e5ce5a906684d573e59503556"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aebfcd21e5ce5a906684d573e59503556"></a>
+<tr class="memitem:aebfcd21e5ce5a906684d573e59503556"><td class="memItemLeft" align="right" valign="top"><a id="aebfcd21e5ce5a906684d573e59503556"></a>
 &#160;</td><td class="memItemRight" valign="bottom"><b>DetachedBuffer</b> (<a class="el" href="classflatbuffers_1_1_detached_buffer.html">DetachedBuffer</a> &amp;&amp;other)</td></tr>
 <tr class="separator:aebfcd21e5ce5a906684d573e59503556"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aef5440a10f42f2c067f2857dc74fc15b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aef5440a10f42f2c067f2857dc74fc15b"></a>
+<tr class="memitem:aef5440a10f42f2c067f2857dc74fc15b"><td class="memItemLeft" align="right" valign="top"><a id="aef5440a10f42f2c067f2857dc74fc15b"></a>
 &#160;</td><td class="memItemRight" valign="bottom"><b>FLATBUFFERS_DELETE_FUNC</b> (<a class="el" href="classflatbuffers_1_1_detached_buffer.html">DetachedBuffer</a>(const <a class="el" href="classflatbuffers_1_1_detached_buffer.html">DetachedBuffer</a> &amp;other)) FLATBUFFERS_DELETE_FUNC(<a class="el" href="classflatbuffers_1_1_detached_buffer.html">DetachedBuffer</a> &amp;operator</td></tr>
 <tr class="separator:aef5440a10f42f2c067f2857dc74fc15b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aaede53d7b7efc586eaeca5688619acf1"><td class="memTemplParams" colspan="2"><a class="anchor" id="aaede53d7b7efc586eaeca5688619acf1"></a>
+<tr class="memitem:a9d96770d0432416c76980019b8007c3e"><td class="memTemplParams" colspan="2"><a id="a9d96770d0432416c76980019b8007c3e"></a>
 template&lt;class T &gt; </td></tr>
-<tr class="memitem:aaede53d7b7efc586eaeca5688619acf1"><td class="memTemplItemLeft" align="right" valign="top">const T *&#160;</td><td class="memTemplItemRight" valign="bottom"><b>GetRoot</b> () const </td></tr>
-<tr class="separator:aaede53d7b7efc586eaeca5688619acf1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a030d603f1f72c17b515a1e8621a5482c"><td class="memTemplParams" colspan="2"><a class="anchor" id="a030d603f1f72c17b515a1e8621a5482c"></a>
+<tr class="memitem:a9d96770d0432416c76980019b8007c3e"><td class="memTemplItemLeft" align="right" valign="top">const T *&#160;</td><td class="memTemplItemRight" valign="bottom"><b>GetRoot</b> () const</td></tr>
+<tr class="separator:a9d96770d0432416c76980019b8007c3e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a030d603f1f72c17b515a1e8621a5482c"><td class="memTemplParams" colspan="2"><a id="a030d603f1f72c17b515a1e8621a5482c"></a>
 template&lt;class T &gt; </td></tr>
 <tr class="memitem:a030d603f1f72c17b515a1e8621a5482c"><td class="memTemplItemLeft" align="right" valign="top">T *&#160;</td><td class="memTemplItemRight" valign="bottom"><b>GetRoot</b> ()</td></tr>
 <tr class="separator:a030d603f1f72c17b515a1e8621a5482c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a0a33d382b1306177f5b0e5bc8ad4d3fd"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0a33d382b1306177f5b0e5bc8ad4d3fd"></a>
+<tr class="memitem:a0a33d382b1306177f5b0e5bc8ad4d3fd"><td class="memItemLeft" align="right" valign="top"><a id="a0a33d382b1306177f5b0e5bc8ad4d3fd"></a>
 <a class="el" href="classflatbuffers_1_1_detached_buffer.html">DetachedBuffer</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (<a class="el" href="classflatbuffers_1_1_detached_buffer.html">DetachedBuffer</a> &amp;&amp;other)</td></tr>
 <tr class="separator:a0a33d382b1306177f5b0e5bc8ad4d3fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a1fadd8be4586d8a6a0df5e26e90f3f79"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1fadd8be4586d8a6a0df5e26e90f3f79"></a>
+<tr class="memitem:a1fadd8be4586d8a6a0df5e26e90f3f79"><td class="memItemLeft" align="right" valign="top"><a id="a1fadd8be4586d8a6a0df5e26e90f3f79"></a>
 void&#160;</td><td class="memItemRight" valign="bottom"><b>reset</b> ()</td></tr>
 <tr class="separator:a1fadd8be4586d8a6a0df5e26e90f3f79"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ac4c234e815adc9d30f97281546162f5c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac4c234e815adc9d30f97281546162f5c"></a>
-size_t&#160;</td><td class="memItemRight" valign="bottom"><b>size</b> () const </td></tr>
-<tr class="separator:ac4c234e815adc9d30f97281546162f5c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a9056cfb89cf255efda378a5155c26c2b"><td class="memTemplParams" colspan="2"><a class="anchor" id="a9056cfb89cf255efda378a5155c26c2b"></a>
+<tr class="memitem:a2d645442b005d309191812714ffd6e3f"><td class="memItemLeft" align="right" valign="top"><a id="a2d645442b005d309191812714ffd6e3f"></a>
+size_t&#160;</td><td class="memItemRight" valign="bottom"><b>size</b> () const</td></tr>
+<tr class="separator:a2d645442b005d309191812714ffd6e3f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac231641a14b0d365931cd64e0dee867f"><td class="memTemplParams" colspan="2"><a id="ac231641a14b0d365931cd64e0dee867f"></a>
 template&lt;class T &gt; </td></tr>
-<tr class="memitem:a9056cfb89cf255efda378a5155c26c2b"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><b>Verify</b> () const </td></tr>
-<tr class="separator:a9056cfb89cf255efda378a5155c26c2b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac231641a14b0d365931cd64e0dee867f"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><b>Verify</b> () const</td></tr>
+<tr class="separator:ac231641a14b0d365931cd64e0dee867f"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
 Public Attributes</h2></td></tr>
-<tr class="memitem:a7e6327751066fe086a18b881ec3a07ce"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7e6327751066fe086a18b881ec3a07ce"></a>
+<tr class="memitem:a7e6327751066fe086a18b881ec3a07ce"><td class="memItemLeft" align="right" valign="top"><a id="a7e6327751066fe086a18b881ec3a07ce"></a>
 uint8_t *&#160;</td><td class="memItemRight" valign="bottom"><b>buf_</b></td></tr>
 <tr class="separator:a7e6327751066fe086a18b881ec3a07ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a63229682fea7e65b8ecd0678d5d1996b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a63229682fea7e65b8ecd0678d5d1996b"></a>
+<tr class="memitem:a63229682fea7e65b8ecd0678d5d1996b"><td class="memItemLeft" align="right" valign="top"><a id="a63229682fea7e65b8ecd0678d5d1996b"></a>
 uint8_t *&#160;</td><td class="memItemRight" valign="bottom"><b>cur_</b></td></tr>
 <tr class="separator:a63229682fea7e65b8ecd0678d5d1996b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ab3fb53f0c57d06cd5848cfb59fd656f2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab3fb53f0c57d06cd5848cfb59fd656f2"></a>
+<tr class="memitem:ab3fb53f0c57d06cd5848cfb59fd656f2"><td class="memItemLeft" align="right" valign="top"><a id="ab3fb53f0c57d06cd5848cfb59fd656f2"></a>
 bool&#160;</td><td class="memItemRight" valign="bottom"><b>own_allocator_</b></td></tr>
 <tr class="separator:ab3fb53f0c57d06cd5848cfb59fd656f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aeabe28bec13ac0fe7465142969d467d7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aeabe28bec13ac0fe7465142969d467d7"></a>
+<tr class="memitem:aeabe28bec13ac0fe7465142969d467d7"><td class="memItemLeft" align="right" valign="top"><a id="aeabe28bec13ac0fe7465142969d467d7"></a>
 size_t&#160;</td><td class="memItemRight" valign="bottom"><b>reserved_</b></td></tr>
 <tr class="separator:aeabe28bec13ac0fe7465142969d467d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a0f138004d6acacc5aab3ce69bf5a8ebd"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0f138004d6acacc5aab3ce69bf5a8ebd"></a>
+<tr class="memitem:a0f138004d6acacc5aab3ce69bf5a8ebd"><td class="memItemLeft" align="right" valign="top"><a id="a0f138004d6acacc5aab3ce69bf5a8ebd"></a>
 size_t&#160;</td><td class="memItemRight" valign="bottom"><b>size_</b></td></tr>
 <tr class="separator:a0f138004d6acacc5aab3ce69bf5a8ebd"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
diff --git a/classflatbuffers_1_1_detached_buffer.js b/classflatbuffers_1_1_detached_buffer.js
index 5898926d982aac04bc3659de9809cfc07529c685..992c178687b62ab3c564e705b492b06eda0d9356 100644
--- a/classflatbuffers_1_1_detached_buffer.js
+++ b/classflatbuffers_1_1_detached_buffer.js
@@ -4,16 +4,16 @@ var classflatbuffers_1_1_detached_buffer =
     [ "DetachedBuffer", "classflatbuffers_1_1_detached_buffer.html#abae2caaa17d721325235755e6a4feea0", null ],
     [ "DetachedBuffer", "classflatbuffers_1_1_detached_buffer.html#aebfcd21e5ce5a906684d573e59503556", null ],
     [ "~DetachedBuffer", "classflatbuffers_1_1_detached_buffer.html#a9979d17b00f354dce4c7d9a6dca43d4d", null ],
-    [ "data", "classflatbuffers_1_1_detached_buffer.html#aa4805376aebda238661d5ac1107bac9a", null ],
+    [ "data", "classflatbuffers_1_1_detached_buffer.html#a4a38b710f767376d6817f4336fea8075", null ],
     [ "data", "classflatbuffers_1_1_detached_buffer.html#adad27e36c1df5169d35fde21c6fa6745", null ],
     [ "destroy", "classflatbuffers_1_1_detached_buffer.html#a3a4bb3269ce95d77a8765f43fefe44ab", null ],
     [ "FLATBUFFERS_DELETE_FUNC", "classflatbuffers_1_1_detached_buffer.html#aef5440a10f42f2c067f2857dc74fc15b", null ],
-    [ "GetRoot", "classflatbuffers_1_1_detached_buffer.html#aaede53d7b7efc586eaeca5688619acf1", null ],
+    [ "GetRoot", "classflatbuffers_1_1_detached_buffer.html#a9d96770d0432416c76980019b8007c3e", null ],
     [ "GetRoot", "classflatbuffers_1_1_detached_buffer.html#a030d603f1f72c17b515a1e8621a5482c", null ],
     [ "operator=", "classflatbuffers_1_1_detached_buffer.html#a0a33d382b1306177f5b0e5bc8ad4d3fd", null ],
     [ "reset", "classflatbuffers_1_1_detached_buffer.html#a1fadd8be4586d8a6a0df5e26e90f3f79", null ],
-    [ "size", "classflatbuffers_1_1_detached_buffer.html#ac4c234e815adc9d30f97281546162f5c", null ],
-    [ "Verify", "classflatbuffers_1_1_detached_buffer.html#a9056cfb89cf255efda378a5155c26c2b", null ],
+    [ "size", "classflatbuffers_1_1_detached_buffer.html#a2d645442b005d309191812714ffd6e3f", null ],
+    [ "Verify", "classflatbuffers_1_1_detached_buffer.html#ac231641a14b0d365931cd64e0dee867f", null ],
     [ "buf_", "classflatbuffers_1_1_detached_buffer.html#a7e6327751066fe086a18b881ec3a07ce", null ],
     [ "cur_", "classflatbuffers_1_1_detached_buffer.html#a63229682fea7e65b8ecd0678d5d1996b", null ],
     [ "own_allocator_", "classflatbuffers_1_1_detached_buffer.html#ab3fb53f0c57d06cd5848cfb59fd656f2", null ],
diff --git a/classflatbuffers_1_1_flat_buffer_builder-members.html b/classflatbuffers_1_1_flat_buffer_builder-members.html
index beb34a3ecd0d6721b4f3189c7405207012c4a34a..d323c8251ac08771d079104187b9a40d0c25afe7 100644
--- a/classflatbuffers_1_1_flat_buffer_builder-members.html
+++ b/classflatbuffers_1_1_flat_buffer_builder-members.html
@@ -4,23 +4,21 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <title>FlatBuffers: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
 <link href="navtree.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
 <script type="text/javascript" src="navtree.js"></script>
 <script type="text/javascript">
   $(document).ready(initResizable);
-  $(window).load(resizeHeight);
 </script>
 <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
 <script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
-  $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,500italic,700,700italic|Roboto+Mono:400,700" rel="stylesheet">
 <link href="style.css" rel="stylesheet" type="text/css"/>
@@ -46,53 +44,19 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.7 -->
+<!-- Generated by Doxygen 1.8.13 -->
 <script type="text/javascript">
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </script>
-  <div id="navrow1" class="tabs">
-    <ul class="tablist">
-      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
-      <li><a href="usergroup0.html"><span>Programmer's&#160;Guide</span></a></li>
-      <li><a href="flatbuffers_support.html"><span>Platform&#160;/&#160;Language&#160;/&#160;Feature&#160;support</span></a></li>
-      <li><a href="flatbuffers_benchmarks.html"><span>Benchmarks</span></a></li>
-      <li><a href="flatbuffers_white_paper.html"><span>FlatBuffers&#160;white&#160;paper</span></a></li>
-      <li><a href="flatbuffers_internals.html"><span>FlatBuffers&#160;internals</span></a></li>
-      <li><a href="flatbuffers_grammar.html"><span>Grammar&#160;of&#160;the&#160;schema&#160;language</span></a></li>
-      <li class="current"><a href="usergroup2.html"><span>API&#160;Reference</span></a></li>
-      <li><a href="contributing.html"><span>Contributing</span></a></li>
-      <li>
-        <div id="MSearchBox" class="MSearchBoxInactive">
-        <span class="left">
-          <img id="MSearchSelect" src="search/mag_sel.png"
-               onmouseover="return searchBox.OnSearchSelectShow()"
-               onmouseout="return searchBox.OnSearchSelectHide()"
-               alt=""/>
-          <input type="text" id="MSearchField" value="Search" accesskey="S"
-               onfocus="searchBox.OnSearchFieldFocus(true)" 
-               onblur="searchBox.OnSearchFieldFocus(false)" 
-               onkeyup="searchBox.OnSearchFieldChange(event)"/>
-          </span><span class="right">
-            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
-          </span>
-        </div>
-      </li>
-    </ul>
-  </div>
-  <div id="navrow2" class="tabs2">
-    <ul class="tablist">
-      <li><a href="modules.html"><span>APIs</span></a></li>
-      <li class="current"><a href="annotated.html"><span>Class&#160;List</span></a></li>
-    </ul>
-  </div>
-  <div id="navrow2" class="tabs2">
-    <ul class="tablist">
-      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
-      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
-      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
-      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
-    </ul>
-  </div>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -113,7 +77,7 @@ $(document).ready(function(){initNavTree('classflatbuffers_1_1_flat_buffer_build
      onmouseover="return searchBox.OnSearchSelectShow()"
      onmouseout="return searchBox.OnSearchSelectHide()"
      onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Properties</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+</div>
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
@@ -138,57 +102,57 @@ $(document).ready(function(){initNavTree('classflatbuffers_1_1_flat_buffer_build
   <tr><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#a840b769fbb4148f97d3eed266e4690c3">CreateSharedString</a>(const String *str)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#aec6f9df2a0366b540b24822414d92cbe">CreateString</a>(const char *str, size_t len)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#aad93d113ac24e86ed04b5236b3f4c0c5">CreateString</a>(const char *str)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#a8c3af55e64f5cda9aefa38ac5287ef9f">CreateString</a>(const std::string &amp;str)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#ac0b6a1c5d949f20ad84367fc0f9e1506">CreateString</a>(const String *str)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#ab77d800e77fa76bc758a6c399fd37685">CreateString</a>(const T &amp;str)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#a43f51ba9c8f4f24ea2247a3979d095b8">CreateStruct</a>(const T &amp;structobj)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#ac2b96292fa0fb1534fe7fd218a094d0c">CreateUninitializedVector</a>(size_t len, size_t elemsize, uint8_t **buf)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#a2305b63d367845972b51669dd995cc50">CreateUninitializedVector</a>(size_t len, T **buf)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#a2cca5c89246a53e80e6ad9487f4c36f3">CreateVector</a>(const T *v, size_t len)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>CreateVector</b>(const Offset&lt; T &gt; *v, size_t len) (defined in <a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#af715dd24dd37cb0151dc7a980ad0f207">CreateVector</a>(const std::vector&lt; T &gt; &amp;v)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>CreateVector</b>(const std::vector&lt; bool &gt; &amp;v) (defined in <a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#a1080c9e370e2d9d9d872dadd1131436b">CreateVector</a>(size_t vector_size, const std::function&lt; T(size_t i)&gt; &amp;f)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#a53504fc2cab681a7980b03260f8b2f7a">CreateVector</a>(size_t vector_size, F f, S *state)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#a3d57074082aaab8cdeb8474ff9df0b53">CreateVectorOfNativeStructs</a>(const S *v, size_t len)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#a11c291ccd2159604c149600ee6180b95">CreateVectorOfNativeStructs</a>(const std::vector&lt; S &gt; &amp;v)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#a23aa4c910e053446cc404bc486012e54">CreateVectorOfSortedNativeStructs</a>(std::vector&lt; S &gt; *v)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#a799701af34c398d8eb86e049b73bcecf">CreateVectorOfSortedNativeStructs</a>(S *v, size_t len)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#a7cc10b709dfa3e72083843d1a5e36c15">CreateVectorOfSortedStructs</a>(std::vector&lt; T &gt; *v)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#ab1f44cc1b130e13b41e9a80de76e25cf">CreateVectorOfSortedStructs</a>(T *v, size_t len)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#a2130ef232ff405eebe2e7f184ecd06e6">CreateVectorOfSortedTables</a>(Offset&lt; T &gt; *v, size_t len)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#ac64d11c219559ea51567eab556e13135">CreateVectorOfSortedTables</a>(std::vector&lt; Offset&lt; T &gt;&gt; *v)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#a592110519a6c8db1926f1365bf2a58e6">CreateVectorOfStrings</a>(const std::vector&lt; std::string &gt; &amp;v)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#afede51fd9c32d146cbb1832f57c5e1b7">CreateVectorOfStructs</a>(const T *v, size_t len)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#a6e90ada59d9553636f72ce8e4a892f72">CreateVectorOfStructs</a>(size_t vector_size, const std::function&lt; void(size_t i, T *)&gt; &amp;filler)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#a9cc09fa59ff9732e972877cfe911c8a5">CreateVectorOfStructs</a>(size_t vector_size, F f, S *state)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#a8704709a2e25ad04679212ee4126b1a1">CreateVectorOfStructs</a>(const std::vector&lt; T &gt; &amp;v)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>dedup_vtables_</b> (defined in <a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#aa905b29dce19a1795c7bce375cf29961">DedupVtables</a>(bool dedup)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#a0c9e507b373d598b51052fab4fa34912">Finish</a>(Offset&lt; T &gt; root, const char *file_identifier=nullptr)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Finish</b>(uoffset_t root, const char *file_identifier, bool size_prefix) (defined in <a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>finished</b> (defined in <a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#a7ba8462e408431054c99d25120326220">FinishSizePrefixed</a>(Offset&lt; T &gt; root, const char *file_identifier=nullptr)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#ae4ab74f53187e6c3e6041d34e01904c4">FlatBufferBuilder</a>(size_t initial_size=1024, Allocator *allocator=nullptr, bool own_allocator=false)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>FlatBufferBuilder</b>(const FlatBufferBuilder &amp;) (defined in <a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>force_defaults_</b> (defined in <a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#a16a8fd46b34ad7727406c37b65b6b27a">ForceDefaults</a>(bool fd)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#aa1ebce1f3f46832946a95952af1e9c2b">GetBufferMinAlignment</a>()</td><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#a8dc35f792179df4ca850492c1796d8b8">GetBufferPointer</a>() const </td><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#a3f4252e9bc005ba6c700469544fdccc9">GetCurrentBufferPointer</a>() const </td><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#ac1bfd609f7f736e9a37cedae77448b63">GetSize</a>() const </td><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#af8c7583c92e1d1d6f438977da5158d19">kFileIdentifierLength</a></td><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>max_voffset_</b> (defined in <a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>minalign_</b> (defined in <a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>nested</b> (defined in <a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>offsetbuf_</b> (defined in <a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>operator=</b>(const FlatBufferBuilder &amp;) (defined in <a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#a5e2c3a1e47f0ab4a3a3f07a07a52fb45">Release</a>()</td><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#a0e715d9019060b4b753c4e5228be56e8">ReleaseBufferPointer</a>()</td><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>Reset</b>() (defined in <a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>string_pool</b> (defined in <a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>StringOffsetMap</b> typedef (defined in <a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>vtables_</b> (defined in <a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#ac51db9083ac815eb81420b6d51f42154">CreateString</a>(char *str)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#a8c3af55e64f5cda9aefa38ac5287ef9f">CreateString</a>(const std::string &amp;str)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#ac0b6a1c5d949f20ad84367fc0f9e1506">CreateString</a>(const String *str)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#ab77d800e77fa76bc758a6c399fd37685">CreateString</a>(const T &amp;str)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#a43f51ba9c8f4f24ea2247a3979d095b8">CreateStruct</a>(const T &amp;structobj)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#ac2b96292fa0fb1534fe7fd218a094d0c">CreateUninitializedVector</a>(size_t len, size_t elemsize, uint8_t **buf)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#a2305b63d367845972b51669dd995cc50">CreateUninitializedVector</a>(size_t len, T **buf)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#a2cca5c89246a53e80e6ad9487f4c36f3">CreateVector</a>(const T *v, size_t len)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>CreateVector</b>(const Offset&lt; T &gt; *v, size_t len) (defined in <a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#af715dd24dd37cb0151dc7a980ad0f207">CreateVector</a>(const std::vector&lt; T &gt; &amp;v)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>CreateVector</b>(const std::vector&lt; bool &gt; &amp;v) (defined in <a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#a1080c9e370e2d9d9d872dadd1131436b">CreateVector</a>(size_t vector_size, const std::function&lt; T(size_t i)&gt; &amp;f)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#a53504fc2cab681a7980b03260f8b2f7a">CreateVector</a>(size_t vector_size, F f, S *state)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#a3d57074082aaab8cdeb8474ff9df0b53">CreateVectorOfNativeStructs</a>(const S *v, size_t len)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#a11c291ccd2159604c149600ee6180b95">CreateVectorOfNativeStructs</a>(const std::vector&lt; S &gt; &amp;v)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#a23aa4c910e053446cc404bc486012e54">CreateVectorOfSortedNativeStructs</a>(std::vector&lt; S &gt; *v)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#a799701af34c398d8eb86e049b73bcecf">CreateVectorOfSortedNativeStructs</a>(S *v, size_t len)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#a7cc10b709dfa3e72083843d1a5e36c15">CreateVectorOfSortedStructs</a>(std::vector&lt; T &gt; *v)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#ab1f44cc1b130e13b41e9a80de76e25cf">CreateVectorOfSortedStructs</a>(T *v, size_t len)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#a2130ef232ff405eebe2e7f184ecd06e6">CreateVectorOfSortedTables</a>(Offset&lt; T &gt; *v, size_t len)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#ac64d11c219559ea51567eab556e13135">CreateVectorOfSortedTables</a>(std::vector&lt; Offset&lt; T &gt;&gt; *v)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#a592110519a6c8db1926f1365bf2a58e6">CreateVectorOfStrings</a>(const std::vector&lt; std::string &gt; &amp;v)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#afede51fd9c32d146cbb1832f57c5e1b7">CreateVectorOfStructs</a>(const T *v, size_t len)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#a6e90ada59d9553636f72ce8e4a892f72">CreateVectorOfStructs</a>(size_t vector_size, const std::function&lt; void(size_t i, T *)&gt; &amp;filler)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#a9cc09fa59ff9732e972877cfe911c8a5">CreateVectorOfStructs</a>(size_t vector_size, F f, S *state)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#a110c2a3298aebef1a9dfa3c44ee84f42">CreateVectorOfStructs</a>(const std::vector&lt; T, Alloc &gt; &amp;v)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>dedup_vtables_</b> (defined in <a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#aa905b29dce19a1795c7bce375cf29961">DedupVtables</a>(bool dedup)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#a0c9e507b373d598b51052fab4fa34912">Finish</a>(Offset&lt; T &gt; root, const char *file_identifier=nullptr)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>Finish</b>(uoffset_t root, const char *file_identifier, bool size_prefix) (defined in <a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>finished</b> (defined in <a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#a7ba8462e408431054c99d25120326220">FinishSizePrefixed</a>(Offset&lt; T &gt; root, const char *file_identifier=nullptr)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#ab0173786ea4ec3e4ae10555639b2996c">FlatBufferBuilder</a>(size_t initial_size=1024, Allocator *allocator=nullptr, bool own_allocator=false, size_t buffer_minalign=AlignOf&lt; largest_scalar_t &gt;())</td><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>FlatBufferBuilder</b>(const FlatBufferBuilder &amp;) (defined in <a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>force_defaults_</b> (defined in <a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#a16a8fd46b34ad7727406c37b65b6b27a">ForceDefaults</a>(bool fd)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#aa1ebce1f3f46832946a95952af1e9c2b">GetBufferMinAlignment</a>()</td><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#ab81ab8aa273c270b0942fd81489cad83">GetBufferPointer</a>() const</td><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#a099810f03046139d1854d20a1c2a2e41">GetCurrentBufferPointer</a>() const</td><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#a66c8fd33ab9b3b237954c9ea38648f7f">GetSize</a>() const</td><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#af8c7583c92e1d1d6f438977da5158d19">kFileIdentifierLength</a></td><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>max_voffset_</b> (defined in <a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>minalign_</b> (defined in <a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>nested</b> (defined in <a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>num_field_loc</b> (defined in <a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>operator=</b>(const FlatBufferBuilder &amp;) (defined in <a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#a5e2c3a1e47f0ab4a3a3f07a07a52fb45">Release</a>()</td><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#a0e715d9019060b4b753c4e5228be56e8">ReleaseBufferPointer</a>()</td><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Reset</b>() (defined in <a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>string_pool</b> (defined in <a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>StringOffsetMap</b> typedef (defined in <a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr bgcolor="#f0f0f0"><td class="entry"><b>~FlatBufferBuilder</b>() (defined in <a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
 </table></div><!-- contents -->
 </div><!-- doc-content -->
diff --git a/classflatbuffers_1_1_flat_buffer_builder.html b/classflatbuffers_1_1_flat_buffer_builder.html
index 580a9f3f8b424383ca010296d3289c909163c0c0..0ec82dc6f69f8c0083b191e9a75c6ecea114e1de 100644
--- a/classflatbuffers_1_1_flat_buffer_builder.html
+++ b/classflatbuffers_1_1_flat_buffer_builder.html
@@ -4,23 +4,21 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <title>FlatBuffers: flatbuffers::FlatBufferBuilder Class Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
 <link href="navtree.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
 <script type="text/javascript" src="navtree.js"></script>
 <script type="text/javascript">
   $(document).ready(initResizable);
-  $(window).load(resizeHeight);
 </script>
 <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
 <script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
-  $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,500italic,700,700italic|Roboto+Mono:400,700" rel="stylesheet">
 <link href="style.css" rel="stylesheet" type="text/css"/>
@@ -46,53 +44,19 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.7 -->
+<!-- Generated by Doxygen 1.8.13 -->
 <script type="text/javascript">
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </script>
-  <div id="navrow1" class="tabs">
-    <ul class="tablist">
-      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
-      <li><a href="usergroup0.html"><span>Programmer's&#160;Guide</span></a></li>
-      <li><a href="flatbuffers_support.html"><span>Platform&#160;/&#160;Language&#160;/&#160;Feature&#160;support</span></a></li>
-      <li><a href="flatbuffers_benchmarks.html"><span>Benchmarks</span></a></li>
-      <li><a href="flatbuffers_white_paper.html"><span>FlatBuffers&#160;white&#160;paper</span></a></li>
-      <li><a href="flatbuffers_internals.html"><span>FlatBuffers&#160;internals</span></a></li>
-      <li><a href="flatbuffers_grammar.html"><span>Grammar&#160;of&#160;the&#160;schema&#160;language</span></a></li>
-      <li class="current"><a href="usergroup2.html"><span>API&#160;Reference</span></a></li>
-      <li><a href="contributing.html"><span>Contributing</span></a></li>
-      <li>
-        <div id="MSearchBox" class="MSearchBoxInactive">
-        <span class="left">
-          <img id="MSearchSelect" src="search/mag_sel.png"
-               onmouseover="return searchBox.OnSearchSelectShow()"
-               onmouseout="return searchBox.OnSearchSelectHide()"
-               alt=""/>
-          <input type="text" id="MSearchField" value="Search" accesskey="S"
-               onfocus="searchBox.OnSearchFieldFocus(true)" 
-               onblur="searchBox.OnSearchFieldFocus(false)" 
-               onkeyup="searchBox.OnSearchFieldChange(event)"/>
-          </span><span class="right">
-            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
-          </span>
-        </div>
-      </li>
-    </ul>
-  </div>
-  <div id="navrow2" class="tabs2">
-    <ul class="tablist">
-      <li><a href="modules.html"><span>APIs</span></a></li>
-      <li class="current"><a href="annotated.html"><span>Class&#160;List</span></a></li>
-    </ul>
-  </div>
-  <div id="navrow2" class="tabs2">
-    <ul class="tablist">
-      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
-      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
-      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
-      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
-    </ul>
-  </div>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -113,7 +77,7 @@ $(document).ready(function(){initNavTree('classflatbuffers_1_1_flat_buffer_build
      onmouseover="return searchBox.OnSearchSelectShow()"
      onmouseout="return searchBox.OnSearchSelectHide()"
      onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Properties</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+</div>
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
@@ -132,7 +96,7 @@ $(document).ready(function(){initNavTree('classflatbuffers_1_1_flat_buffer_build
 <a href="#pro-attribs">Protected Attributes</a> &#124;
 <a href="classflatbuffers_1_1_flat_buffer_builder-members.html">List of all members</a>  </div>
   <div class="headertitle">
-<div class="title">flatbuffers::FlatBufferBuilder Class Reference<div class="ingroups"><a class="el" href="group__flatbuffers__cpp__api.html">C++ API</a></div></div>  </div>
+<div class="title">flatbuffers::FlatBufferBuilder Class Reference<div class="ingroups"><a class="el" href="group__flatbuffers__cpp__api.html">Flatbuffers_cpp_api</a></div></div>  </div>
 </div><!--header-->
 <div class="contents">
 
@@ -174,6 +138,9 @@ Public Member Functions</h2></td></tr>
 <tr class="memitem:aad93d113ac24e86ed04b5236b3f4c0c5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structflatbuffers_1_1_offset.html">Offset</a>&lt; <a class="el" href="structflatbuffers_1_1_string.html">String</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#aad93d113ac24e86ed04b5236b3f4c0c5">CreateString</a> (const char *str)</td></tr>
 <tr class="memdesc:aad93d113ac24e86ed04b5236b3f4c0c5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Store a string in the buffer, which is null-terminated.  <a href="#aad93d113ac24e86ed04b5236b3f4c0c5">More...</a><br /></td></tr>
 <tr class="separator:aad93d113ac24e86ed04b5236b3f4c0c5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac51db9083ac815eb81420b6d51f42154"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structflatbuffers_1_1_offset.html">Offset</a>&lt; <a class="el" href="structflatbuffers_1_1_string.html">String</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#ac51db9083ac815eb81420b6d51f42154">CreateString</a> (char *str)</td></tr>
+<tr class="memdesc:ac51db9083ac815eb81420b6d51f42154"><td class="mdescLeft">&#160;</td><td class="mdescRight">Store a string in the buffer, which is null-terminated.  <a href="#ac51db9083ac815eb81420b6d51f42154">More...</a><br /></td></tr>
+<tr class="separator:ac51db9083ac815eb81420b6d51f42154"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a8c3af55e64f5cda9aefa38ac5287ef9f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structflatbuffers_1_1_offset.html">Offset</a>&lt; <a class="el" href="structflatbuffers_1_1_string.html">String</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#a8c3af55e64f5cda9aefa38ac5287ef9f">CreateString</a> (const std::string &amp;str)</td></tr>
 <tr class="memdesc:a8c3af55e64f5cda9aefa38ac5287ef9f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Store a string in the buffer, which can contain any binary data.  <a href="#a8c3af55e64f5cda9aefa38ac5287ef9f">More...</a><br /></td></tr>
 <tr class="separator:a8c3af55e64f5cda9aefa38ac5287ef9f"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -184,7 +151,7 @@ Public Member Functions</h2></td></tr>
 <tr class="memitem:ab77d800e77fa76bc758a6c399fd37685"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structflatbuffers_1_1_offset.html">Offset</a>&lt; <a class="el" href="structflatbuffers_1_1_string.html">String</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#ab77d800e77fa76bc758a6c399fd37685">CreateString</a> (const T &amp;str)</td></tr>
 <tr class="memdesc:ab77d800e77fa76bc758a6c399fd37685"><td class="mdescLeft">&#160;</td><td class="mdescRight">Store a string in the buffer, which can contain any binary data.  <a href="#ab77d800e77fa76bc758a6c399fd37685">More...</a><br /></td></tr>
 <tr class="separator:ab77d800e77fa76bc758a6c399fd37685"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a43f51ba9c8f4f24ea2247a3979d095b8"><td class="memTemplParams" colspan="2"><a class="anchor" id="a43f51ba9c8f4f24ea2247a3979d095b8"></a>
+<tr class="memitem:a43f51ba9c8f4f24ea2247a3979d095b8"><td class="memTemplParams" colspan="2"><a id="a43f51ba9c8f4f24ea2247a3979d095b8"></a>
 template&lt;typename T &gt; </td></tr>
 <tr class="memitem:a43f51ba9c8f4f24ea2247a3979d095b8"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structflatbuffers_1_1_offset.html">Offset</a>&lt; const T * &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#a43f51ba9c8f4f24ea2247a3979d095b8">CreateStruct</a> (const T &amp;structobj)</td></tr>
 <tr class="memdesc:a43f51ba9c8f4f24ea2247a3979d095b8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write a struct by itself, typically to be part of a union. <br /></td></tr>
@@ -200,7 +167,7 @@ template&lt;typename T &gt; </td></tr>
 <tr class="memitem:a2cca5c89246a53e80e6ad9487f4c36f3"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structflatbuffers_1_1_offset.html">Offset</a>&lt; <a class="el" href="classflatbuffers_1_1_vector.html">Vector</a>&lt; T &gt; &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#a2cca5c89246a53e80e6ad9487f4c36f3">CreateVector</a> (const T *v, size_t len)</td></tr>
 <tr class="memdesc:a2cca5c89246a53e80e6ad9487f4c36f3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Serialize an array into a FlatBuffer <code>vector</code>.  <a href="#a2cca5c89246a53e80e6ad9487f4c36f3">More...</a><br /></td></tr>
 <tr class="separator:a2cca5c89246a53e80e6ad9487f4c36f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a44960c5aca0227f960c96a7ed4b881b4"><td class="memTemplParams" colspan="2"><a class="anchor" id="a44960c5aca0227f960c96a7ed4b881b4"></a>
+<tr class="memitem:a44960c5aca0227f960c96a7ed4b881b4"><td class="memTemplParams" colspan="2"><a id="a44960c5aca0227f960c96a7ed4b881b4"></a>
 template&lt;typename T &gt; </td></tr>
 <tr class="memitem:a44960c5aca0227f960c96a7ed4b881b4"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structflatbuffers_1_1_offset.html">Offset</a>&lt; <a class="el" href="classflatbuffers_1_1_vector.html">Vector</a>&lt; <a class="el" href="structflatbuffers_1_1_offset.html">Offset</a>&lt; T &gt; &gt; &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><b>CreateVector</b> (const <a class="el" href="structflatbuffers_1_1_offset.html">Offset</a>&lt; T &gt; *v, size_t len)</td></tr>
 <tr class="separator:a44960c5aca0227f960c96a7ed4b881b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -208,7 +175,7 @@ template&lt;typename T &gt; </td></tr>
 <tr class="memitem:af715dd24dd37cb0151dc7a980ad0f207"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structflatbuffers_1_1_offset.html">Offset</a>&lt; <a class="el" href="classflatbuffers_1_1_vector.html">Vector</a>&lt; T &gt; &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#af715dd24dd37cb0151dc7a980ad0f207">CreateVector</a> (const std::vector&lt; T &gt; &amp;v)</td></tr>
 <tr class="memdesc:af715dd24dd37cb0151dc7a980ad0f207"><td class="mdescLeft">&#160;</td><td class="mdescRight">Serialize a <code>std::vector</code> into a FlatBuffer <code>vector</code>.  <a href="#af715dd24dd37cb0151dc7a980ad0f207">More...</a><br /></td></tr>
 <tr class="separator:af715dd24dd37cb0151dc7a980ad0f207"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a274b1afcfa16bab2c884129b2788db19"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a274b1afcfa16bab2c884129b2788db19"></a>
+<tr class="memitem:a274b1afcfa16bab2c884129b2788db19"><td class="memItemLeft" align="right" valign="top"><a id="a274b1afcfa16bab2c884129b2788db19"></a>
 <a class="el" href="structflatbuffers_1_1_offset.html">Offset</a>&lt; <a class="el" href="classflatbuffers_1_1_vector.html">Vector</a>&lt; uint8_t &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>CreateVector</b> (const std::vector&lt; bool &gt; &amp;v)</td></tr>
 <tr class="separator:a274b1afcfa16bab2c884129b2788db19"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a1080c9e370e2d9d9d872dadd1131436b"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
@@ -266,10 +233,10 @@ template&lt;typename T &gt; </td></tr>
 <tr class="memitem:a9cc09fa59ff9732e972877cfe911c8a5"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structflatbuffers_1_1_offset.html">Offset</a>&lt; <a class="el" href="classflatbuffers_1_1_vector.html">Vector</a>&lt; const T * &gt; &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#a9cc09fa59ff9732e972877cfe911c8a5">CreateVectorOfStructs</a> (size_t vector_size, F f, S *state)</td></tr>
 <tr class="memdesc:a9cc09fa59ff9732e972877cfe911c8a5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Serialize an array of structs into a FlatBuffer <code>vector</code>.  <a href="#a9cc09fa59ff9732e972877cfe911c8a5">More...</a><br /></td></tr>
 <tr class="separator:a9cc09fa59ff9732e972877cfe911c8a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a8704709a2e25ad04679212ee4126b1a1"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
-<tr class="memitem:a8704709a2e25ad04679212ee4126b1a1"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structflatbuffers_1_1_offset.html">Offset</a>&lt; <a class="el" href="classflatbuffers_1_1_vector.html">Vector</a>&lt; const T * &gt; &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#a8704709a2e25ad04679212ee4126b1a1">CreateVectorOfStructs</a> (const std::vector&lt; T &gt; &amp;v)</td></tr>
-<tr class="memdesc:a8704709a2e25ad04679212ee4126b1a1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Serialize a <code>std::vector</code> of structs into a FlatBuffer <code>vector</code>.  <a href="#a8704709a2e25ad04679212ee4126b1a1">More...</a><br /></td></tr>
-<tr class="separator:a8704709a2e25ad04679212ee4126b1a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a110c2a3298aebef1a9dfa3c44ee84f42"><td class="memTemplParams" colspan="2">template&lt;typename T , typename Alloc &gt; </td></tr>
+<tr class="memitem:a110c2a3298aebef1a9dfa3c44ee84f42"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structflatbuffers_1_1_offset.html">Offset</a>&lt; <a class="el" href="classflatbuffers_1_1_vector.html">Vector</a>&lt; const T * &gt; &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#a110c2a3298aebef1a9dfa3c44ee84f42">CreateVectorOfStructs</a> (const std::vector&lt; T, Alloc &gt; &amp;v)</td></tr>
+<tr class="memdesc:a110c2a3298aebef1a9dfa3c44ee84f42"><td class="mdescLeft">&#160;</td><td class="mdescRight">Serialize a <code>std::vector</code> of structs into a FlatBuffer <code>vector</code>.  <a href="#a110c2a3298aebef1a9dfa3c44ee84f42">More...</a><br /></td></tr>
+<tr class="separator:a110c2a3298aebef1a9dfa3c44ee84f42"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:aa905b29dce19a1795c7bce375cf29961"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#aa905b29dce19a1795c7bce375cf29961">DedupVtables</a> (bool dedup)</td></tr>
 <tr class="memdesc:aa905b29dce19a1795c7bce375cf29961"><td class="mdescLeft">&#160;</td><td class="mdescRight">By default vtables are deduped in order to save space.  <a href="#aa905b29dce19a1795c7bce375cf29961">More...</a><br /></td></tr>
 <tr class="separator:aa905b29dce19a1795c7bce375cf29961"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -281,96 +248,93 @@ template&lt;typename T &gt; </td></tr>
 <tr class="memitem:a7ba8462e408431054c99d25120326220"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#a7ba8462e408431054c99d25120326220">FinishSizePrefixed</a> (<a class="el" href="structflatbuffers_1_1_offset.html">Offset</a>&lt; T &gt; root, const char *file_identifier=nullptr)</td></tr>
 <tr class="memdesc:a7ba8462e408431054c99d25120326220"><td class="mdescLeft">&#160;</td><td class="mdescRight">Finish a buffer with a 32 bit size field pre-fixed (size of the buffer following the size field).  <a href="#a7ba8462e408431054c99d25120326220">More...</a><br /></td></tr>
 <tr class="separator:a7ba8462e408431054c99d25120326220"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ae4ab74f53187e6c3e6041d34e01904c4"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#ae4ab74f53187e6c3e6041d34e01904c4">FlatBufferBuilder</a> (size_t initial_size=1024, <a class="el" href="classflatbuffers_1_1_allocator.html">Allocator</a> *allocator=nullptr, bool own_allocator=false)</td></tr>
-<tr class="memdesc:ae4ab74f53187e6c3e6041d34e01904c4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default constructor for FlatBufferBuilder.  <a href="#ae4ab74f53187e6c3e6041d34e01904c4">More...</a><br /></td></tr>
-<tr class="separator:ae4ab74f53187e6c3e6041d34e01904c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab0173786ea4ec3e4ae10555639b2996c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#ab0173786ea4ec3e4ae10555639b2996c">FlatBufferBuilder</a> (size_t initial_size=1024, <a class="el" href="classflatbuffers_1_1_allocator.html">Allocator</a> *allocator=nullptr, bool own_allocator=false, size_t buffer_minalign=AlignOf&lt; largest_scalar_t &gt;())</td></tr>
+<tr class="memdesc:ab0173786ea4ec3e4ae10555639b2996c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default constructor for FlatBufferBuilder.  <a href="#ab0173786ea4ec3e4ae10555639b2996c">More...</a><br /></td></tr>
+<tr class="separator:ab0173786ea4ec3e4ae10555639b2996c"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a16a8fd46b34ad7727406c37b65b6b27a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#a16a8fd46b34ad7727406c37b65b6b27a">ForceDefaults</a> (bool fd)</td></tr>
 <tr class="memdesc:a16a8fd46b34ad7727406c37b65b6b27a"><td class="mdescLeft">&#160;</td><td class="mdescRight">In order to save space, fields that are set to their default value don't get serialized into the buffer.  <a href="#a16a8fd46b34ad7727406c37b65b6b27a">More...</a><br /></td></tr>
 <tr class="separator:a16a8fd46b34ad7727406c37b65b6b27a"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:aa1ebce1f3f46832946a95952af1e9c2b"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#aa1ebce1f3f46832946a95952af1e9c2b">GetBufferMinAlignment</a> ()</td></tr>
 <tr class="memdesc:aa1ebce1f3f46832946a95952af1e9c2b"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the minimum alignment this buffer needs to be accessed properly.  <a href="#aa1ebce1f3f46832946a95952af1e9c2b">More...</a><br /></td></tr>
 <tr class="separator:aa1ebce1f3f46832946a95952af1e9c2b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a8dc35f792179df4ca850492c1796d8b8"><td class="memItemLeft" align="right" valign="top">uint8_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#a8dc35f792179df4ca850492c1796d8b8">GetBufferPointer</a> () const </td></tr>
-<tr class="memdesc:a8dc35f792179df4ca850492c1796d8b8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the serialized buffer (after you call <code>Finish()</code>).  <a href="#a8dc35f792179df4ca850492c1796d8b8">More...</a><br /></td></tr>
-<tr class="separator:a8dc35f792179df4ca850492c1796d8b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a3f4252e9bc005ba6c700469544fdccc9"><td class="memItemLeft" align="right" valign="top">uint8_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#a3f4252e9bc005ba6c700469544fdccc9">GetCurrentBufferPointer</a> () const </td></tr>
-<tr class="memdesc:a3f4252e9bc005ba6c700469544fdccc9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a pointer to an unfinished buffer.  <a href="#a3f4252e9bc005ba6c700469544fdccc9">More...</a><br /></td></tr>
-<tr class="separator:a3f4252e9bc005ba6c700469544fdccc9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ac1bfd609f7f736e9a37cedae77448b63"><td class="memItemLeft" align="right" valign="top">uoffset_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#ac1bfd609f7f736e9a37cedae77448b63">GetSize</a> () const </td></tr>
-<tr class="memdesc:ac1bfd609f7f736e9a37cedae77448b63"><td class="mdescLeft">&#160;</td><td class="mdescRight">The current size of the serialized buffer, counting from the end.  <a href="#ac1bfd609f7f736e9a37cedae77448b63">More...</a><br /></td></tr>
-<tr class="separator:ac1bfd609f7f736e9a37cedae77448b63"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab81ab8aa273c270b0942fd81489cad83"><td class="memItemLeft" align="right" valign="top">uint8_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#ab81ab8aa273c270b0942fd81489cad83">GetBufferPointer</a> () const</td></tr>
+<tr class="memdesc:ab81ab8aa273c270b0942fd81489cad83"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the serialized buffer (after you call <code>Finish()</code>).  <a href="#ab81ab8aa273c270b0942fd81489cad83">More...</a><br /></td></tr>
+<tr class="separator:ab81ab8aa273c270b0942fd81489cad83"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a099810f03046139d1854d20a1c2a2e41"><td class="memItemLeft" align="right" valign="top">uint8_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#a099810f03046139d1854d20a1c2a2e41">GetCurrentBufferPointer</a> () const</td></tr>
+<tr class="memdesc:a099810f03046139d1854d20a1c2a2e41"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a pointer to an unfinished buffer.  <a href="#a099810f03046139d1854d20a1c2a2e41">More...</a><br /></td></tr>
+<tr class="separator:a099810f03046139d1854d20a1c2a2e41"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a66c8fd33ab9b3b237954c9ea38648f7f"><td class="memItemLeft" align="right" valign="top">uoffset_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#a66c8fd33ab9b3b237954c9ea38648f7f">GetSize</a> () const</td></tr>
+<tr class="memdesc:a66c8fd33ab9b3b237954c9ea38648f7f"><td class="mdescLeft">&#160;</td><td class="mdescRight">The current size of the serialized buffer, counting from the end.  <a href="#a66c8fd33ab9b3b237954c9ea38648f7f">More...</a><br /></td></tr>
+<tr class="separator:a66c8fd33ab9b3b237954c9ea38648f7f"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a5e2c3a1e47f0ab4a3a3f07a07a52fb45"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classflatbuffers_1_1_detached_buffer.html">DetachedBuffer</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#a5e2c3a1e47f0ab4a3a3f07a07a52fb45">Release</a> ()</td></tr>
 <tr class="memdesc:a5e2c3a1e47f0ab4a3a3f07a07a52fb45"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the released DetachedBuffer.  <a href="#a5e2c3a1e47f0ab4a3a3f07a07a52fb45">More...</a><br /></td></tr>
 <tr class="separator:a5e2c3a1e47f0ab4a3a3f07a07a52fb45"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a0e715d9019060b4b753c4e5228be56e8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classflatbuffers_1_1_detached_buffer.html">DetachedBuffer</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#a0e715d9019060b4b753c4e5228be56e8">ReleaseBufferPointer</a> ()</td></tr>
 <tr class="memdesc:a0e715d9019060b4b753c4e5228be56e8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the released pointer to the serialized buffer.  <a href="#a0e715d9019060b4b753c4e5228be56e8">More...</a><br /></td></tr>
 <tr class="separator:a0e715d9019060b4b753c4e5228be56e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a952495120d5c56d600640091334b5341"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a952495120d5c56d600640091334b5341"></a>
+<tr class="memitem:a952495120d5c56d600640091334b5341"><td class="memItemLeft" align="right" valign="top"><a id="a952495120d5c56d600640091334b5341"></a>
 void&#160;</td><td class="memItemRight" valign="bottom"><b>Reset</b> ()</td></tr>
 <tr class="separator:a952495120d5c56d600640091334b5341"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-attribs"></a>
 Static Public Attributes</h2></td></tr>
-<tr class="memitem:af8c7583c92e1d1d6f438977da5158d19"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af8c7583c92e1d1d6f438977da5158d19"></a>
+<tr class="memitem:af8c7583c92e1d1d6f438977da5158d19"><td class="memItemLeft" align="right" valign="top"><a id="af8c7583c92e1d1d6f438977da5158d19"></a>
 static const size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#af8c7583c92e1d1d6f438977da5158d19">kFileIdentifierLength</a> = 4</td></tr>
 <tr class="memdesc:af8c7583c92e1d1d6f438977da5158d19"><td class="mdescLeft">&#160;</td><td class="mdescRight">The length of a FlatBuffer file header. <br /></td></tr>
 <tr class="separator:af8c7583c92e1d1d6f438977da5158d19"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-types"></a>
 Protected Types</h2></td></tr>
-<tr class="memitem:a9190cb2d5a4324ab0c52263b834fff09"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9190cb2d5a4324ab0c52263b834fff09"></a>
-typedef std::set&lt; <a class="el" href="structflatbuffers_1_1_offset.html">Offset</a><br class="typebreak" />
-&lt; <a class="el" href="structflatbuffers_1_1_string.html">String</a> &gt;<br class="typebreak" />
-, <a class="el" href="structflatbuffers_1_1_flat_buffer_builder_1_1_string_offset_compare.html">StringOffsetCompare</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>StringOffsetMap</b></td></tr>
+<tr class="memitem:a9190cb2d5a4324ab0c52263b834fff09"><td class="memItemLeft" align="right" valign="top"><a id="a9190cb2d5a4324ab0c52263b834fff09"></a>
+typedef std::set&lt; <a class="el" href="structflatbuffers_1_1_offset.html">Offset</a>&lt; <a class="el" href="structflatbuffers_1_1_string.html">String</a> &gt;, <a class="el" href="structflatbuffers_1_1_flat_buffer_builder_1_1_string_offset_compare.html">StringOffsetCompare</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>StringOffsetMap</b></td></tr>
 <tr class="separator:a9190cb2d5a4324ab0c52263b834fff09"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
 Protected Member Functions</h2></td></tr>
-<tr class="memitem:a2e4de5642bad6dcd01eb7e7eaf719c89"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2e4de5642bad6dcd01eb7e7eaf719c89"></a>
+<tr class="memitem:a2e4de5642bad6dcd01eb7e7eaf719c89"><td class="memItemLeft" align="right" valign="top"><a id="a2e4de5642bad6dcd01eb7e7eaf719c89"></a>
 void&#160;</td><td class="memItemRight" valign="bottom"><b>Finish</b> (uoffset_t root, const char *file_identifier, bool size_prefix)</td></tr>
 <tr class="separator:a2e4de5642bad6dcd01eb7e7eaf719c89"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ace4606286a25d3fedfb1532934d4cea1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ace4606286a25d3fedfb1532934d4cea1"></a>
+<tr class="memitem:ace4606286a25d3fedfb1532934d4cea1"><td class="memItemLeft" align="right" valign="top"><a id="ace4606286a25d3fedfb1532934d4cea1"></a>
 &#160;</td><td class="memItemRight" valign="bottom"><b>FlatBufferBuilder</b> (const <a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">FlatBufferBuilder</a> &amp;)</td></tr>
 <tr class="separator:ace4606286a25d3fedfb1532934d4cea1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a376bb6858e8b1baab9a437f3f9f0b334"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a376bb6858e8b1baab9a437f3f9f0b334"></a>
+<tr class="memitem:a376bb6858e8b1baab9a437f3f9f0b334"><td class="memItemLeft" align="right" valign="top"><a id="a376bb6858e8b1baab9a437f3f9f0b334"></a>
 <a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">FlatBufferBuilder</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (const <a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html">FlatBufferBuilder</a> &amp;)</td></tr>
 <tr class="separator:a376bb6858e8b1baab9a437f3f9f0b334"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
 Protected Attributes</h2></td></tr>
-<tr class="memitem:a9a3886be63710d8bb88f2ade4ac8420d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9a3886be63710d8bb88f2ade4ac8420d"></a>
+<tr class="memitem:a9a3886be63710d8bb88f2ade4ac8420d"><td class="memItemLeft" align="right" valign="top"><a id="a9a3886be63710d8bb88f2ade4ac8420d"></a>
 <a class="el" href="classflatbuffers_1_1vector__downward.html">vector_downward</a>&#160;</td><td class="memItemRight" valign="bottom"><b>buf_</b></td></tr>
 <tr class="separator:a9a3886be63710d8bb88f2ade4ac8420d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a6b31b32fb478a9ec68164e1579c7ebe7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6b31b32fb478a9ec68164e1579c7ebe7"></a>
+<tr class="memitem:a6b31b32fb478a9ec68164e1579c7ebe7"><td class="memItemLeft" align="right" valign="top"><a id="a6b31b32fb478a9ec68164e1579c7ebe7"></a>
 bool&#160;</td><td class="memItemRight" valign="bottom"><b>dedup_vtables_</b></td></tr>
 <tr class="separator:a6b31b32fb478a9ec68164e1579c7ebe7"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ab2cc618aeb6f6c411c7ab734649e1a81"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab2cc618aeb6f6c411c7ab734649e1a81"></a>
+<tr class="memitem:ab2cc618aeb6f6c411c7ab734649e1a81"><td class="memItemLeft" align="right" valign="top"><a id="ab2cc618aeb6f6c411c7ab734649e1a81"></a>
 bool&#160;</td><td class="memItemRight" valign="bottom"><b>finished</b></td></tr>
 <tr class="separator:ab2cc618aeb6f6c411c7ab734649e1a81"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a89c2d7c686a2df8014cb453ec70fdccd"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a89c2d7c686a2df8014cb453ec70fdccd"></a>
+<tr class="memitem:a89c2d7c686a2df8014cb453ec70fdccd"><td class="memItemLeft" align="right" valign="top"><a id="a89c2d7c686a2df8014cb453ec70fdccd"></a>
 bool&#160;</td><td class="memItemRight" valign="bottom"><b>force_defaults_</b></td></tr>
 <tr class="separator:a89c2d7c686a2df8014cb453ec70fdccd"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a5e604e3caf95fd0f0e74545af5a8420a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5e604e3caf95fd0f0e74545af5a8420a"></a>
+<tr class="memitem:a5e604e3caf95fd0f0e74545af5a8420a"><td class="memItemLeft" align="right" valign="top"><a id="a5e604e3caf95fd0f0e74545af5a8420a"></a>
 voffset_t&#160;</td><td class="memItemRight" valign="bottom"><b>max_voffset_</b></td></tr>
 <tr class="separator:a5e604e3caf95fd0f0e74545af5a8420a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ab9942e76ff29eefc702b006b19ce02ba"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab9942e76ff29eefc702b006b19ce02ba"></a>
+<tr class="memitem:ab9942e76ff29eefc702b006b19ce02ba"><td class="memItemLeft" align="right" valign="top"><a id="ab9942e76ff29eefc702b006b19ce02ba"></a>
 size_t&#160;</td><td class="memItemRight" valign="bottom"><b>minalign_</b></td></tr>
 <tr class="separator:ab9942e76ff29eefc702b006b19ce02ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:add6d502accf426e35f91f2539baff6b2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="add6d502accf426e35f91f2539baff6b2"></a>
+<tr class="memitem:add6d502accf426e35f91f2539baff6b2"><td class="memItemLeft" align="right" valign="top"><a id="add6d502accf426e35f91f2539baff6b2"></a>
 bool&#160;</td><td class="memItemRight" valign="bottom"><b>nested</b></td></tr>
 <tr class="separator:add6d502accf426e35f91f2539baff6b2"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:adda5db5eceb1465e9a71ddc012d70839"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="adda5db5eceb1465e9a71ddc012d70839"></a>
-std::vector&lt; <a class="el" href="structflatbuffers_1_1_flat_buffer_builder_1_1_field_loc.html">FieldLoc</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>offsetbuf_</b></td></tr>
-<tr class="separator:adda5db5eceb1465e9a71ddc012d70839"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aa7e64b654cef62869c3dfd27def92e5d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa7e64b654cef62869c3dfd27def92e5d"></a>
+<tr class="memitem:adb473c5fd1305213b91eecaa779ecafa"><td class="memItemLeft" align="right" valign="top"><a id="adb473c5fd1305213b91eecaa779ecafa"></a>
+uoffset_t&#160;</td><td class="memItemRight" valign="bottom"><b>num_field_loc</b></td></tr>
+<tr class="separator:adb473c5fd1305213b91eecaa779ecafa"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa7e64b654cef62869c3dfd27def92e5d"><td class="memItemLeft" align="right" valign="top"><a id="aa7e64b654cef62869c3dfd27def92e5d"></a>
 StringOffsetMap *&#160;</td><td class="memItemRight" valign="bottom"><b>string_pool</b></td></tr>
 <tr class="separator:aa7e64b654cef62869c3dfd27def92e5d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a17c05ea503f311eaf6e56a1be3ac1c49"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a17c05ea503f311eaf6e56a1be3ac1c49"></a>
-std::vector&lt; uoffset_t &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>vtables_</b></td></tr>
-<tr class="separator:a17c05ea503f311eaf6e56a1be3ac1c49"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
-<a class="anchor" id="ae4ab74f53187e6c3e6041d34e01904c4"></a>
+<a id="ab0173786ea4ec3e4ae10555639b2996c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ab0173786ea4ec3e4ae10555639b2996c">&#9670;&nbsp;</a></span>FlatBufferBuilder()</h2>
+
 <div class="memitem">
 <div class="memproto">
 <table class="mlabels">
@@ -393,7 +357,13 @@ std::vector&lt; uoffset_t &gt;&#160;</td><td class="memItemRight" valign="bottom
           <td class="paramkey"></td>
           <td></td>
           <td class="paramtype">bool&#160;</td>
-          <td class="paramname"><em>own_allocator</em> = <code>false</code>&#160;</td>
+          <td class="paramname"><em>own_allocator</em> = <code>false</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">size_t&#160;</td>
+          <td class="paramname"><em>buffer_minalign</em> = <code>AlignOf&lt;largest_scalar_t&gt;()</code>&#160;</td>
         </tr>
         <tr>
           <td></td>
@@ -414,6 +384,7 @@ std::vector&lt; uoffset_t &gt;&#160;</td><td class="memItemRight" valign="bottom
     <tr><td class="paramdir">[in]</td><td class="paramname">initial_size</td><td>The initial size of the buffer, in bytes. Defaults to <code>1024</code>. </td></tr>
     <tr><td class="paramdir">[in]</td><td class="paramname">allocator</td><td>An <code>Allocator</code> to use. Defaults to a new instance of a <code>DefaultAllocator</code>. </td></tr>
     <tr><td class="paramdir">[in]</td><td class="paramname">own_allocator</td><td>Whether the builder/vector should own the allocator. Defaults to / <code>false</code>. </td></tr>
+    <tr><td class="paramdir">[in]</td><td class="paramname">buffer_minalign</td><td>Force the buffer to be aligned to the given minimum alignment upon reallocation. Only needed if you intend to store types with custom alignment AND you wish to read the buffer in-place directly after creation. </td></tr>
   </table>
   </dd>
 </dl>
@@ -421,7 +392,9 @@ std::vector&lt; uoffset_t &gt;&#160;</td><td class="memItemRight" valign="bottom
 </div>
 </div>
 <h2 class="groupheader">Member Function Documentation</h2>
-<a class="anchor" id="ae94b94ba71ea0aeb2d9a98c43b713412"></a>
+<a id="ae94b94ba71ea0aeb2d9a98c43b713412"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ae94b94ba71ea0aeb2d9a98c43b713412">&#9670;&nbsp;</a></span>Clear()</h2>
+
 <div class="memitem">
 <div class="memproto">
 <table class="mlabels">
@@ -446,7 +419,9 @@ std::vector&lt; uoffset_t &gt;&#160;</td><td class="memItemRight" valign="bottom
 
 </div>
 </div>
-<a class="anchor" id="ab478a645216d2d613fc7b7c29b0ff9d1"></a>
+<a id="ab478a645216d2d613fc7b7c29b0ff9d1"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ab478a645216d2d613fc7b7c29b0ff9d1">&#9670;&nbsp;</a></span>CreateSharedString() <span class="overload">[1/4]</span></h2>
+
 <div class="memitem">
 <div class="memproto">
 <table class="mlabels">
@@ -490,7 +465,9 @@ std::vector&lt; uoffset_t &gt;&#160;</td><td class="memItemRight" valign="bottom
 
 </div>
 </div>
-<a class="anchor" id="a3eb68613e5883dc4b8fff6cf7d1223d7"></a>
+<a id="a3eb68613e5883dc4b8fff6cf7d1223d7"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a3eb68613e5883dc4b8fff6cf7d1223d7">&#9670;&nbsp;</a></span>CreateSharedString() <span class="overload">[2/4]</span></h2>
+
 <div class="memitem">
 <div class="memproto">
 <table class="mlabels">
@@ -523,7 +500,9 @@ std::vector&lt; uoffset_t &gt;&#160;</td><td class="memItemRight" valign="bottom
 
 </div>
 </div>
-<a class="anchor" id="a10e8ec7d1c8fbdc21b1c7047bbbe38d9"></a>
+<a id="a10e8ec7d1c8fbdc21b1c7047bbbe38d9"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a10e8ec7d1c8fbdc21b1c7047bbbe38d9">&#9670;&nbsp;</a></span>CreateSharedString() <span class="overload">[3/4]</span></h2>
+
 <div class="memitem">
 <div class="memproto">
 <table class="mlabels">
@@ -556,7 +535,9 @@ std::vector&lt; uoffset_t &gt;&#160;</td><td class="memItemRight" valign="bottom
 
 </div>
 </div>
-<a class="anchor" id="a840b769fbb4148f97d3eed266e4690c3"></a>
+<a id="a840b769fbb4148f97d3eed266e4690c3"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a840b769fbb4148f97d3eed266e4690c3">&#9670;&nbsp;</a></span>CreateSharedString() <span class="overload">[4/4]</span></h2>
+
 <div class="memitem">
 <div class="memproto">
 <table class="mlabels">
@@ -589,7 +570,9 @@ std::vector&lt; uoffset_t &gt;&#160;</td><td class="memItemRight" valign="bottom
 
 </div>
 </div>
-<a class="anchor" id="aec6f9df2a0366b540b24822414d92cbe"></a>
+<a id="aec6f9df2a0366b540b24822414d92cbe"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aec6f9df2a0366b540b24822414d92cbe">&#9670;&nbsp;</a></span>CreateString() <span class="overload">[1/6]</span></h2>
+
 <div class="memitem">
 <div class="memproto">
 <table class="mlabels">
@@ -633,7 +616,9 @@ std::vector&lt; uoffset_t &gt;&#160;</td><td class="memItemRight" valign="bottom
 
 </div>
 </div>
-<a class="anchor" id="aad93d113ac24e86ed04b5236b3f4c0c5"></a>
+<a id="aad93d113ac24e86ed04b5236b3f4c0c5"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aad93d113ac24e86ed04b5236b3f4c0c5">&#9670;&nbsp;</a></span>CreateString() <span class="overload">[2/6]</span></h2>
+
 <div class="memitem">
 <div class="memproto">
 <table class="mlabels">
@@ -666,7 +651,44 @@ std::vector&lt; uoffset_t &gt;&#160;</td><td class="memItemRight" valign="bottom
 
 </div>
 </div>
-<a class="anchor" id="a8c3af55e64f5cda9aefa38ac5287ef9f"></a>
+<a id="ac51db9083ac815eb81420b6d51f42154"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ac51db9083ac815eb81420b6d51f42154">&#9670;&nbsp;</a></span>CreateString() <span class="overload">[3/6]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structflatbuffers_1_1_offset.html">Offset</a>&lt;<a class="el" href="structflatbuffers_1_1_string.html">String</a>&gt; flatbuffers::FlatBufferBuilder::CreateString </td>
+          <td>(</td>
+          <td class="paramtype">char *&#160;</td>
+          <td class="paramname"><em>str</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Store a string in the buffer, which is null-terminated. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramdir">[in]</td><td class="paramname">str</td><td>A char pointer to a C-string to add to the buffer. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Returns the offset in the buffer where the string starts. </dd></dl>
+
+</div>
+</div>
+<a id="a8c3af55e64f5cda9aefa38ac5287ef9f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a8c3af55e64f5cda9aefa38ac5287ef9f">&#9670;&nbsp;</a></span>CreateString() <span class="overload">[4/6]</span></h2>
+
 <div class="memitem">
 <div class="memproto">
 <table class="mlabels">
@@ -699,7 +721,9 @@ std::vector&lt; uoffset_t &gt;&#160;</td><td class="memItemRight" valign="bottom
 
 </div>
 </div>
-<a class="anchor" id="ac0b6a1c5d949f20ad84367fc0f9e1506"></a>
+<a id="ac0b6a1c5d949f20ad84367fc0f9e1506"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ac0b6a1c5d949f20ad84367fc0f9e1506">&#9670;&nbsp;</a></span>CreateString() <span class="overload">[5/6]</span></h2>
+
 <div class="memitem">
 <div class="memproto">
 <table class="mlabels">
@@ -732,7 +756,9 @@ std::vector&lt; uoffset_t &gt;&#160;</td><td class="memItemRight" valign="bottom
 
 </div>
 </div>
-<a class="anchor" id="ab77d800e77fa76bc758a6c399fd37685"></a>
+<a id="ab77d800e77fa76bc758a6c399fd37685"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ab77d800e77fa76bc758a6c399fd37685">&#9670;&nbsp;</a></span>CreateString() <span class="overload">[6/6]</span></h2>
+
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
@@ -767,7 +793,9 @@ template&lt;typename T &gt; </div>
 
 </div>
 </div>
-<a class="anchor" id="ac2b96292fa0fb1534fe7fd218a094d0c"></a>
+<a id="ac2b96292fa0fb1534fe7fd218a094d0c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ac2b96292fa0fb1534fe7fd218a094d0c">&#9670;&nbsp;</a></span>CreateUninitializedVector() <span class="overload">[1/2]</span></h2>
+
 <div class="memitem">
 <div class="memproto">
 <table class="mlabels">
@@ -817,7 +845,9 @@ template&lt;typename T &gt; </div>
 
 </div>
 </div>
-<a class="anchor" id="a2305b63d367845972b51669dd995cc50"></a>
+<a id="a2305b63d367845972b51669dd995cc50"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a2305b63d367845972b51669dd995cc50">&#9670;&nbsp;</a></span>CreateUninitializedVector() <span class="overload">[2/2]</span></h2>
+
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
@@ -868,7 +898,9 @@ template&lt;typename T &gt; </div>
 
 </div>
 </div>
-<a class="anchor" id="a2cca5c89246a53e80e6ad9487f4c36f3"></a>
+<a id="a2cca5c89246a53e80e6ad9487f4c36f3"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a2cca5c89246a53e80e6ad9487f4c36f3">&#9670;&nbsp;</a></span>CreateVector() <span class="overload">[1/4]</span></h2>
+
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
@@ -920,7 +952,9 @@ template&lt;typename T &gt; </div>
 
 </div>
 </div>
-<a class="anchor" id="af715dd24dd37cb0151dc7a980ad0f207"></a>
+<a id="af715dd24dd37cb0151dc7a980ad0f207"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af715dd24dd37cb0151dc7a980ad0f207">&#9670;&nbsp;</a></span>CreateVector() <span class="overload">[2/4]</span></h2>
+
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
@@ -961,7 +995,9 @@ template&lt;typename T &gt; </div>
 
 </div>
 </div>
-<a class="anchor" id="a1080c9e370e2d9d9d872dadd1131436b"></a>
+<a id="a1080c9e370e2d9d9d872dadd1131436b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a1080c9e370e2d9d9d872dadd1131436b">&#9670;&nbsp;</a></span>CreateVector() <span class="overload">[3/4]</span></h2>
+
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
@@ -1012,7 +1048,9 @@ template&lt;typename T &gt; </div>
 
 </div>
 </div>
-<a class="anchor" id="a53504fc2cab681a7980b03260f8b2f7a"></a>
+<a id="a53504fc2cab681a7980b03260f8b2f7a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a53504fc2cab681a7980b03260f8b2f7a">&#9670;&nbsp;</a></span>CreateVector() <span class="overload">[4/4]</span></h2>
+
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
@@ -1070,7 +1108,9 @@ template&lt;typename T , typename F , typename S &gt; </div>
 
 </div>
 </div>
-<a class="anchor" id="a3d57074082aaab8cdeb8474ff9df0b53"></a>
+<a id="a3d57074082aaab8cdeb8474ff9df0b53"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a3d57074082aaab8cdeb8474ff9df0b53">&#9670;&nbsp;</a></span>CreateVectorOfNativeStructs() <span class="overload">[1/2]</span></h2>
+
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
@@ -1123,7 +1163,9 @@ template&lt;typename T , typename S &gt; </div>
 
 </div>
 </div>
-<a class="anchor" id="a11c291ccd2159604c149600ee6180b95"></a>
+<a id="a11c291ccd2159604c149600ee6180b95"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a11c291ccd2159604c149600ee6180b95">&#9670;&nbsp;</a></span>CreateVectorOfNativeStructs() <span class="overload">[2/2]</span></h2>
+
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
@@ -1157,15 +1199,16 @@ template&lt;typename T , typename S &gt; </div>
 </dl>
 <dl class="params"><dt>Parameters</dt><dd>
   <table class="params">
-    <tr><td class="paramdir">[in]</td><td class="paramname"></td><td>v A const reference to the <code>std::vector</code> of structs to serialize into the buffer as a <code>vector</code>. </td></tr>
+    <tr><td class="paramdir">[in]</td><td class="paramname"></td><td></td></tr>
   </table>
   </dd>
 </dl>
-<dl class="section return"><dt>Returns</dt><dd>Returns a typed <code>Offset</code> into the serialized data indicating where the vector is stored. </dd></dl>
 
 </div>
 </div>
-<a class="anchor" id="a23aa4c910e053446cc404bc486012e54"></a>
+<a id="a23aa4c910e053446cc404bc486012e54"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a23aa4c910e053446cc404bc486012e54">&#9670;&nbsp;</a></span>CreateVectorOfSortedNativeStructs() <span class="overload">[1/2]</span></h2>
+
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
@@ -1199,15 +1242,16 @@ template&lt;typename T , typename S &gt; </div>
 </dl>
 <dl class="params"><dt>Parameters</dt><dd>
   <table class="params">
-    <tr><td class="paramdir">[in]</td><td class="paramname"></td><td>v A const reference to the <code>std::vector</code> of structs to serialize into the buffer as a <code>vector</code>. </td></tr>
+    <tr><td class="paramdir">[in]</td><td class="paramname"></td><td></td></tr>
   </table>
   </dd>
 </dl>
-<dl class="section return"><dt>Returns</dt><dd>Returns a typed <code>Offset</code> into the serialized data indicating where the vector is stored. </dd></dl>
 
 </div>
 </div>
-<a class="anchor" id="a799701af34c398d8eb86e049b73bcecf"></a>
+<a id="a799701af34c398d8eb86e049b73bcecf"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a799701af34c398d8eb86e049b73bcecf">&#9670;&nbsp;</a></span>CreateVectorOfSortedNativeStructs() <span class="overload">[2/2]</span></h2>
+
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
@@ -1260,7 +1304,9 @@ template&lt;typename T , typename S &gt; </div>
 
 </div>
 </div>
-<a class="anchor" id="a7cc10b709dfa3e72083843d1a5e36c15"></a>
+<a id="a7cc10b709dfa3e72083843d1a5e36c15"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a7cc10b709dfa3e72083843d1a5e36c15">&#9670;&nbsp;</a></span>CreateVectorOfSortedStructs() <span class="overload">[1/2]</span></h2>
+
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
@@ -1293,15 +1339,16 @@ template&lt;typename T &gt; </div>
 </dl>
 <dl class="params"><dt>Parameters</dt><dd>
   <table class="params">
-    <tr><td class="paramdir">[in]</td><td class="paramname"></td><td>v A const reference to the <code>std::vector</code> of structs to serialize into the buffer as a <code>vector</code>. </td></tr>
+    <tr><td class="paramdir">[in]</td><td class="paramname"></td><td></td></tr>
   </table>
   </dd>
 </dl>
-<dl class="section return"><dt>Returns</dt><dd>Returns a typed <code>Offset</code> into the serialized data indicating where the vector is stored. </dd></dl>
 
 </div>
 </div>
-<a class="anchor" id="ab1f44cc1b130e13b41e9a80de76e25cf"></a>
+<a id="ab1f44cc1b130e13b41e9a80de76e25cf"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ab1f44cc1b130e13b41e9a80de76e25cf">&#9670;&nbsp;</a></span>CreateVectorOfSortedStructs() <span class="overload">[2/2]</span></h2>
+
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
@@ -1353,7 +1400,9 @@ template&lt;typename T &gt; </div>
 
 </div>
 </div>
-<a class="anchor" id="a2130ef232ff405eebe2e7f184ecd06e6"></a>
+<a id="a2130ef232ff405eebe2e7f184ecd06e6"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a2130ef232ff405eebe2e7f184ecd06e6">&#9670;&nbsp;</a></span>CreateVectorOfSortedTables() <span class="overload">[1/2]</span></h2>
+
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
@@ -1405,7 +1454,9 @@ template&lt;typename T &gt; </div>
 
 </div>
 </div>
-<a class="anchor" id="ac64d11c219559ea51567eab556e13135"></a>
+<a id="ac64d11c219559ea51567eab556e13135"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ac64d11c219559ea51567eab556e13135">&#9670;&nbsp;</a></span>CreateVectorOfSortedTables() <span class="overload">[2/2]</span></h2>
+
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
@@ -1446,7 +1497,9 @@ template&lt;typename T &gt; </div>
 
 </div>
 </div>
-<a class="anchor" id="a592110519a6c8db1926f1365bf2a58e6"></a>
+<a id="a592110519a6c8db1926f1365bf2a58e6"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a592110519a6c8db1926f1365bf2a58e6">&#9670;&nbsp;</a></span>CreateVectorOfStrings()</h2>
+
 <div class="memitem">
 <div class="memproto">
 <table class="mlabels">
@@ -1479,7 +1532,9 @@ template&lt;typename T &gt; </div>
 
 </div>
 </div>
-<a class="anchor" id="afede51fd9c32d146cbb1832f57c5e1b7"></a>
+<a id="afede51fd9c32d146cbb1832f57c5e1b7"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#afede51fd9c32d146cbb1832f57c5e1b7">&#9670;&nbsp;</a></span>CreateVectorOfStructs() <span class="overload">[1/4]</span></h2>
+
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
@@ -1531,7 +1586,9 @@ template&lt;typename T &gt; </div>
 
 </div>
 </div>
-<a class="anchor" id="a6e90ada59d9553636f72ce8e4a892f72"></a>
+<a id="a6e90ada59d9553636f72ce8e4a892f72"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a6e90ada59d9553636f72ce8e4a892f72">&#9670;&nbsp;</a></span>CreateVectorOfStructs() <span class="overload">[2/4]</span></h2>
+
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
@@ -1582,7 +1639,9 @@ template&lt;typename T &gt; </div>
 
 </div>
 </div>
-<a class="anchor" id="a9cc09fa59ff9732e972877cfe911c8a5"></a>
+<a id="a9cc09fa59ff9732e972877cfe911c8a5"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a9cc09fa59ff9732e972877cfe911c8a5">&#9670;&nbsp;</a></span>CreateVectorOfStructs() <span class="overload">[3/4]</span></h2>
+
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
@@ -1640,11 +1699,13 @@ template&lt;typename T , typename F , typename S &gt; </div>
 
 </div>
 </div>
-<a class="anchor" id="a8704709a2e25ad04679212ee4126b1a1"></a>
+<a id="a110c2a3298aebef1a9dfa3c44ee84f42"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a110c2a3298aebef1a9dfa3c44ee84f42">&#9670;&nbsp;</a></span>CreateVectorOfStructs() <span class="overload">[4/4]</span></h2>
+
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
-template&lt;typename T &gt; </div>
+template&lt;typename T , typename Alloc &gt; </div>
 <table class="mlabels">
   <tr>
   <td class="mlabels-left">
@@ -1652,7 +1713,7 @@ template&lt;typename T &gt; </div>
         <tr>
           <td class="memname"><a class="el" href="structflatbuffers_1_1_offset.html">Offset</a>&lt;<a class="el" href="classflatbuffers_1_1_vector.html">Vector</a>&lt;const T *&gt; &gt; flatbuffers::FlatBufferBuilder::CreateVectorOfStructs </td>
           <td>(</td>
-          <td class="paramtype">const std::vector&lt; T &gt; &amp;&#160;</td>
+          <td class="paramtype">const std::vector&lt; T, Alloc &gt; &amp;&#160;</td>
           <td class="paramname"><em>v</em></td><td>)</td>
           <td></td>
         </tr>
@@ -1673,15 +1734,16 @@ template&lt;typename T &gt; </div>
 </dl>
 <dl class="params"><dt>Parameters</dt><dd>
   <table class="params">
-    <tr><td class="paramdir">[in]</td><td class="paramname"></td><td>v A const reference to the <code>std::vector</code> of structs to serialize into the buffer as a <code>vector</code>. </td></tr>
+    <tr><td class="paramdir">[in]</td><td class="paramname"></td><td></td></tr>
   </table>
   </dd>
 </dl>
-<dl class="section return"><dt>Returns</dt><dd>Returns a typed <code>Offset</code> into the serialized data indicating where the vector is stored. </dd></dl>
 
 </div>
 </div>
-<a class="anchor" id="aa905b29dce19a1795c7bce375cf29961"></a>
+<a id="aa905b29dce19a1795c7bce375cf29961"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aa905b29dce19a1795c7bce375cf29961">&#9670;&nbsp;</a></span>DedupVtables()</h2>
+
 <div class="memitem">
 <div class="memproto">
 <table class="mlabels">
@@ -1713,7 +1775,9 @@ template&lt;typename T &gt; </div>
 
 </div>
 </div>
-<a class="anchor" id="a0c9e507b373d598b51052fab4fa34912"></a>
+<a id="a0c9e507b373d598b51052fab4fa34912"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a0c9e507b373d598b51052fab4fa34912">&#9670;&nbsp;</a></span>Finish()</h2>
+
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
@@ -1757,7 +1821,9 @@ template&lt;typename T &gt; </div>
 
 </div>
 </div>
-<a class="anchor" id="a7ba8462e408431054c99d25120326220"></a>
+<a id="a7ba8462e408431054c99d25120326220"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a7ba8462e408431054c99d25120326220">&#9670;&nbsp;</a></span>FinishSizePrefixed()</h2>
+
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
@@ -1796,7 +1862,9 @@ template&lt;typename T &gt; </div>
 
 </div>
 </div>
-<a class="anchor" id="a16a8fd46b34ad7727406c37b65b6b27a"></a>
+<a id="a16a8fd46b34ad7727406c37b65b6b27a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a16a8fd46b34ad7727406c37b65b6b27a">&#9670;&nbsp;</a></span>ForceDefaults()</h2>
+
 <div class="memitem">
 <div class="memproto">
 <table class="mlabels">
@@ -1828,7 +1896,9 @@ template&lt;typename T &gt; </div>
 
 </div>
 </div>
-<a class="anchor" id="aa1ebce1f3f46832946a95952af1e9c2b"></a>
+<a id="aa1ebce1f3f46832946a95952af1e9c2b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aa1ebce1f3f46832946a95952af1e9c2b">&#9670;&nbsp;</a></span>GetBufferMinAlignment()</h2>
+
 <div class="memitem">
 <div class="memproto">
 <table class="mlabels">
@@ -1854,7 +1924,9 @@ template&lt;typename T &gt; </div>
 
 </div>
 </div>
-<a class="anchor" id="a8dc35f792179df4ca850492c1796d8b8"></a>
+<a id="ab81ab8aa273c270b0942fd81489cad83"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ab81ab8aa273c270b0942fd81489cad83">&#9670;&nbsp;</a></span>GetBufferPointer()</h2>
+
 <div class="memitem">
 <div class="memproto">
 <table class="mlabels">
@@ -1880,7 +1952,9 @@ template&lt;typename T &gt; </div>
 
 </div>
 </div>
-<a class="anchor" id="a3f4252e9bc005ba6c700469544fdccc9"></a>
+<a id="a099810f03046139d1854d20a1c2a2e41"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a099810f03046139d1854d20a1c2a2e41">&#9670;&nbsp;</a></span>GetCurrentBufferPointer()</h2>
+
 <div class="memitem">
 <div class="memproto">
 <table class="mlabels">
@@ -1906,7 +1980,9 @@ template&lt;typename T &gt; </div>
 
 </div>
 </div>
-<a class="anchor" id="ac1bfd609f7f736e9a37cedae77448b63"></a>
+<a id="a66c8fd33ab9b3b237954c9ea38648f7f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a66c8fd33ab9b3b237954c9ea38648f7f">&#9670;&nbsp;</a></span>GetSize()</h2>
+
 <div class="memitem">
 <div class="memproto">
 <table class="mlabels">
@@ -1932,7 +2008,9 @@ template&lt;typename T &gt; </div>
 
 </div>
 </div>
-<a class="anchor" id="a5e2c3a1e47f0ab4a3a3f07a07a52fb45"></a>
+<a id="a5e2c3a1e47f0ab4a3a3f07a07a52fb45"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a5e2c3a1e47f0ab4a3a3f07a07a52fb45">&#9670;&nbsp;</a></span>Release()</h2>
+
 <div class="memitem">
 <div class="memproto">
 <table class="mlabels">
@@ -1958,7 +2036,9 @@ template&lt;typename T &gt; </div>
 
 </div>
 </div>
-<a class="anchor" id="a0e715d9019060b4b753c4e5228be56e8"></a>
+<a id="a0e715d9019060b4b753c4e5228be56e8"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a0e715d9019060b4b753c4e5228be56e8">&#9670;&nbsp;</a></span>ReleaseBufferPointer()</h2>
+
 <div class="memitem">
 <div class="memproto">
 <table class="mlabels">
diff --git a/classflatbuffers_1_1_flat_buffer_builder.js b/classflatbuffers_1_1_flat_buffer_builder.js
index 901ef27326a71f40a44ae3257cb58b7042932ddf..7895048c7e2030dcb768781b311589f8b83194b7 100644
--- a/classflatbuffers_1_1_flat_buffer_builder.js
+++ b/classflatbuffers_1_1_flat_buffer_builder.js
@@ -3,7 +3,7 @@ var classflatbuffers_1_1_flat_buffer_builder =
     [ "FieldLoc", "structflatbuffers_1_1_flat_buffer_builder_1_1_field_loc.html", "structflatbuffers_1_1_flat_buffer_builder_1_1_field_loc" ],
     [ "StringOffsetCompare", "structflatbuffers_1_1_flat_buffer_builder_1_1_string_offset_compare.html", "structflatbuffers_1_1_flat_buffer_builder_1_1_string_offset_compare" ],
     [ "StringOffsetMap", "classflatbuffers_1_1_flat_buffer_builder.html#a9190cb2d5a4324ab0c52263b834fff09", null ],
-    [ "FlatBufferBuilder", "classflatbuffers_1_1_flat_buffer_builder.html#ae4ab74f53187e6c3e6041d34e01904c4", null ],
+    [ "FlatBufferBuilder", "classflatbuffers_1_1_flat_buffer_builder.html#ab0173786ea4ec3e4ae10555639b2996c", null ],
     [ "~FlatBufferBuilder", "classflatbuffers_1_1_flat_buffer_builder.html#a01dabf5cdd6b1b2881337e1e84aa1683", null ],
     [ "FlatBufferBuilder", "classflatbuffers_1_1_flat_buffer_builder.html#ace4606286a25d3fedfb1532934d4cea1", null ],
     [ "Clear", "classflatbuffers_1_1_flat_buffer_builder.html#ae94b94ba71ea0aeb2d9a98c43b713412", null ],
@@ -13,6 +13,7 @@ var classflatbuffers_1_1_flat_buffer_builder =
     [ "CreateSharedString", "classflatbuffers_1_1_flat_buffer_builder.html#a840b769fbb4148f97d3eed266e4690c3", null ],
     [ "CreateString", "classflatbuffers_1_1_flat_buffer_builder.html#aec6f9df2a0366b540b24822414d92cbe", null ],
     [ "CreateString", "classflatbuffers_1_1_flat_buffer_builder.html#aad93d113ac24e86ed04b5236b3f4c0c5", null ],
+    [ "CreateString", "classflatbuffers_1_1_flat_buffer_builder.html#ac51db9083ac815eb81420b6d51f42154", null ],
     [ "CreateString", "classflatbuffers_1_1_flat_buffer_builder.html#a8c3af55e64f5cda9aefa38ac5287ef9f", null ],
     [ "CreateString", "classflatbuffers_1_1_flat_buffer_builder.html#ac0b6a1c5d949f20ad84367fc0f9e1506", null ],
     [ "CreateString", "classflatbuffers_1_1_flat_buffer_builder.html#ab77d800e77fa76bc758a6c399fd37685", null ],
@@ -37,16 +38,16 @@ var classflatbuffers_1_1_flat_buffer_builder =
     [ "CreateVectorOfStructs", "classflatbuffers_1_1_flat_buffer_builder.html#afede51fd9c32d146cbb1832f57c5e1b7", null ],
     [ "CreateVectorOfStructs", "classflatbuffers_1_1_flat_buffer_builder.html#a6e90ada59d9553636f72ce8e4a892f72", null ],
     [ "CreateVectorOfStructs", "classflatbuffers_1_1_flat_buffer_builder.html#a9cc09fa59ff9732e972877cfe911c8a5", null ],
-    [ "CreateVectorOfStructs", "classflatbuffers_1_1_flat_buffer_builder.html#a8704709a2e25ad04679212ee4126b1a1", null ],
+    [ "CreateVectorOfStructs", "classflatbuffers_1_1_flat_buffer_builder.html#a110c2a3298aebef1a9dfa3c44ee84f42", null ],
     [ "DedupVtables", "classflatbuffers_1_1_flat_buffer_builder.html#aa905b29dce19a1795c7bce375cf29961", null ],
     [ "Finish", "classflatbuffers_1_1_flat_buffer_builder.html#a0c9e507b373d598b51052fab4fa34912", null ],
     [ "Finish", "classflatbuffers_1_1_flat_buffer_builder.html#a2e4de5642bad6dcd01eb7e7eaf719c89", null ],
     [ "FinishSizePrefixed", "classflatbuffers_1_1_flat_buffer_builder.html#a7ba8462e408431054c99d25120326220", null ],
     [ "ForceDefaults", "classflatbuffers_1_1_flat_buffer_builder.html#a16a8fd46b34ad7727406c37b65b6b27a", null ],
     [ "GetBufferMinAlignment", "classflatbuffers_1_1_flat_buffer_builder.html#aa1ebce1f3f46832946a95952af1e9c2b", null ],
-    [ "GetBufferPointer", "classflatbuffers_1_1_flat_buffer_builder.html#a8dc35f792179df4ca850492c1796d8b8", null ],
-    [ "GetCurrentBufferPointer", "classflatbuffers_1_1_flat_buffer_builder.html#a3f4252e9bc005ba6c700469544fdccc9", null ],
-    [ "GetSize", "classflatbuffers_1_1_flat_buffer_builder.html#ac1bfd609f7f736e9a37cedae77448b63", null ],
+    [ "GetBufferPointer", "classflatbuffers_1_1_flat_buffer_builder.html#ab81ab8aa273c270b0942fd81489cad83", null ],
+    [ "GetCurrentBufferPointer", "classflatbuffers_1_1_flat_buffer_builder.html#a099810f03046139d1854d20a1c2a2e41", null ],
+    [ "GetSize", "classflatbuffers_1_1_flat_buffer_builder.html#a66c8fd33ab9b3b237954c9ea38648f7f", null ],
     [ "operator=", "classflatbuffers_1_1_flat_buffer_builder.html#a376bb6858e8b1baab9a437f3f9f0b334", null ],
     [ "Release", "classflatbuffers_1_1_flat_buffer_builder.html#a5e2c3a1e47f0ab4a3a3f07a07a52fb45", null ],
     [ "ReleaseBufferPointer", "classflatbuffers_1_1_flat_buffer_builder.html#a0e715d9019060b4b753c4e5228be56e8", null ],
@@ -59,7 +60,6 @@ var classflatbuffers_1_1_flat_buffer_builder =
     [ "max_voffset_", "classflatbuffers_1_1_flat_buffer_builder.html#a5e604e3caf95fd0f0e74545af5a8420a", null ],
     [ "minalign_", "classflatbuffers_1_1_flat_buffer_builder.html#ab9942e76ff29eefc702b006b19ce02ba", null ],
     [ "nested", "classflatbuffers_1_1_flat_buffer_builder.html#add6d502accf426e35f91f2539baff6b2", null ],
-    [ "offsetbuf_", "classflatbuffers_1_1_flat_buffer_builder.html#adda5db5eceb1465e9a71ddc012d70839", null ],
-    [ "string_pool", "classflatbuffers_1_1_flat_buffer_builder.html#aa7e64b654cef62869c3dfd27def92e5d", null ],
-    [ "vtables_", "classflatbuffers_1_1_flat_buffer_builder.html#a17c05ea503f311eaf6e56a1be3ac1c49", null ]
+    [ "num_field_loc", "classflatbuffers_1_1_flat_buffer_builder.html#adb473c5fd1305213b91eecaa779ecafa", null ],
+    [ "string_pool", "classflatbuffers_1_1_flat_buffer_builder.html#aa7e64b654cef62869c3dfd27def92e5d", null ]
 ];
\ No newline at end of file
diff --git a/classflatbuffers_1_1_vector-members.html b/classflatbuffers_1_1_vector-members.html
index 46ea30fb5c261c1ceb829b8d0fc40cafc8715876..abdf8cab4c38ad28d3f1c40aad3b2f21d7eaddd5 100644
--- a/classflatbuffers_1_1_vector-members.html
+++ b/classflatbuffers_1_1_vector-members.html
@@ -4,23 +4,21 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <title>FlatBuffers: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
 <link href="navtree.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
 <script type="text/javascript" src="navtree.js"></script>
 <script type="text/javascript">
   $(document).ready(initResizable);
-  $(window).load(resizeHeight);
 </script>
 <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
 <script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
-  $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,500italic,700,700italic|Roboto+Mono:400,700" rel="stylesheet">
 <link href="style.css" rel="stylesheet" type="text/css"/>
@@ -46,53 +44,19 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.7 -->
+<!-- Generated by Doxygen 1.8.13 -->
 <script type="text/javascript">
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </script>
-  <div id="navrow1" class="tabs">
-    <ul class="tablist">
-      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
-      <li><a href="usergroup0.html"><span>Programmer's&#160;Guide</span></a></li>
-      <li><a href="flatbuffers_support.html"><span>Platform&#160;/&#160;Language&#160;/&#160;Feature&#160;support</span></a></li>
-      <li><a href="flatbuffers_benchmarks.html"><span>Benchmarks</span></a></li>
-      <li><a href="flatbuffers_white_paper.html"><span>FlatBuffers&#160;white&#160;paper</span></a></li>
-      <li><a href="flatbuffers_internals.html"><span>FlatBuffers&#160;internals</span></a></li>
-      <li><a href="flatbuffers_grammar.html"><span>Grammar&#160;of&#160;the&#160;schema&#160;language</span></a></li>
-      <li class="current"><a href="usergroup2.html"><span>API&#160;Reference</span></a></li>
-      <li><a href="contributing.html"><span>Contributing</span></a></li>
-      <li>
-        <div id="MSearchBox" class="MSearchBoxInactive">
-        <span class="left">
-          <img id="MSearchSelect" src="search/mag_sel.png"
-               onmouseover="return searchBox.OnSearchSelectShow()"
-               onmouseout="return searchBox.OnSearchSelectHide()"
-               alt=""/>
-          <input type="text" id="MSearchField" value="Search" accesskey="S"
-               onfocus="searchBox.OnSearchFieldFocus(true)" 
-               onblur="searchBox.OnSearchFieldFocus(false)" 
-               onkeyup="searchBox.OnSearchFieldChange(event)"/>
-          </span><span class="right">
-            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
-          </span>
-        </div>
-      </li>
-    </ul>
-  </div>
-  <div id="navrow2" class="tabs2">
-    <ul class="tablist">
-      <li><a href="modules.html"><span>APIs</span></a></li>
-      <li class="current"><a href="annotated.html"><span>Class&#160;List</span></a></li>
-    </ul>
-  </div>
-  <div id="navrow2" class="tabs2">
-    <ul class="tablist">
-      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
-      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
-      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
-      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
-    </ul>
-  </div>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -113,7 +77,7 @@ $(document).ready(function(){initNavTree('classflatbuffers_1_1_vector.html','');
      onmouseover="return searchBox.OnSearchSelectShow()"
      onmouseout="return searchBox.OnSearchSelectHide()"
      onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Properties</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+</div>
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
@@ -131,30 +95,30 @@ $(document).ready(function(){initNavTree('classflatbuffers_1_1_vector.html','');
 <p>This is the complete list of members for <a class="el" href="classflatbuffers_1_1_vector.html">flatbuffers::Vector&lt; T &gt;</a>, including all inherited members.</p>
 <table class="directory">
   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>begin</b>() (defined in <a class="el" href="classflatbuffers_1_1_vector.html">flatbuffers::Vector&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_vector.html">flatbuffers::Vector&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>begin</b>() const  (defined in <a class="el" href="classflatbuffers_1_1_vector.html">flatbuffers::Vector&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_vector.html">flatbuffers::Vector&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>begin</b>() const (defined in <a class="el" href="classflatbuffers_1_1_vector.html">flatbuffers::Vector&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_vector.html">flatbuffers::Vector&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>const_iterator</b> typedef (defined in <a class="el" href="classflatbuffers_1_1_vector.html">flatbuffers::Vector&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_vector.html">flatbuffers::Vector&lt; T &gt;</a></td><td class="entry"></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>Data</b>() const  (defined in <a class="el" href="classflatbuffers_1_1_vector.html">flatbuffers::Vector&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_vector.html">flatbuffers::Vector&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>Data</b>() const (defined in <a class="el" href="classflatbuffers_1_1_vector.html">flatbuffers::Vector&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_vector.html">flatbuffers::Vector&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Data</b>() (defined in <a class="el" href="classflatbuffers_1_1_vector.html">flatbuffers::Vector&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_vector.html">flatbuffers::Vector&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>data</b>() const  (defined in <a class="el" href="classflatbuffers_1_1_vector.html">flatbuffers::Vector&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_vector.html">flatbuffers::Vector&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>data</b>() const (defined in <a class="el" href="classflatbuffers_1_1_vector.html">flatbuffers::Vector&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_vector.html">flatbuffers::Vector&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>data</b>() (defined in <a class="el" href="classflatbuffers_1_1_vector.html">flatbuffers::Vector&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_vector.html">flatbuffers::Vector&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr bgcolor="#f0f0f0"><td class="entry"><b>end</b>() (defined in <a class="el" href="classflatbuffers_1_1_vector.html">flatbuffers::Vector&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_vector.html">flatbuffers::Vector&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>end</b>() const  (defined in <a class="el" href="classflatbuffers_1_1_vector.html">flatbuffers::Vector&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_vector.html">flatbuffers::Vector&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>Get</b>(uoffset_t i) const  (defined in <a class="el" href="classflatbuffers_1_1_vector.html">flatbuffers::Vector&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_vector.html">flatbuffers::Vector&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>GetAs</b>(uoffset_t i) const  (defined in <a class="el" href="classflatbuffers_1_1_vector.html">flatbuffers::Vector&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_vector.html">flatbuffers::Vector&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>GetAsString</b>(uoffset_t i) const  (defined in <a class="el" href="classflatbuffers_1_1_vector.html">flatbuffers::Vector&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_vector.html">flatbuffers::Vector&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>GetEnum</b>(uoffset_t i) const  (defined in <a class="el" href="classflatbuffers_1_1_vector.html">flatbuffers::Vector&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_vector.html">flatbuffers::Vector&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>GetMutableObject</b>(uoffset_t i) const  (defined in <a class="el" href="classflatbuffers_1_1_vector.html">flatbuffers::Vector&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_vector.html">flatbuffers::Vector&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>GetStructFromOffset</b>(size_t o) const  (defined in <a class="el" href="classflatbuffers_1_1_vector.html">flatbuffers::Vector&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_vector.html">flatbuffers::Vector&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>end</b>() const (defined in <a class="el" href="classflatbuffers_1_1_vector.html">flatbuffers::Vector&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_vector.html">flatbuffers::Vector&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>Get</b>(uoffset_t i) const (defined in <a class="el" href="classflatbuffers_1_1_vector.html">flatbuffers::Vector&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_vector.html">flatbuffers::Vector&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>GetAs</b>(uoffset_t i) const (defined in <a class="el" href="classflatbuffers_1_1_vector.html">flatbuffers::Vector&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_vector.html">flatbuffers::Vector&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>GetAsString</b>(uoffset_t i) const (defined in <a class="el" href="classflatbuffers_1_1_vector.html">flatbuffers::Vector&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_vector.html">flatbuffers::Vector&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>GetEnum</b>(uoffset_t i) const (defined in <a class="el" href="classflatbuffers_1_1_vector.html">flatbuffers::Vector&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_vector.html">flatbuffers::Vector&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>GetMutableObject</b>(uoffset_t i) const (defined in <a class="el" href="classflatbuffers_1_1_vector.html">flatbuffers::Vector&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_vector.html">flatbuffers::Vector&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>GetStructFromOffset</b>(size_t o) const (defined in <a class="el" href="classflatbuffers_1_1_vector.html">flatbuffers::Vector&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_vector.html">flatbuffers::Vector&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr bgcolor="#f0f0f0"><td class="entry"><b>iterator</b> typedef (defined in <a class="el" href="classflatbuffers_1_1_vector.html">flatbuffers::Vector&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_vector.html">flatbuffers::Vector&lt; T &gt;</a></td><td class="entry"></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Length</b>() const  (defined in <a class="el" href="classflatbuffers_1_1_vector.html">flatbuffers::Vector&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_vector.html">flatbuffers::Vector&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Length</b>() const (defined in <a class="el" href="classflatbuffers_1_1_vector.html">flatbuffers::Vector&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_vector.html">flatbuffers::Vector&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr bgcolor="#f0f0f0"><td class="entry"><b>length_</b> (defined in <a class="el" href="classflatbuffers_1_1_vector.html">flatbuffers::Vector&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_vector.html">flatbuffers::Vector&lt; T &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>LookupByKey</b>(K key) const  (defined in <a class="el" href="classflatbuffers_1_1_vector.html">flatbuffers::Vector&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_vector.html">flatbuffers::Vector&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>LookupByKey</b>(K key) const (defined in <a class="el" href="classflatbuffers_1_1_vector.html">flatbuffers::Vector&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_vector.html">flatbuffers::Vector&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr bgcolor="#f0f0f0"><td class="entry"><b>mutable_return_type</b> typedef (defined in <a class="el" href="classflatbuffers_1_1_vector.html">flatbuffers::Vector&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_vector.html">flatbuffers::Vector&lt; T &gt;</a></td><td class="entry"></td></tr>
   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Mutate</b>(uoffset_t i, const T &amp;val) (defined in <a class="el" href="classflatbuffers_1_1_vector.html">flatbuffers::Vector&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_vector.html">flatbuffers::Vector&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr bgcolor="#f0f0f0"><td class="entry"><b>MutateOffset</b>(uoffset_t i, const uint8_t *val) (defined in <a class="el" href="classflatbuffers_1_1_vector.html">flatbuffers::Vector&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_vector.html">flatbuffers::Vector&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>operator[]</b>(uoffset_t i) const  (defined in <a class="el" href="classflatbuffers_1_1_vector.html">flatbuffers::Vector&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_vector.html">flatbuffers::Vector&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>operator[]</b>(uoffset_t i) const (defined in <a class="el" href="classflatbuffers_1_1_vector.html">flatbuffers::Vector&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_vector.html">flatbuffers::Vector&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr bgcolor="#f0f0f0"><td class="entry"><b>return_type</b> typedef (defined in <a class="el" href="classflatbuffers_1_1_vector.html">flatbuffers::Vector&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_vector.html">flatbuffers::Vector&lt; T &gt;</a></td><td class="entry"></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>size</b>() const  (defined in <a class="el" href="classflatbuffers_1_1_vector.html">flatbuffers::Vector&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_vector.html">flatbuffers::Vector&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>size</b>() const (defined in <a class="el" href="classflatbuffers_1_1_vector.html">flatbuffers::Vector&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_vector.html">flatbuffers::Vector&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr bgcolor="#f0f0f0"><td class="entry"><b>Vector</b>() (defined in <a class="el" href="classflatbuffers_1_1_vector.html">flatbuffers::Vector&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_vector.html">flatbuffers::Vector&lt; T &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
 </table></div><!-- contents -->
 </div><!-- doc-content -->
diff --git a/classflatbuffers_1_1_vector.html b/classflatbuffers_1_1_vector.html
index d0ceef72ff655e50cafe47a71e959d18ad489967..693201e5dfd280d01eb63b170fbe86a7215254f1 100644
--- a/classflatbuffers_1_1_vector.html
+++ b/classflatbuffers_1_1_vector.html
@@ -4,23 +4,21 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <title>FlatBuffers: flatbuffers::Vector&lt; T &gt; Class Template Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
 <link href="navtree.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
 <script type="text/javascript" src="navtree.js"></script>
 <script type="text/javascript">
   $(document).ready(initResizable);
-  $(window).load(resizeHeight);
 </script>
 <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
 <script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
-  $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,500italic,700,700italic|Roboto+Mono:400,700" rel="stylesheet">
 <link href="style.css" rel="stylesheet" type="text/css"/>
@@ -46,53 +44,19 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.7 -->
+<!-- Generated by Doxygen 1.8.13 -->
 <script type="text/javascript">
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </script>
-  <div id="navrow1" class="tabs">
-    <ul class="tablist">
-      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
-      <li><a href="usergroup0.html"><span>Programmer's&#160;Guide</span></a></li>
-      <li><a href="flatbuffers_support.html"><span>Platform&#160;/&#160;Language&#160;/&#160;Feature&#160;support</span></a></li>
-      <li><a href="flatbuffers_benchmarks.html"><span>Benchmarks</span></a></li>
-      <li><a href="flatbuffers_white_paper.html"><span>FlatBuffers&#160;white&#160;paper</span></a></li>
-      <li><a href="flatbuffers_internals.html"><span>FlatBuffers&#160;internals</span></a></li>
-      <li><a href="flatbuffers_grammar.html"><span>Grammar&#160;of&#160;the&#160;schema&#160;language</span></a></li>
-      <li class="current"><a href="usergroup2.html"><span>API&#160;Reference</span></a></li>
-      <li><a href="contributing.html"><span>Contributing</span></a></li>
-      <li>
-        <div id="MSearchBox" class="MSearchBoxInactive">
-        <span class="left">
-          <img id="MSearchSelect" src="search/mag_sel.png"
-               onmouseover="return searchBox.OnSearchSelectShow()"
-               onmouseout="return searchBox.OnSearchSelectHide()"
-               alt=""/>
-          <input type="text" id="MSearchField" value="Search" accesskey="S"
-               onfocus="searchBox.OnSearchFieldFocus(true)" 
-               onblur="searchBox.OnSearchFieldFocus(false)" 
-               onkeyup="searchBox.OnSearchFieldChange(event)"/>
-          </span><span class="right">
-            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
-          </span>
-        </div>
-      </li>
-    </ul>
-  </div>
-  <div id="navrow2" class="tabs2">
-    <ul class="tablist">
-      <li><a href="modules.html"><span>APIs</span></a></li>
-      <li class="current"><a href="annotated.html"><span>Class&#160;List</span></a></li>
-    </ul>
-  </div>
-  <div id="navrow2" class="tabs2">
-    <ul class="tablist">
-      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
-      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
-      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
-      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
-    </ul>
-  </div>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -113,7 +77,7 @@ $(document).ready(function(){initNavTree('classflatbuffers_1_1_vector.html','');
      onmouseover="return searchBox.OnSearchSelectShow()"
      onmouseout="return searchBox.OnSearchSelectHide()"
      onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Properties</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+</div>
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
@@ -135,94 +99,88 @@ $(document).ready(function(){initNavTree('classflatbuffers_1_1_vector.html','');
 <table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
 Public Types</h2></td></tr>
-<tr class="memitem:a66212ee5146550ed418a358a8b756dc6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a66212ee5146550ed418a358a8b756dc6"></a>
-typedef <a class="el" href="structflatbuffers_1_1_vector_iterator.html">VectorIterator</a>&lt; T, <br class="typebreak" />
-typename <a class="el" href="structflatbuffers_1_1_indirect_helper.html">IndirectHelper</a>&lt; T &gt;<br class="typebreak" />
-::return_type &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>const_iterator</b></td></tr>
+<tr class="memitem:a66212ee5146550ed418a358a8b756dc6"><td class="memItemLeft" align="right" valign="top"><a id="a66212ee5146550ed418a358a8b756dc6"></a>
+typedef <a class="el" href="structflatbuffers_1_1_vector_iterator.html">VectorIterator</a>&lt; T, typename <a class="el" href="structflatbuffers_1_1_indirect_helper.html">IndirectHelper</a>&lt; T &gt;::return_type &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>const_iterator</b></td></tr>
 <tr class="separator:a66212ee5146550ed418a358a8b756dc6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a0eeca1798d12e29e1003e6f831668986"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0eeca1798d12e29e1003e6f831668986"></a>
-typedef <a class="el" href="structflatbuffers_1_1_vector_iterator.html">VectorIterator</a>&lt; T, <br class="typebreak" />
-typename <a class="el" href="structflatbuffers_1_1_indirect_helper.html">IndirectHelper</a>&lt; T &gt;<br class="typebreak" />
-::mutable_return_type &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>iterator</b></td></tr>
+<tr class="memitem:a0eeca1798d12e29e1003e6f831668986"><td class="memItemLeft" align="right" valign="top"><a id="a0eeca1798d12e29e1003e6f831668986"></a>
+typedef <a class="el" href="structflatbuffers_1_1_vector_iterator.html">VectorIterator</a>&lt; T, typename <a class="el" href="structflatbuffers_1_1_indirect_helper.html">IndirectHelper</a>&lt; T &gt;::mutable_return_type &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>iterator</b></td></tr>
 <tr class="separator:a0eeca1798d12e29e1003e6f831668986"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a7703f4b1cbb1f99087b48cd58abb740e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7703f4b1cbb1f99087b48cd58abb740e"></a>
-typedef <a class="el" href="structflatbuffers_1_1_indirect_helper.html">IndirectHelper</a>&lt; T &gt;<br class="typebreak" />
-::mutable_return_type&#160;</td><td class="memItemRight" valign="bottom"><b>mutable_return_type</b></td></tr>
+<tr class="memitem:a7703f4b1cbb1f99087b48cd58abb740e"><td class="memItemLeft" align="right" valign="top"><a id="a7703f4b1cbb1f99087b48cd58abb740e"></a>
+typedef <a class="el" href="structflatbuffers_1_1_indirect_helper.html">IndirectHelper</a>&lt; T &gt;::mutable_return_type&#160;</td><td class="memItemRight" valign="bottom"><b>mutable_return_type</b></td></tr>
 <tr class="separator:a7703f4b1cbb1f99087b48cd58abb740e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a28dab085738663f5c866cf6570bb6289"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a28dab085738663f5c866cf6570bb6289"></a>
-typedef <a class="el" href="structflatbuffers_1_1_indirect_helper.html">IndirectHelper</a>&lt; T &gt;<br class="typebreak" />
-::return_type&#160;</td><td class="memItemRight" valign="bottom"><b>return_type</b></td></tr>
+<tr class="memitem:a28dab085738663f5c866cf6570bb6289"><td class="memItemLeft" align="right" valign="top"><a id="a28dab085738663f5c866cf6570bb6289"></a>
+typedef <a class="el" href="structflatbuffers_1_1_indirect_helper.html">IndirectHelper</a>&lt; T &gt;::return_type&#160;</td><td class="memItemRight" valign="bottom"><b>return_type</b></td></tr>
 <tr class="separator:a28dab085738663f5c866cf6570bb6289"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
 Public Member Functions</h2></td></tr>
-<tr class="memitem:ac1ab40cdffad6cd50c222fe42c51437b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac1ab40cdffad6cd50c222fe42c51437b"></a>
+<tr class="memitem:ac1ab40cdffad6cd50c222fe42c51437b"><td class="memItemLeft" align="right" valign="top"><a id="ac1ab40cdffad6cd50c222fe42c51437b"></a>
 <a class="el" href="structflatbuffers_1_1_vector_iterator.html">iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><b>begin</b> ()</td></tr>
 <tr class="separator:ac1ab40cdffad6cd50c222fe42c51437b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a248da154992320d3ebf75cba205628eb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a248da154992320d3ebf75cba205628eb"></a>
-<a class="el" href="structflatbuffers_1_1_vector_iterator.html">const_iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><b>begin</b> () const </td></tr>
-<tr class="separator:a248da154992320d3ebf75cba205628eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a3a78e000a9301e5310adc014c36137cd"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3a78e000a9301e5310adc014c36137cd"></a>
-const uint8_t *&#160;</td><td class="memItemRight" valign="bottom"><b>Data</b> () const </td></tr>
-<tr class="separator:a3a78e000a9301e5310adc014c36137cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a0ab8113b331fb069dbaa0a108f6077e1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0ab8113b331fb069dbaa0a108f6077e1"></a>
+<tr class="memitem:ac4633f563a5a52980ff0b56fa683a4de"><td class="memItemLeft" align="right" valign="top"><a id="ac4633f563a5a52980ff0b56fa683a4de"></a>
+<a class="el" href="structflatbuffers_1_1_vector_iterator.html">const_iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><b>begin</b> () const</td></tr>
+<tr class="separator:ac4633f563a5a52980ff0b56fa683a4de"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa754e17cb08c36fb8442784c6bc442da"><td class="memItemLeft" align="right" valign="top"><a id="aa754e17cb08c36fb8442784c6bc442da"></a>
+const uint8_t *&#160;</td><td class="memItemRight" valign="bottom"><b>Data</b> () const</td></tr>
+<tr class="separator:aa754e17cb08c36fb8442784c6bc442da"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0ab8113b331fb069dbaa0a108f6077e1"><td class="memItemLeft" align="right" valign="top"><a id="a0ab8113b331fb069dbaa0a108f6077e1"></a>
 uint8_t *&#160;</td><td class="memItemRight" valign="bottom"><b>Data</b> ()</td></tr>
 <tr class="separator:a0ab8113b331fb069dbaa0a108f6077e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a417d1d01e6d7580042aa6bd5eb35fadd"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a417d1d01e6d7580042aa6bd5eb35fadd"></a>
-const T *&#160;</td><td class="memItemRight" valign="bottom"><b>data</b> () const </td></tr>
-<tr class="separator:a417d1d01e6d7580042aa6bd5eb35fadd"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a874b185e7dec18bb24b1f0ee42afb7cb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a874b185e7dec18bb24b1f0ee42afb7cb"></a>
+<tr class="memitem:ae8e4163ff0781720c5ddb3a6f625d435"><td class="memItemLeft" align="right" valign="top"><a id="ae8e4163ff0781720c5ddb3a6f625d435"></a>
+const T *&#160;</td><td class="memItemRight" valign="bottom"><b>data</b> () const</td></tr>
+<tr class="separator:ae8e4163ff0781720c5ddb3a6f625d435"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a874b185e7dec18bb24b1f0ee42afb7cb"><td class="memItemLeft" align="right" valign="top"><a id="a874b185e7dec18bb24b1f0ee42afb7cb"></a>
 T *&#160;</td><td class="memItemRight" valign="bottom"><b>data</b> ()</td></tr>
 <tr class="separator:a874b185e7dec18bb24b1f0ee42afb7cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a53e9c0cb1d27e4bd355034dbd43f0127"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a53e9c0cb1d27e4bd355034dbd43f0127"></a>
+<tr class="memitem:a53e9c0cb1d27e4bd355034dbd43f0127"><td class="memItemLeft" align="right" valign="top"><a id="a53e9c0cb1d27e4bd355034dbd43f0127"></a>
 <a class="el" href="structflatbuffers_1_1_vector_iterator.html">iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><b>end</b> ()</td></tr>
 <tr class="separator:a53e9c0cb1d27e4bd355034dbd43f0127"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:afb74addfd0fd7ae205c02ebf33d25ea2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="afb74addfd0fd7ae205c02ebf33d25ea2"></a>
-<a class="el" href="structflatbuffers_1_1_vector_iterator.html">const_iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><b>end</b> () const </td></tr>
-<tr class="separator:afb74addfd0fd7ae205c02ebf33d25ea2"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a06d6b1b963b1d738d74afb1cd7ed973c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a06d6b1b963b1d738d74afb1cd7ed973c"></a>
-return_type&#160;</td><td class="memItemRight" valign="bottom"><b>Get</b> (uoffset_t i) const </td></tr>
-<tr class="separator:a06d6b1b963b1d738d74afb1cd7ed973c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a4155ce66380a2cb863e005164ce8ec33"><td class="memTemplParams" colspan="2"><a class="anchor" id="a4155ce66380a2cb863e005164ce8ec33"></a>
+<tr class="memitem:a9fcfb2e218f49d6d66a8b4a22aa58755"><td class="memItemLeft" align="right" valign="top"><a id="a9fcfb2e218f49d6d66a8b4a22aa58755"></a>
+<a class="el" href="structflatbuffers_1_1_vector_iterator.html">const_iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><b>end</b> () const</td></tr>
+<tr class="separator:a9fcfb2e218f49d6d66a8b4a22aa58755"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0c322798bd0cebd2d20b0b0f92de2f9b"><td class="memItemLeft" align="right" valign="top"><a id="a0c322798bd0cebd2d20b0b0f92de2f9b"></a>
+return_type&#160;</td><td class="memItemRight" valign="bottom"><b>Get</b> (uoffset_t i) const</td></tr>
+<tr class="separator:a0c322798bd0cebd2d20b0b0f92de2f9b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a36bbc83839910913cb0dd0699b1cccf7"><td class="memTemplParams" colspan="2"><a id="a36bbc83839910913cb0dd0699b1cccf7"></a>
 template&lt;typename U &gt; </td></tr>
-<tr class="memitem:a4155ce66380a2cb863e005164ce8ec33"><td class="memTemplItemLeft" align="right" valign="top">const U *&#160;</td><td class="memTemplItemRight" valign="bottom"><b>GetAs</b> (uoffset_t i) const </td></tr>
-<tr class="separator:a4155ce66380a2cb863e005164ce8ec33"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a92d04847cc257e3ec9c75b7514988f13"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a92d04847cc257e3ec9c75b7514988f13"></a>
-const <a class="el" href="structflatbuffers_1_1_string.html">String</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>GetAsString</b> (uoffset_t i) const </td></tr>
-<tr class="separator:a92d04847cc257e3ec9c75b7514988f13"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a4aab53d31e0f3048fceeee9658efdf41"><td class="memTemplParams" colspan="2"><a class="anchor" id="a4aab53d31e0f3048fceeee9658efdf41"></a>
+<tr class="memitem:a36bbc83839910913cb0dd0699b1cccf7"><td class="memTemplItemLeft" align="right" valign="top">const U *&#160;</td><td class="memTemplItemRight" valign="bottom"><b>GetAs</b> (uoffset_t i) const</td></tr>
+<tr class="separator:a36bbc83839910913cb0dd0699b1cccf7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a161e5fb2aa923fbf2ce210ceea785942"><td class="memItemLeft" align="right" valign="top"><a id="a161e5fb2aa923fbf2ce210ceea785942"></a>
+const <a class="el" href="structflatbuffers_1_1_string.html">String</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>GetAsString</b> (uoffset_t i) const</td></tr>
+<tr class="separator:a161e5fb2aa923fbf2ce210ceea785942"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a22b4449883dc8e24e87cde27839294c4"><td class="memTemplParams" colspan="2"><a id="a22b4449883dc8e24e87cde27839294c4"></a>
 template&lt;typename E &gt; </td></tr>
-<tr class="memitem:a4aab53d31e0f3048fceeee9658efdf41"><td class="memTemplItemLeft" align="right" valign="top">E&#160;</td><td class="memTemplItemRight" valign="bottom"><b>GetEnum</b> (uoffset_t i) const </td></tr>
-<tr class="separator:a4aab53d31e0f3048fceeee9658efdf41"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ab0a55bc4f498fbbd81efc47f3435be97"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab0a55bc4f498fbbd81efc47f3435be97"></a>
-mutable_return_type&#160;</td><td class="memItemRight" valign="bottom"><b>GetMutableObject</b> (uoffset_t i) const </td></tr>
-<tr class="separator:ab0a55bc4f498fbbd81efc47f3435be97"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a39668795e4e5462568cf985291a27f21"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a39668795e4e5462568cf985291a27f21"></a>
-const void *&#160;</td><td class="memItemRight" valign="bottom"><b>GetStructFromOffset</b> (size_t o) const </td></tr>
-<tr class="separator:a39668795e4e5462568cf985291a27f21"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aa2372140c6a4331774fe15dff81d1d7b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa2372140c6a4331774fe15dff81d1d7b"></a>
-uoffset_t&#160;</td><td class="memItemRight" valign="bottom"><b>Length</b> () const </td></tr>
-<tr class="separator:aa2372140c6a4331774fe15dff81d1d7b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a88a9fb17715f2845e3aebd4193007d61"><td class="memTemplParams" colspan="2"><a class="anchor" id="a88a9fb17715f2845e3aebd4193007d61"></a>
+<tr class="memitem:a22b4449883dc8e24e87cde27839294c4"><td class="memTemplItemLeft" align="right" valign="top">E&#160;</td><td class="memTemplItemRight" valign="bottom"><b>GetEnum</b> (uoffset_t i) const</td></tr>
+<tr class="separator:a22b4449883dc8e24e87cde27839294c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad806c60362e99576ec5706aef30c2a67"><td class="memItemLeft" align="right" valign="top"><a id="ad806c60362e99576ec5706aef30c2a67"></a>
+mutable_return_type&#160;</td><td class="memItemRight" valign="bottom"><b>GetMutableObject</b> (uoffset_t i) const</td></tr>
+<tr class="separator:ad806c60362e99576ec5706aef30c2a67"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1dc52eb3974e0484a5421752589d436b"><td class="memItemLeft" align="right" valign="top"><a id="a1dc52eb3974e0484a5421752589d436b"></a>
+const void *&#160;</td><td class="memItemRight" valign="bottom"><b>GetStructFromOffset</b> (size_t o) const</td></tr>
+<tr class="separator:a1dc52eb3974e0484a5421752589d436b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7ad86e7c749fd750a4e506439a358b06"><td class="memItemLeft" align="right" valign="top"><a id="a7ad86e7c749fd750a4e506439a358b06"></a>
+uoffset_t&#160;</td><td class="memItemRight" valign="bottom"><b>Length</b> () const</td></tr>
+<tr class="separator:a7ad86e7c749fd750a4e506439a358b06"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abf919e27aa3e9b60ac30386972c94e65"><td class="memTemplParams" colspan="2"><a id="abf919e27aa3e9b60ac30386972c94e65"></a>
 template&lt;typename K &gt; </td></tr>
-<tr class="memitem:a88a9fb17715f2845e3aebd4193007d61"><td class="memTemplItemLeft" align="right" valign="top">return_type&#160;</td><td class="memTemplItemRight" valign="bottom"><b>LookupByKey</b> (K key) const </td></tr>
-<tr class="separator:a88a9fb17715f2845e3aebd4193007d61"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a8342962f2f9d5e872c90abdeaea8d24e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8342962f2f9d5e872c90abdeaea8d24e"></a>
+<tr class="memitem:abf919e27aa3e9b60ac30386972c94e65"><td class="memTemplItemLeft" align="right" valign="top">return_type&#160;</td><td class="memTemplItemRight" valign="bottom"><b>LookupByKey</b> (K key) const</td></tr>
+<tr class="separator:abf919e27aa3e9b60ac30386972c94e65"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8342962f2f9d5e872c90abdeaea8d24e"><td class="memItemLeft" align="right" valign="top"><a id="a8342962f2f9d5e872c90abdeaea8d24e"></a>
 void&#160;</td><td class="memItemRight" valign="bottom"><b>Mutate</b> (uoffset_t i, const T &amp;val)</td></tr>
 <tr class="separator:a8342962f2f9d5e872c90abdeaea8d24e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a29803cd584a620bf076a69b6e97ecf5c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a29803cd584a620bf076a69b6e97ecf5c"></a>
+<tr class="memitem:a29803cd584a620bf076a69b6e97ecf5c"><td class="memItemLeft" align="right" valign="top"><a id="a29803cd584a620bf076a69b6e97ecf5c"></a>
 void&#160;</td><td class="memItemRight" valign="bottom"><b>MutateOffset</b> (uoffset_t i, const uint8_t *val)</td></tr>
 <tr class="separator:a29803cd584a620bf076a69b6e97ecf5c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a7f62ee2a80431226cf14dd7348613f35"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7f62ee2a80431226cf14dd7348613f35"></a>
-return_type&#160;</td><td class="memItemRight" valign="bottom"><b>operator[]</b> (uoffset_t i) const </td></tr>
-<tr class="separator:a7f62ee2a80431226cf14dd7348613f35"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a3aa5f37912192c5adf734ed24145174d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3aa5f37912192c5adf734ed24145174d"></a>
-uoffset_t&#160;</td><td class="memItemRight" valign="bottom"><b>size</b> () const </td></tr>
-<tr class="separator:a3aa5f37912192c5adf734ed24145174d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac3ac8d3a0c31f1c822d8f2d37e8099cc"><td class="memItemLeft" align="right" valign="top"><a id="ac3ac8d3a0c31f1c822d8f2d37e8099cc"></a>
+return_type&#160;</td><td class="memItemRight" valign="bottom"><b>operator[]</b> (uoffset_t i) const</td></tr>
+<tr class="separator:ac3ac8d3a0c31f1c822d8f2d37e8099cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a602e093850b2984a95581edc0b47b2f3"><td class="memItemLeft" align="right" valign="top"><a id="a602e093850b2984a95581edc0b47b2f3"></a>
+uoffset_t&#160;</td><td class="memItemRight" valign="bottom"><b>size</b> () const</td></tr>
+<tr class="separator:a602e093850b2984a95581edc0b47b2f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
 Protected Attributes</h2></td></tr>
-<tr class="memitem:a62170e531ab5fcef8b4c717c0e84553d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a62170e531ab5fcef8b4c717c0e84553d"></a>
+<tr class="memitem:a62170e531ab5fcef8b4c717c0e84553d"><td class="memItemLeft" align="right" valign="top"><a id="a62170e531ab5fcef8b4c717c0e84553d"></a>
 uoffset_t&#160;</td><td class="memItemRight" valign="bottom"><b>length_</b></td></tr>
 <tr class="separator:a62170e531ab5fcef8b4c717c0e84553d"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
diff --git a/classflatbuffers_1_1_vector.js b/classflatbuffers_1_1_vector.js
index 4bc6d907385f1b32f6e0fb5050ae86c33c2bebe3..927333c22ca562143463de20fa5227033162e6ff 100644
--- a/classflatbuffers_1_1_vector.js
+++ b/classflatbuffers_1_1_vector.js
@@ -6,24 +6,24 @@ var classflatbuffers_1_1_vector =
     [ "return_type", "classflatbuffers_1_1_vector.html#a28dab085738663f5c866cf6570bb6289", null ],
     [ "Vector", "classflatbuffers_1_1_vector.html#ab51b30f24f9841203b4364af38d424b8", null ],
     [ "begin", "classflatbuffers_1_1_vector.html#ac1ab40cdffad6cd50c222fe42c51437b", null ],
-    [ "begin", "classflatbuffers_1_1_vector.html#a248da154992320d3ebf75cba205628eb", null ],
-    [ "Data", "classflatbuffers_1_1_vector.html#a3a78e000a9301e5310adc014c36137cd", null ],
+    [ "begin", "classflatbuffers_1_1_vector.html#ac4633f563a5a52980ff0b56fa683a4de", null ],
+    [ "Data", "classflatbuffers_1_1_vector.html#aa754e17cb08c36fb8442784c6bc442da", null ],
     [ "Data", "classflatbuffers_1_1_vector.html#a0ab8113b331fb069dbaa0a108f6077e1", null ],
-    [ "data", "classflatbuffers_1_1_vector.html#a417d1d01e6d7580042aa6bd5eb35fadd", null ],
+    [ "data", "classflatbuffers_1_1_vector.html#ae8e4163ff0781720c5ddb3a6f625d435", null ],
     [ "data", "classflatbuffers_1_1_vector.html#a874b185e7dec18bb24b1f0ee42afb7cb", null ],
     [ "end", "classflatbuffers_1_1_vector.html#a53e9c0cb1d27e4bd355034dbd43f0127", null ],
-    [ "end", "classflatbuffers_1_1_vector.html#afb74addfd0fd7ae205c02ebf33d25ea2", null ],
-    [ "Get", "classflatbuffers_1_1_vector.html#a06d6b1b963b1d738d74afb1cd7ed973c", null ],
-    [ "GetAs", "classflatbuffers_1_1_vector.html#a4155ce66380a2cb863e005164ce8ec33", null ],
-    [ "GetAsString", "classflatbuffers_1_1_vector.html#a92d04847cc257e3ec9c75b7514988f13", null ],
-    [ "GetEnum", "classflatbuffers_1_1_vector.html#a4aab53d31e0f3048fceeee9658efdf41", null ],
-    [ "GetMutableObject", "classflatbuffers_1_1_vector.html#ab0a55bc4f498fbbd81efc47f3435be97", null ],
-    [ "GetStructFromOffset", "classflatbuffers_1_1_vector.html#a39668795e4e5462568cf985291a27f21", null ],
-    [ "Length", "classflatbuffers_1_1_vector.html#aa2372140c6a4331774fe15dff81d1d7b", null ],
-    [ "LookupByKey", "classflatbuffers_1_1_vector.html#a88a9fb17715f2845e3aebd4193007d61", null ],
+    [ "end", "classflatbuffers_1_1_vector.html#a9fcfb2e218f49d6d66a8b4a22aa58755", null ],
+    [ "Get", "classflatbuffers_1_1_vector.html#a0c322798bd0cebd2d20b0b0f92de2f9b", null ],
+    [ "GetAs", "classflatbuffers_1_1_vector.html#a36bbc83839910913cb0dd0699b1cccf7", null ],
+    [ "GetAsString", "classflatbuffers_1_1_vector.html#a161e5fb2aa923fbf2ce210ceea785942", null ],
+    [ "GetEnum", "classflatbuffers_1_1_vector.html#a22b4449883dc8e24e87cde27839294c4", null ],
+    [ "GetMutableObject", "classflatbuffers_1_1_vector.html#ad806c60362e99576ec5706aef30c2a67", null ],
+    [ "GetStructFromOffset", "classflatbuffers_1_1_vector.html#a1dc52eb3974e0484a5421752589d436b", null ],
+    [ "Length", "classflatbuffers_1_1_vector.html#a7ad86e7c749fd750a4e506439a358b06", null ],
+    [ "LookupByKey", "classflatbuffers_1_1_vector.html#abf919e27aa3e9b60ac30386972c94e65", null ],
     [ "Mutate", "classflatbuffers_1_1_vector.html#a8342962f2f9d5e872c90abdeaea8d24e", null ],
     [ "MutateOffset", "classflatbuffers_1_1_vector.html#a29803cd584a620bf076a69b6e97ecf5c", null ],
-    [ "operator[]", "classflatbuffers_1_1_vector.html#a7f62ee2a80431226cf14dd7348613f35", null ],
-    [ "size", "classflatbuffers_1_1_vector.html#a3aa5f37912192c5adf734ed24145174d", null ],
+    [ "operator[]", "classflatbuffers_1_1_vector.html#ac3ac8d3a0c31f1c822d8f2d37e8099cc", null ],
+    [ "size", "classflatbuffers_1_1_vector.html#a602e093850b2984a95581edc0b47b2f3", null ],
     [ "length_", "classflatbuffers_1_1_vector.html#a62170e531ab5fcef8b4c717c0e84553d", null ]
 ];
\ No newline at end of file
diff --git a/classflatbuffers_1_1_vector_of_any-members.html b/classflatbuffers_1_1_vector_of_any-members.html
index 98fbc768613cdc977bb95b4ae8ed5f6e6d275f63..e580e08a764c3d4b6b27ab73cda4b332c5b8e852 100644
--- a/classflatbuffers_1_1_vector_of_any-members.html
+++ b/classflatbuffers_1_1_vector_of_any-members.html
@@ -4,23 +4,21 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <title>FlatBuffers: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
 <link href="navtree.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
 <script type="text/javascript" src="navtree.js"></script>
 <script type="text/javascript">
   $(document).ready(initResizable);
-  $(window).load(resizeHeight);
 </script>
 <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
 <script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
-  $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,500italic,700,700italic|Roboto+Mono:400,700" rel="stylesheet">
 <link href="style.css" rel="stylesheet" type="text/css"/>
@@ -46,53 +44,19 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.7 -->
+<!-- Generated by Doxygen 1.8.13 -->
 <script type="text/javascript">
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </script>
-  <div id="navrow1" class="tabs">
-    <ul class="tablist">
-      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
-      <li><a href="usergroup0.html"><span>Programmer's&#160;Guide</span></a></li>
-      <li><a href="flatbuffers_support.html"><span>Platform&#160;/&#160;Language&#160;/&#160;Feature&#160;support</span></a></li>
-      <li><a href="flatbuffers_benchmarks.html"><span>Benchmarks</span></a></li>
-      <li><a href="flatbuffers_white_paper.html"><span>FlatBuffers&#160;white&#160;paper</span></a></li>
-      <li><a href="flatbuffers_internals.html"><span>FlatBuffers&#160;internals</span></a></li>
-      <li><a href="flatbuffers_grammar.html"><span>Grammar&#160;of&#160;the&#160;schema&#160;language</span></a></li>
-      <li class="current"><a href="usergroup2.html"><span>API&#160;Reference</span></a></li>
-      <li><a href="contributing.html"><span>Contributing</span></a></li>
-      <li>
-        <div id="MSearchBox" class="MSearchBoxInactive">
-        <span class="left">
-          <img id="MSearchSelect" src="search/mag_sel.png"
-               onmouseover="return searchBox.OnSearchSelectShow()"
-               onmouseout="return searchBox.OnSearchSelectHide()"
-               alt=""/>
-          <input type="text" id="MSearchField" value="Search" accesskey="S"
-               onfocus="searchBox.OnSearchFieldFocus(true)" 
-               onblur="searchBox.OnSearchFieldFocus(false)" 
-               onkeyup="searchBox.OnSearchFieldChange(event)"/>
-          </span><span class="right">
-            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
-          </span>
-        </div>
-      </li>
-    </ul>
-  </div>
-  <div id="navrow2" class="tabs2">
-    <ul class="tablist">
-      <li><a href="modules.html"><span>APIs</span></a></li>
-      <li class="current"><a href="annotated.html"><span>Class&#160;List</span></a></li>
-    </ul>
-  </div>
-  <div id="navrow2" class="tabs2">
-    <ul class="tablist">
-      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
-      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
-      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
-      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
-    </ul>
-  </div>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -113,7 +77,7 @@ $(document).ready(function(){initNavTree('classflatbuffers_1_1_vector_of_any.htm
      onmouseover="return searchBox.OnSearchSelectShow()"
      onmouseout="return searchBox.OnSearchSelectHide()"
      onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Properties</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+</div>
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
@@ -130,10 +94,10 @@ $(document).ready(function(){initNavTree('classflatbuffers_1_1_vector_of_any.htm
 
 <p>This is the complete list of members for <a class="el" href="classflatbuffers_1_1_vector_of_any.html">flatbuffers::VectorOfAny</a>, including all inherited members.</p>
 <table class="directory">
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Data</b>() const  (defined in <a class="el" href="classflatbuffers_1_1_vector_of_any.html">flatbuffers::VectorOfAny</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_vector_of_any.html">flatbuffers::VectorOfAny</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Data</b>() const (defined in <a class="el" href="classflatbuffers_1_1_vector_of_any.html">flatbuffers::VectorOfAny</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_vector_of_any.html">flatbuffers::VectorOfAny</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr bgcolor="#f0f0f0"><td class="entry"><b>Data</b>() (defined in <a class="el" href="classflatbuffers_1_1_vector_of_any.html">flatbuffers::VectorOfAny</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_vector_of_any.html">flatbuffers::VectorOfAny</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>length_</b> (defined in <a class="el" href="classflatbuffers_1_1_vector_of_any.html">flatbuffers::VectorOfAny</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_vector_of_any.html">flatbuffers::VectorOfAny</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>size</b>() const  (defined in <a class="el" href="classflatbuffers_1_1_vector_of_any.html">flatbuffers::VectorOfAny</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_vector_of_any.html">flatbuffers::VectorOfAny</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>size</b>() const (defined in <a class="el" href="classflatbuffers_1_1_vector_of_any.html">flatbuffers::VectorOfAny</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_vector_of_any.html">flatbuffers::VectorOfAny</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>VectorOfAny</b>() (defined in <a class="el" href="classflatbuffers_1_1_vector_of_any.html">flatbuffers::VectorOfAny</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_vector_of_any.html">flatbuffers::VectorOfAny</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
 </table></div><!-- contents -->
 </div><!-- doc-content -->
diff --git a/classflatbuffers_1_1_vector_of_any.html b/classflatbuffers_1_1_vector_of_any.html
index d64da26e4d2624fe38638b442a1aaa73d4b3b03c..266327e366e776b706ab14fc174c468eee06c8db 100644
--- a/classflatbuffers_1_1_vector_of_any.html
+++ b/classflatbuffers_1_1_vector_of_any.html
@@ -4,23 +4,21 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <title>FlatBuffers: flatbuffers::VectorOfAny Class Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
 <link href="navtree.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
 <script type="text/javascript" src="navtree.js"></script>
 <script type="text/javascript">
   $(document).ready(initResizable);
-  $(window).load(resizeHeight);
 </script>
 <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
 <script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
-  $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,500italic,700,700italic|Roboto+Mono:400,700" rel="stylesheet">
 <link href="style.css" rel="stylesheet" type="text/css"/>
@@ -46,53 +44,19 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.7 -->
+<!-- Generated by Doxygen 1.8.13 -->
 <script type="text/javascript">
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </script>
-  <div id="navrow1" class="tabs">
-    <ul class="tablist">
-      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
-      <li><a href="usergroup0.html"><span>Programmer's&#160;Guide</span></a></li>
-      <li><a href="flatbuffers_support.html"><span>Platform&#160;/&#160;Language&#160;/&#160;Feature&#160;support</span></a></li>
-      <li><a href="flatbuffers_benchmarks.html"><span>Benchmarks</span></a></li>
-      <li><a href="flatbuffers_white_paper.html"><span>FlatBuffers&#160;white&#160;paper</span></a></li>
-      <li><a href="flatbuffers_internals.html"><span>FlatBuffers&#160;internals</span></a></li>
-      <li><a href="flatbuffers_grammar.html"><span>Grammar&#160;of&#160;the&#160;schema&#160;language</span></a></li>
-      <li class="current"><a href="usergroup2.html"><span>API&#160;Reference</span></a></li>
-      <li><a href="contributing.html"><span>Contributing</span></a></li>
-      <li>
-        <div id="MSearchBox" class="MSearchBoxInactive">
-        <span class="left">
-          <img id="MSearchSelect" src="search/mag_sel.png"
-               onmouseover="return searchBox.OnSearchSelectShow()"
-               onmouseout="return searchBox.OnSearchSelectHide()"
-               alt=""/>
-          <input type="text" id="MSearchField" value="Search" accesskey="S"
-               onfocus="searchBox.OnSearchFieldFocus(true)" 
-               onblur="searchBox.OnSearchFieldFocus(false)" 
-               onkeyup="searchBox.OnSearchFieldChange(event)"/>
-          </span><span class="right">
-            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
-          </span>
-        </div>
-      </li>
-    </ul>
-  </div>
-  <div id="navrow2" class="tabs2">
-    <ul class="tablist">
-      <li><a href="modules.html"><span>APIs</span></a></li>
-      <li class="current"><a href="annotated.html"><span>Class&#160;List</span></a></li>
-    </ul>
-  </div>
-  <div id="navrow2" class="tabs2">
-    <ul class="tablist">
-      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
-      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
-      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
-      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
-    </ul>
-  </div>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -113,7 +77,7 @@ $(document).ready(function(){initNavTree('classflatbuffers_1_1_vector_of_any.htm
      onmouseover="return searchBox.OnSearchSelectShow()"
      onmouseout="return searchBox.OnSearchSelectHide()"
      onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Properties</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+</div>
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
@@ -134,19 +98,19 @@ $(document).ready(function(){initNavTree('classflatbuffers_1_1_vector_of_any.htm
 <table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
 Public Member Functions</h2></td></tr>
-<tr class="memitem:af84f1a5138506c8835ff1ef1b5194767"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af84f1a5138506c8835ff1ef1b5194767"></a>
-const uint8_t *&#160;</td><td class="memItemRight" valign="bottom"><b>Data</b> () const </td></tr>
-<tr class="separator:af84f1a5138506c8835ff1ef1b5194767"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a4ddb1c5d56cf35be5705a63c97b780ed"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4ddb1c5d56cf35be5705a63c97b780ed"></a>
+<tr class="memitem:a6dd4c5eb58d26510c1e75b104428e078"><td class="memItemLeft" align="right" valign="top"><a id="a6dd4c5eb58d26510c1e75b104428e078"></a>
+const uint8_t *&#160;</td><td class="memItemRight" valign="bottom"><b>Data</b> () const</td></tr>
+<tr class="separator:a6dd4c5eb58d26510c1e75b104428e078"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4ddb1c5d56cf35be5705a63c97b780ed"><td class="memItemLeft" align="right" valign="top"><a id="a4ddb1c5d56cf35be5705a63c97b780ed"></a>
 uint8_t *&#160;</td><td class="memItemRight" valign="bottom"><b>Data</b> ()</td></tr>
 <tr class="separator:a4ddb1c5d56cf35be5705a63c97b780ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ae7445c6c623cf74d9b77b11cd87bdf4e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae7445c6c623cf74d9b77b11cd87bdf4e"></a>
-uoffset_t&#160;</td><td class="memItemRight" valign="bottom"><b>size</b> () const </td></tr>
-<tr class="separator:ae7445c6c623cf74d9b77b11cd87bdf4e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a12e968418ca9e4e1d9136ee592ac87e0"><td class="memItemLeft" align="right" valign="top"><a id="a12e968418ca9e4e1d9136ee592ac87e0"></a>
+uoffset_t&#160;</td><td class="memItemRight" valign="bottom"><b>size</b> () const</td></tr>
+<tr class="separator:a12e968418ca9e4e1d9136ee592ac87e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
 Protected Attributes</h2></td></tr>
-<tr class="memitem:ab299b866b29e7010b4b0572daa38c95f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab299b866b29e7010b4b0572daa38c95f"></a>
+<tr class="memitem:ab299b866b29e7010b4b0572daa38c95f"><td class="memItemLeft" align="right" valign="top"><a id="ab299b866b29e7010b4b0572daa38c95f"></a>
 uoffset_t&#160;</td><td class="memItemRight" valign="bottom"><b>length_</b></td></tr>
 <tr class="separator:ab299b866b29e7010b4b0572daa38c95f"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
diff --git a/classflatbuffers_1_1_vector_of_any.js b/classflatbuffers_1_1_vector_of_any.js
index 4efdd7699b9f14ac36e46c79c562b2da2fea7daf..40a7a5279f84a966716d66b3b9023a71c0ff3c96 100644
--- a/classflatbuffers_1_1_vector_of_any.js
+++ b/classflatbuffers_1_1_vector_of_any.js
@@ -1,8 +1,8 @@
 var classflatbuffers_1_1_vector_of_any =
 [
     [ "VectorOfAny", "classflatbuffers_1_1_vector_of_any.html#a6fb11905e2ac4ad77193151bbe47030a", null ],
-    [ "Data", "classflatbuffers_1_1_vector_of_any.html#af84f1a5138506c8835ff1ef1b5194767", null ],
+    [ "Data", "classflatbuffers_1_1_vector_of_any.html#a6dd4c5eb58d26510c1e75b104428e078", null ],
     [ "Data", "classflatbuffers_1_1_vector_of_any.html#a4ddb1c5d56cf35be5705a63c97b780ed", null ],
-    [ "size", "classflatbuffers_1_1_vector_of_any.html#ae7445c6c623cf74d9b77b11cd87bdf4e", null ],
+    [ "size", "classflatbuffers_1_1_vector_of_any.html#a12e968418ca9e4e1d9136ee592ac87e0", null ],
     [ "length_", "classflatbuffers_1_1_vector_of_any.html#ab299b866b29e7010b4b0572daa38c95f", null ]
 ];
\ No newline at end of file
diff --git a/classflatbuffers_1_1vector__downward-members.html b/classflatbuffers_1_1vector__downward-members.html
index 6819cbaec8894075e4571b241f85fa7e85614ef2..3b9caa4449f4d2183b5d3eb54f493dc40abf840f 100644
--- a/classflatbuffers_1_1vector__downward-members.html
+++ b/classflatbuffers_1_1vector__downward-members.html
@@ -4,23 +4,21 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <title>FlatBuffers: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
 <link href="navtree.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
 <script type="text/javascript" src="navtree.js"></script>
 <script type="text/javascript">
   $(document).ready(initResizable);
-  $(window).load(resizeHeight);
 </script>
 <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
 <script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
-  $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,500italic,700,700italic|Roboto+Mono:400,700" rel="stylesheet">
 <link href="style.css" rel="stylesheet" type="text/css"/>
@@ -46,53 +44,19 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.7 -->
+<!-- Generated by Doxygen 1.8.13 -->
 <script type="text/javascript">
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </script>
-  <div id="navrow1" class="tabs">
-    <ul class="tablist">
-      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
-      <li><a href="usergroup0.html"><span>Programmer's&#160;Guide</span></a></li>
-      <li><a href="flatbuffers_support.html"><span>Platform&#160;/&#160;Language&#160;/&#160;Feature&#160;support</span></a></li>
-      <li><a href="flatbuffers_benchmarks.html"><span>Benchmarks</span></a></li>
-      <li><a href="flatbuffers_white_paper.html"><span>FlatBuffers&#160;white&#160;paper</span></a></li>
-      <li><a href="flatbuffers_internals.html"><span>FlatBuffers&#160;internals</span></a></li>
-      <li><a href="flatbuffers_grammar.html"><span>Grammar&#160;of&#160;the&#160;schema&#160;language</span></a></li>
-      <li class="current"><a href="usergroup2.html"><span>API&#160;Reference</span></a></li>
-      <li><a href="contributing.html"><span>Contributing</span></a></li>
-      <li>
-        <div id="MSearchBox" class="MSearchBoxInactive">
-        <span class="left">
-          <img id="MSearchSelect" src="search/mag_sel.png"
-               onmouseover="return searchBox.OnSearchSelectShow()"
-               onmouseout="return searchBox.OnSearchSelectHide()"
-               alt=""/>
-          <input type="text" id="MSearchField" value="Search" accesskey="S"
-               onfocus="searchBox.OnSearchFieldFocus(true)" 
-               onblur="searchBox.OnSearchFieldFocus(false)" 
-               onkeyup="searchBox.OnSearchFieldChange(event)"/>
-          </span><span class="right">
-            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
-          </span>
-        </div>
-      </li>
-    </ul>
-  </div>
-  <div id="navrow2" class="tabs2">
-    <ul class="tablist">
-      <li><a href="modules.html"><span>APIs</span></a></li>
-      <li class="current"><a href="annotated.html"><span>Class&#160;List</span></a></li>
-    </ul>
-  </div>
-  <div id="navrow2" class="tabs2">
-    <ul class="tablist">
-      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
-      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
-      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
-      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
-    </ul>
-  </div>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -113,7 +77,7 @@ $(document).ready(function(){initNavTree('classflatbuffers_1_1vector__downward.h
      onmouseover="return searchBox.OnSearchSelectShow()"
      onmouseout="return searchBox.OnSearchSelectHide()"
      onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Properties</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+</div>
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
@@ -130,24 +94,29 @@ $(document).ready(function(){initNavTree('classflatbuffers_1_1vector__downward.h
 
 <p>This is the complete list of members for <a class="el" href="classflatbuffers_1_1vector__downward.html">flatbuffers::vector_downward</a>, including all inherited members.</p>
 <table class="directory">
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>buf</b>() const  (defined in <a class="el" href="classflatbuffers_1_1vector__downward.html">flatbuffers::vector_downward</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1vector__downward.html">flatbuffers::vector_downward</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>capacity</b>() const  (defined in <a class="el" href="classflatbuffers_1_1vector__downward.html">flatbuffers::vector_downward</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1vector__downward.html">flatbuffers::vector_downward</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>clear</b>() (defined in <a class="el" href="classflatbuffers_1_1vector__downward.html">flatbuffers::vector_downward</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1vector__downward.html">flatbuffers::vector_downward</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>data</b>() const  (defined in <a class="el" href="classflatbuffers_1_1vector__downward.html">flatbuffers::vector_downward</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1vector__downward.html">flatbuffers::vector_downward</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>data_at</b>(size_t offset) const  (defined in <a class="el" href="classflatbuffers_1_1vector__downward.html">flatbuffers::vector_downward</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1vector__downward.html">flatbuffers::vector_downward</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>fill</b>(size_t zero_pad_bytes) (defined in <a class="el" href="classflatbuffers_1_1vector__downward.html">flatbuffers::vector_downward</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1vector__downward.html">flatbuffers::vector_downward</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>fill_big</b>(size_t zero_pad_bytes) (defined in <a class="el" href="classflatbuffers_1_1vector__downward.html">flatbuffers::vector_downward</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1vector__downward.html">flatbuffers::vector_downward</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>get_allocator</b>() (defined in <a class="el" href="classflatbuffers_1_1vector__downward.html">flatbuffers::vector_downward</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1vector__downward.html">flatbuffers::vector_downward</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>growth_policy</b>(size_t bytes) (defined in <a class="el" href="classflatbuffers_1_1vector__downward.html">flatbuffers::vector_downward</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1vector__downward.html">flatbuffers::vector_downward</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>capacity</b>() const (defined in <a class="el" href="classflatbuffers_1_1vector__downward.html">flatbuffers::vector_downward</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1vector__downward.html">flatbuffers::vector_downward</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>clear</b>() (defined in <a class="el" href="classflatbuffers_1_1vector__downward.html">flatbuffers::vector_downward</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1vector__downward.html">flatbuffers::vector_downward</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>clear_scratch</b>() (defined in <a class="el" href="classflatbuffers_1_1vector__downward.html">flatbuffers::vector_downward</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1vector__downward.html">flatbuffers::vector_downward</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>data</b>() const (defined in <a class="el" href="classflatbuffers_1_1vector__downward.html">flatbuffers::vector_downward</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1vector__downward.html">flatbuffers::vector_downward</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>data_at</b>(size_t offset) const (defined in <a class="el" href="classflatbuffers_1_1vector__downward.html">flatbuffers::vector_downward</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1vector__downward.html">flatbuffers::vector_downward</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>ensure_space</b>(size_t len) (defined in <a class="el" href="classflatbuffers_1_1vector__downward.html">flatbuffers::vector_downward</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1vector__downward.html">flatbuffers::vector_downward</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>fill</b>(size_t zero_pad_bytes) (defined in <a class="el" href="classflatbuffers_1_1vector__downward.html">flatbuffers::vector_downward</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1vector__downward.html">flatbuffers::vector_downward</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>fill_big</b>(size_t zero_pad_bytes) (defined in <a class="el" href="classflatbuffers_1_1vector__downward.html">flatbuffers::vector_downward</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1vector__downward.html">flatbuffers::vector_downward</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>get_allocator</b>() (defined in <a class="el" href="classflatbuffers_1_1vector__downward.html">flatbuffers::vector_downward</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1vector__downward.html">flatbuffers::vector_downward</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr bgcolor="#f0f0f0"><td class="entry"><b>make_space</b>(size_t len) (defined in <a class="el" href="classflatbuffers_1_1vector__downward.html">flatbuffers::vector_downward</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1vector__downward.html">flatbuffers::vector_downward</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>pop</b>(size_t bytes_to_remove) (defined in <a class="el" href="classflatbuffers_1_1vector__downward.html">flatbuffers::vector_downward</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1vector__downward.html">flatbuffers::vector_downward</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr bgcolor="#f0f0f0"><td class="entry"><b>push</b>(const uint8_t *bytes, size_t num) (defined in <a class="el" href="classflatbuffers_1_1vector__downward.html">flatbuffers::vector_downward</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1vector__downward.html">flatbuffers::vector_downward</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>push_small</b>(const T &amp;little_endian_t) (defined in <a class="el" href="classflatbuffers_1_1vector__downward.html">flatbuffers::vector_downward</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1vector__downward.html">flatbuffers::vector_downward</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr bgcolor="#f0f0f0"><td class="entry"><b>release</b>() (defined in <a class="el" href="classflatbuffers_1_1vector__downward.html">flatbuffers::vector_downward</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1vector__downward.html">flatbuffers::vector_downward</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>reset</b>() (defined in <a class="el" href="classflatbuffers_1_1vector__downward.html">flatbuffers::vector_downward</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1vector__downward.html">flatbuffers::vector_downward</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>size</b>() const  (defined in <a class="el" href="classflatbuffers_1_1vector__downward.html">flatbuffers::vector_downward</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1vector__downward.html">flatbuffers::vector_downward</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>vector_downward</b>(size_t initial_size=1024, Allocator *allocator=nullptr, bool own_allocator=false) (defined in <a class="el" href="classflatbuffers_1_1vector__downward.html">flatbuffers::vector_downward</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1vector__downward.html">flatbuffers::vector_downward</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>~vector_downward</b>() (defined in <a class="el" href="classflatbuffers_1_1vector__downward.html">flatbuffers::vector_downward</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1vector__downward.html">flatbuffers::vector_downward</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>scratch_data</b>() const (defined in <a class="el" href="classflatbuffers_1_1vector__downward.html">flatbuffers::vector_downward</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1vector__downward.html">flatbuffers::vector_downward</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>scratch_end</b>() const (defined in <a class="el" href="classflatbuffers_1_1vector__downward.html">flatbuffers::vector_downward</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1vector__downward.html">flatbuffers::vector_downward</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>scratch_pop</b>(size_t bytes_to_remove) (defined in <a class="el" href="classflatbuffers_1_1vector__downward.html">flatbuffers::vector_downward</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1vector__downward.html">flatbuffers::vector_downward</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>scratch_push_small</b>(const T &amp;t) (defined in <a class="el" href="classflatbuffers_1_1vector__downward.html">flatbuffers::vector_downward</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1vector__downward.html">flatbuffers::vector_downward</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>scratch_size</b>() const (defined in <a class="el" href="classflatbuffers_1_1vector__downward.html">flatbuffers::vector_downward</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1vector__downward.html">flatbuffers::vector_downward</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>size</b>() const (defined in <a class="el" href="classflatbuffers_1_1vector__downward.html">flatbuffers::vector_downward</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1vector__downward.html">flatbuffers::vector_downward</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>vector_downward</b>(size_t initial_size, Allocator *allocator, bool own_allocator, size_t buffer_minalign) (defined in <a class="el" href="classflatbuffers_1_1vector__downward.html">flatbuffers::vector_downward</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1vector__downward.html">flatbuffers::vector_downward</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>~vector_downward</b>() (defined in <a class="el" href="classflatbuffers_1_1vector__downward.html">flatbuffers::vector_downward</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1vector__downward.html">flatbuffers::vector_downward</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
 </table></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- Google Analytics -->
diff --git a/classflatbuffers_1_1vector__downward.html b/classflatbuffers_1_1vector__downward.html
index 2ff1860662a9bcd7e8c4047a81f428a9fcb163c1..74c7632d509b61383332f86b909896c5e5f5fe34 100644
--- a/classflatbuffers_1_1vector__downward.html
+++ b/classflatbuffers_1_1vector__downward.html
@@ -4,23 +4,21 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <title>FlatBuffers: flatbuffers::vector_downward Class Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
 <link href="navtree.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
 <script type="text/javascript" src="navtree.js"></script>
 <script type="text/javascript">
   $(document).ready(initResizable);
-  $(window).load(resizeHeight);
 </script>
 <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
 <script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
-  $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,500italic,700,700italic|Roboto+Mono:400,700" rel="stylesheet">
 <link href="style.css" rel="stylesheet" type="text/css"/>
@@ -46,53 +44,19 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.7 -->
+<!-- Generated by Doxygen 1.8.13 -->
 <script type="text/javascript">
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </script>
-  <div id="navrow1" class="tabs">
-    <ul class="tablist">
-      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
-      <li><a href="usergroup0.html"><span>Programmer's&#160;Guide</span></a></li>
-      <li><a href="flatbuffers_support.html"><span>Platform&#160;/&#160;Language&#160;/&#160;Feature&#160;support</span></a></li>
-      <li><a href="flatbuffers_benchmarks.html"><span>Benchmarks</span></a></li>
-      <li><a href="flatbuffers_white_paper.html"><span>FlatBuffers&#160;white&#160;paper</span></a></li>
-      <li><a href="flatbuffers_internals.html"><span>FlatBuffers&#160;internals</span></a></li>
-      <li><a href="flatbuffers_grammar.html"><span>Grammar&#160;of&#160;the&#160;schema&#160;language</span></a></li>
-      <li class="current"><a href="usergroup2.html"><span>API&#160;Reference</span></a></li>
-      <li><a href="contributing.html"><span>Contributing</span></a></li>
-      <li>
-        <div id="MSearchBox" class="MSearchBoxInactive">
-        <span class="left">
-          <img id="MSearchSelect" src="search/mag_sel.png"
-               onmouseover="return searchBox.OnSearchSelectShow()"
-               onmouseout="return searchBox.OnSearchSelectHide()"
-               alt=""/>
-          <input type="text" id="MSearchField" value="Search" accesskey="S"
-               onfocus="searchBox.OnSearchFieldFocus(true)" 
-               onblur="searchBox.OnSearchFieldFocus(false)" 
-               onkeyup="searchBox.OnSearchFieldChange(event)"/>
-          </span><span class="right">
-            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
-          </span>
-        </div>
-      </li>
-    </ul>
-  </div>
-  <div id="navrow2" class="tabs2">
-    <ul class="tablist">
-      <li><a href="modules.html"><span>APIs</span></a></li>
-      <li class="current"><a href="annotated.html"><span>Class&#160;List</span></a></li>
-    </ul>
-  </div>
-  <div id="navrow2" class="tabs2">
-    <ul class="tablist">
-      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
-      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
-      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
-      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
-    </ul>
-  </div>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -113,7 +77,7 @@ $(document).ready(function(){initNavTree('classflatbuffers_1_1vector__downward.h
      onmouseover="return searchBox.OnSearchSelectShow()"
      onmouseout="return searchBox.OnSearchSelectHide()"
      onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Properties</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+</div>
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
@@ -133,58 +97,74 @@ $(document).ready(function(){initNavTree('classflatbuffers_1_1vector__downward.h
 <table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
 Public Member Functions</h2></td></tr>
-<tr class="memitem:a30d500190ca6fe63296b751b37004945"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a30d500190ca6fe63296b751b37004945"></a>
-uint8_t *&#160;</td><td class="memItemRight" valign="bottom"><b>buf</b> () const </td></tr>
-<tr class="separator:a30d500190ca6fe63296b751b37004945"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a5edea7ae27f81a770547ec1aada6a666"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5edea7ae27f81a770547ec1aada6a666"></a>
-size_t&#160;</td><td class="memItemRight" valign="bottom"><b>capacity</b> () const </td></tr>
-<tr class="separator:a5edea7ae27f81a770547ec1aada6a666"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ae701e8e1cc468d1a3141e0fa22dc3a70"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae701e8e1cc468d1a3141e0fa22dc3a70"></a>
+<tr class="memitem:aec8308b5b544432362049b94c3802800"><td class="memItemLeft" align="right" valign="top"><a id="aec8308b5b544432362049b94c3802800"></a>
+size_t&#160;</td><td class="memItemRight" valign="bottom"><b>capacity</b> () const</td></tr>
+<tr class="separator:aec8308b5b544432362049b94c3802800"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae701e8e1cc468d1a3141e0fa22dc3a70"><td class="memItemLeft" align="right" valign="top"><a id="ae701e8e1cc468d1a3141e0fa22dc3a70"></a>
 void&#160;</td><td class="memItemRight" valign="bottom"><b>clear</b> ()</td></tr>
 <tr class="separator:ae701e8e1cc468d1a3141e0fa22dc3a70"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a403cfdb1088a2f95ca5a4899dd45e313"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a403cfdb1088a2f95ca5a4899dd45e313"></a>
-uint8_t *&#160;</td><td class="memItemRight" valign="bottom"><b>data</b> () const </td></tr>
-<tr class="separator:a403cfdb1088a2f95ca5a4899dd45e313"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ac2983200e66457e256301e5bb6ffa2a8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac2983200e66457e256301e5bb6ffa2a8"></a>
-uint8_t *&#160;</td><td class="memItemRight" valign="bottom"><b>data_at</b> (size_t offset) const </td></tr>
-<tr class="separator:ac2983200e66457e256301e5bb6ffa2a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a692f950a105db47f983ff80d4e5c3772"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a692f950a105db47f983ff80d4e5c3772"></a>
+<tr class="memitem:a05dca3cd52b334b0643e2ae9e88b8b87"><td class="memItemLeft" align="right" valign="top"><a id="a05dca3cd52b334b0643e2ae9e88b8b87"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>clear_scratch</b> ()</td></tr>
+<tr class="separator:a05dca3cd52b334b0643e2ae9e88b8b87"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa1f13e25b0c619ba9a9c2d6b408e2587"><td class="memItemLeft" align="right" valign="top"><a id="aa1f13e25b0c619ba9a9c2d6b408e2587"></a>
+uint8_t *&#160;</td><td class="memItemRight" valign="bottom"><b>data</b> () const</td></tr>
+<tr class="separator:aa1f13e25b0c619ba9a9c2d6b408e2587"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae965771454bef2a2f7ad306bfda275f7"><td class="memItemLeft" align="right" valign="top"><a id="ae965771454bef2a2f7ad306bfda275f7"></a>
+uint8_t *&#160;</td><td class="memItemRight" valign="bottom"><b>data_at</b> (size_t offset) const</td></tr>
+<tr class="separator:ae965771454bef2a2f7ad306bfda275f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a46e8f7f5035f87fe202419d6c5446eb3"><td class="memItemLeft" align="right" valign="top"><a id="a46e8f7f5035f87fe202419d6c5446eb3"></a>
+size_t&#160;</td><td class="memItemRight" valign="bottom"><b>ensure_space</b> (size_t len)</td></tr>
+<tr class="separator:a46e8f7f5035f87fe202419d6c5446eb3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a692f950a105db47f983ff80d4e5c3772"><td class="memItemLeft" align="right" valign="top"><a id="a692f950a105db47f983ff80d4e5c3772"></a>
 void&#160;</td><td class="memItemRight" valign="bottom"><b>fill</b> (size_t zero_pad_bytes)</td></tr>
 <tr class="separator:a692f950a105db47f983ff80d4e5c3772"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a99e13c5b83569b07df357c76feb1e614"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a99e13c5b83569b07df357c76feb1e614"></a>
+<tr class="memitem:a99e13c5b83569b07df357c76feb1e614"><td class="memItemLeft" align="right" valign="top"><a id="a99e13c5b83569b07df357c76feb1e614"></a>
 void&#160;</td><td class="memItemRight" valign="bottom"><b>fill_big</b> (size_t zero_pad_bytes)</td></tr>
 <tr class="separator:a99e13c5b83569b07df357c76feb1e614"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:abc8846756ed814d1722913105e0da7a3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abc8846756ed814d1722913105e0da7a3"></a>
+<tr class="memitem:abc8846756ed814d1722913105e0da7a3"><td class="memItemLeft" align="right" valign="top"><a id="abc8846756ed814d1722913105e0da7a3"></a>
 <a class="el" href="classflatbuffers_1_1_allocator.html">Allocator</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>get_allocator</b> ()</td></tr>
 <tr class="separator:abc8846756ed814d1722913105e0da7a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a00f9fca894e2a2963ae0867ff443d0c2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a00f9fca894e2a2963ae0867ff443d0c2"></a>
-size_t&#160;</td><td class="memItemRight" valign="bottom"><b>growth_policy</b> (size_t bytes)</td></tr>
-<tr class="separator:a00f9fca894e2a2963ae0867ff443d0c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a4a0686bb0afe2feefec0502f527a11bf"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4a0686bb0afe2feefec0502f527a11bf"></a>
+<tr class="memitem:a4a0686bb0afe2feefec0502f527a11bf"><td class="memItemLeft" align="right" valign="top"><a id="a4a0686bb0afe2feefec0502f527a11bf"></a>
 uint8_t *&#160;</td><td class="memItemRight" valign="bottom"><b>make_space</b> (size_t len)</td></tr>
 <tr class="separator:a4a0686bb0afe2feefec0502f527a11bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a23cd3d0692fe86eacc6324ea4b58a599"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a23cd3d0692fe86eacc6324ea4b58a599"></a>
+<tr class="memitem:a23cd3d0692fe86eacc6324ea4b58a599"><td class="memItemLeft" align="right" valign="top"><a id="a23cd3d0692fe86eacc6324ea4b58a599"></a>
 void&#160;</td><td class="memItemRight" valign="bottom"><b>pop</b> (size_t bytes_to_remove)</td></tr>
 <tr class="separator:a23cd3d0692fe86eacc6324ea4b58a599"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a8cfd1b66f93043acb9905519e9998ced"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8cfd1b66f93043acb9905519e9998ced"></a>
+<tr class="memitem:a8cfd1b66f93043acb9905519e9998ced"><td class="memItemLeft" align="right" valign="top"><a id="a8cfd1b66f93043acb9905519e9998ced"></a>
 void&#160;</td><td class="memItemRight" valign="bottom"><b>push</b> (const uint8_t *bytes, size_t num)</td></tr>
 <tr class="separator:a8cfd1b66f93043acb9905519e9998ced"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a23d309dc71c82cc13d1edefff0e7dd8f"><td class="memTemplParams" colspan="2"><a class="anchor" id="a23d309dc71c82cc13d1edefff0e7dd8f"></a>
+<tr class="memitem:a23d309dc71c82cc13d1edefff0e7dd8f"><td class="memTemplParams" colspan="2"><a id="a23d309dc71c82cc13d1edefff0e7dd8f"></a>
 template&lt;typename T &gt; </td></tr>
 <tr class="memitem:a23d309dc71c82cc13d1edefff0e7dd8f"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><b>push_small</b> (const T &amp;little_endian_t)</td></tr>
 <tr class="separator:a23d309dc71c82cc13d1edefff0e7dd8f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aefa75049c70c00591f7786aeb9def1fe"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aefa75049c70c00591f7786aeb9def1fe"></a>
+<tr class="memitem:aefa75049c70c00591f7786aeb9def1fe"><td class="memItemLeft" align="right" valign="top"><a id="aefa75049c70c00591f7786aeb9def1fe"></a>
 <a class="el" href="classflatbuffers_1_1_detached_buffer.html">DetachedBuffer</a>&#160;</td><td class="memItemRight" valign="bottom"><b>release</b> ()</td></tr>
 <tr class="separator:aefa75049c70c00591f7786aeb9def1fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a4a5203e2960492f54ac4428d4caee0fc"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4a5203e2960492f54ac4428d4caee0fc"></a>
+<tr class="memitem:a4a5203e2960492f54ac4428d4caee0fc"><td class="memItemLeft" align="right" valign="top"><a id="a4a5203e2960492f54ac4428d4caee0fc"></a>
 void&#160;</td><td class="memItemRight" valign="bottom"><b>reset</b> ()</td></tr>
 <tr class="separator:a4a5203e2960492f54ac4428d4caee0fc"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a551fe42b05fef8fc3f6dc6b955c6196b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a551fe42b05fef8fc3f6dc6b955c6196b"></a>
-uoffset_t&#160;</td><td class="memItemRight" valign="bottom"><b>size</b> () const </td></tr>
-<tr class="separator:a551fe42b05fef8fc3f6dc6b955c6196b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a909d38da327dbe36825d059cff0c96e4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a909d38da327dbe36825d059cff0c96e4"></a>
-&#160;</td><td class="memItemRight" valign="bottom"><b>vector_downward</b> (size_t initial_size=1024, <a class="el" href="classflatbuffers_1_1_allocator.html">Allocator</a> *allocator=nullptr, bool own_allocator=false)</td></tr>
-<tr class="separator:a909d38da327dbe36825d059cff0c96e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a297ab537a68b0a02b4577cfc4b5269a9"><td class="memItemLeft" align="right" valign="top"><a id="a297ab537a68b0a02b4577cfc4b5269a9"></a>
+uint8_t *&#160;</td><td class="memItemRight" valign="bottom"><b>scratch_data</b> () const</td></tr>
+<tr class="separator:a297ab537a68b0a02b4577cfc4b5269a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a784ae8d43071ce644df0c0e8d59772d3"><td class="memItemLeft" align="right" valign="top"><a id="a784ae8d43071ce644df0c0e8d59772d3"></a>
+uint8_t *&#160;</td><td class="memItemRight" valign="bottom"><b>scratch_end</b> () const</td></tr>
+<tr class="separator:a784ae8d43071ce644df0c0e8d59772d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a96a36503bc1103a11c4a17d26dcaf770"><td class="memItemLeft" align="right" valign="top"><a id="a96a36503bc1103a11c4a17d26dcaf770"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>scratch_pop</b> (size_t bytes_to_remove)</td></tr>
+<tr class="separator:a96a36503bc1103a11c4a17d26dcaf770"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a44f77c18fb0aed4b9c22020ea69ff8c9"><td class="memTemplParams" colspan="2"><a id="a44f77c18fb0aed4b9c22020ea69ff8c9"></a>
+template&lt;typename T &gt; </td></tr>
+<tr class="memitem:a44f77c18fb0aed4b9c22020ea69ff8c9"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><b>scratch_push_small</b> (const T &amp;t)</td></tr>
+<tr class="separator:a44f77c18fb0aed4b9c22020ea69ff8c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a37856c0e5288338080818681b8aedb5d"><td class="memItemLeft" align="right" valign="top"><a id="a37856c0e5288338080818681b8aedb5d"></a>
+uoffset_t&#160;</td><td class="memItemRight" valign="bottom"><b>scratch_size</b> () const</td></tr>
+<tr class="separator:a37856c0e5288338080818681b8aedb5d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a70c8de02d393caddcedde603a5a45ae7"><td class="memItemLeft" align="right" valign="top"><a id="a70c8de02d393caddcedde603a5a45ae7"></a>
+uoffset_t&#160;</td><td class="memItemRight" valign="bottom"><b>size</b> () const</td></tr>
+<tr class="separator:a70c8de02d393caddcedde603a5a45ae7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a91d7ec62e1b729276605355d12f3456c"><td class="memItemLeft" align="right" valign="top"><a id="a91d7ec62e1b729276605355d12f3456c"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>vector_downward</b> (size_t initial_size, <a class="el" href="classflatbuffers_1_1_allocator.html">Allocator</a> *allocator, bool own_allocator, size_t buffer_minalign)</td></tr>
+<tr class="separator:a91d7ec62e1b729276605355d12f3456c"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <hr/>The documentation for this class was generated from the following file:<ul>
 <li><a class="el" href="flatbuffers_8h_source.html">flatbuffers.h</a></li>
diff --git a/classflatbuffers_1_1vector__downward.js b/classflatbuffers_1_1vector__downward.js
index 56961050af99e6d50b12ec5f584fb4cb054bb34e..b436d0de99210124462068638539dd3295615dca 100644
--- a/classflatbuffers_1_1vector__downward.js
+++ b/classflatbuffers_1_1vector__downward.js
@@ -1,21 +1,26 @@
 var classflatbuffers_1_1vector__downward =
 [
-    [ "vector_downward", "classflatbuffers_1_1vector__downward.html#a909d38da327dbe36825d059cff0c96e4", null ],
+    [ "vector_downward", "classflatbuffers_1_1vector__downward.html#a91d7ec62e1b729276605355d12f3456c", null ],
     [ "~vector_downward", "classflatbuffers_1_1vector__downward.html#ad99943ac8c66263f3587e18539e9f176", null ],
-    [ "buf", "classflatbuffers_1_1vector__downward.html#a30d500190ca6fe63296b751b37004945", null ],
-    [ "capacity", "classflatbuffers_1_1vector__downward.html#a5edea7ae27f81a770547ec1aada6a666", null ],
+    [ "capacity", "classflatbuffers_1_1vector__downward.html#aec8308b5b544432362049b94c3802800", null ],
     [ "clear", "classflatbuffers_1_1vector__downward.html#ae701e8e1cc468d1a3141e0fa22dc3a70", null ],
-    [ "data", "classflatbuffers_1_1vector__downward.html#a403cfdb1088a2f95ca5a4899dd45e313", null ],
-    [ "data_at", "classflatbuffers_1_1vector__downward.html#ac2983200e66457e256301e5bb6ffa2a8", null ],
+    [ "clear_scratch", "classflatbuffers_1_1vector__downward.html#a05dca3cd52b334b0643e2ae9e88b8b87", null ],
+    [ "data", "classflatbuffers_1_1vector__downward.html#aa1f13e25b0c619ba9a9c2d6b408e2587", null ],
+    [ "data_at", "classflatbuffers_1_1vector__downward.html#ae965771454bef2a2f7ad306bfda275f7", null ],
+    [ "ensure_space", "classflatbuffers_1_1vector__downward.html#a46e8f7f5035f87fe202419d6c5446eb3", null ],
     [ "fill", "classflatbuffers_1_1vector__downward.html#a692f950a105db47f983ff80d4e5c3772", null ],
     [ "fill_big", "classflatbuffers_1_1vector__downward.html#a99e13c5b83569b07df357c76feb1e614", null ],
     [ "get_allocator", "classflatbuffers_1_1vector__downward.html#abc8846756ed814d1722913105e0da7a3", null ],
-    [ "growth_policy", "classflatbuffers_1_1vector__downward.html#a00f9fca894e2a2963ae0867ff443d0c2", null ],
     [ "make_space", "classflatbuffers_1_1vector__downward.html#a4a0686bb0afe2feefec0502f527a11bf", null ],
     [ "pop", "classflatbuffers_1_1vector__downward.html#a23cd3d0692fe86eacc6324ea4b58a599", null ],
     [ "push", "classflatbuffers_1_1vector__downward.html#a8cfd1b66f93043acb9905519e9998ced", null ],
     [ "push_small", "classflatbuffers_1_1vector__downward.html#a23d309dc71c82cc13d1edefff0e7dd8f", null ],
     [ "release", "classflatbuffers_1_1vector__downward.html#aefa75049c70c00591f7786aeb9def1fe", null ],
     [ "reset", "classflatbuffers_1_1vector__downward.html#a4a5203e2960492f54ac4428d4caee0fc", null ],
-    [ "size", "classflatbuffers_1_1vector__downward.html#a551fe42b05fef8fc3f6dc6b955c6196b", null ]
+    [ "scratch_data", "classflatbuffers_1_1vector__downward.html#a297ab537a68b0a02b4577cfc4b5269a9", null ],
+    [ "scratch_end", "classflatbuffers_1_1vector__downward.html#a784ae8d43071ce644df0c0e8d59772d3", null ],
+    [ "scratch_pop", "classflatbuffers_1_1vector__downward.html#a96a36503bc1103a11c4a17d26dcaf770", null ],
+    [ "scratch_push_small", "classflatbuffers_1_1vector__downward.html#a44f77c18fb0aed4b9c22020ea69ff8c9", null ],
+    [ "scratch_size", "classflatbuffers_1_1vector__downward.html#a37856c0e5288338080818681b8aedb5d", null ],
+    [ "size", "classflatbuffers_1_1vector__downward.html#a70c8de02d393caddcedde603a5a45ae7", null ]
 ];
\ No newline at end of file
diff --git a/contributing.html b/contributing.html
index 7bc93fe0d351fe413d75435dd6471815f8545acd..860631998c849355e4dcdaf5151e3df94bd2e9a4 100644
--- a/contributing.html
+++ b/contributing.html
@@ -4,23 +4,21 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <title>FlatBuffers: Contributing</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
 <link href="navtree.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
 <script type="text/javascript" src="navtree.js"></script>
 <script type="text/javascript">
   $(document).ready(initResizable);
-  $(window).load(resizeHeight);
 </script>
 <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
 <script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
-  $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,500italic,700,700italic|Roboto+Mono:400,700" rel="stylesheet">
 <link href="style.css" rel="stylesheet" type="text/css"/>
@@ -46,39 +44,19 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.7 -->
+<!-- Generated by Doxygen 1.8.13 -->
 <script type="text/javascript">
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </script>
-  <div id="navrow1" class="tabs">
-    <ul class="tablist">
-      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
-      <li><a href="usergroup0.html"><span>Programmer's&#160;Guide</span></a></li>
-      <li><a href="flatbuffers_support.html"><span>Platform&#160;/&#160;Language&#160;/&#160;Feature&#160;support</span></a></li>
-      <li><a href="flatbuffers_benchmarks.html"><span>Benchmarks</span></a></li>
-      <li><a href="flatbuffers_white_paper.html"><span>FlatBuffers&#160;white&#160;paper</span></a></li>
-      <li><a href="flatbuffers_internals.html"><span>FlatBuffers&#160;internals</span></a></li>
-      <li><a href="flatbuffers_grammar.html"><span>Grammar&#160;of&#160;the&#160;schema&#160;language</span></a></li>
-      <li><a href="usergroup2.html"><span>API&#160;Reference</span></a></li>
-      <li><a href="contributing.html"><span>Contributing</span></a></li>
-      <li>
-        <div id="MSearchBox" class="MSearchBoxInactive">
-        <span class="left">
-          <img id="MSearchSelect" src="search/mag_sel.png"
-               onmouseover="return searchBox.OnSearchSelectShow()"
-               onmouseout="return searchBox.OnSearchSelectHide()"
-               alt=""/>
-          <input type="text" id="MSearchField" value="Search" accesskey="S"
-               onfocus="searchBox.OnSearchFieldFocus(true)" 
-               onblur="searchBox.OnSearchFieldFocus(false)" 
-               onkeyup="searchBox.OnSearchFieldChange(event)"/>
-          </span><span class="right">
-            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
-          </span>
-        </div>
-      </li>
-    </ul>
-  </div>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -99,7 +77,7 @@ $(document).ready(function(){initNavTree('contributing.html','');});
      onmouseover="return searchBox.OnSearchSelectShow()"
      onmouseout="return searchBox.OnSearchSelectHide()"
      onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Properties</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+</div>
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
diff --git a/dir_05194b7bb14e4bdbd759acf3e4294839.html b/dir_05194b7bb14e4bdbd759acf3e4294839.html
index b9671a50f23d51055305a4771a46a134cd3b3afc..20ee9ab899285fab515fc4512c74bb900fcfd081 100644
--- a/dir_05194b7bb14e4bdbd759acf3e4294839.html
+++ b/dir_05194b7bb14e4bdbd759acf3e4294839.html
@@ -4,23 +4,21 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <title>FlatBuffers: php Directory Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
 <link href="navtree.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
 <script type="text/javascript" src="navtree.js"></script>
 <script type="text/javascript">
   $(document).ready(initResizable);
-  $(window).load(resizeHeight);
 </script>
 <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
 <script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
-  $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,500italic,700,700italic|Roboto+Mono:400,700" rel="stylesheet">
 <link href="style.css" rel="stylesheet" type="text/css"/>
@@ -46,39 +44,19 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.7 -->
+<!-- Generated by Doxygen 1.8.13 -->
 <script type="text/javascript">
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </script>
-  <div id="navrow1" class="tabs">
-    <ul class="tablist">
-      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
-      <li><a href="usergroup0.html"><span>Programmer's&#160;Guide</span></a></li>
-      <li><a href="flatbuffers_support.html"><span>Platform&#160;/&#160;Language&#160;/&#160;Feature&#160;support</span></a></li>
-      <li><a href="flatbuffers_benchmarks.html"><span>Benchmarks</span></a></li>
-      <li><a href="flatbuffers_white_paper.html"><span>FlatBuffers&#160;white&#160;paper</span></a></li>
-      <li><a href="flatbuffers_internals.html"><span>FlatBuffers&#160;internals</span></a></li>
-      <li><a href="flatbuffers_grammar.html"><span>Grammar&#160;of&#160;the&#160;schema&#160;language</span></a></li>
-      <li><a href="usergroup2.html"><span>API&#160;Reference</span></a></li>
-      <li><a href="contributing.html"><span>Contributing</span></a></li>
-      <li>
-        <div id="MSearchBox" class="MSearchBoxInactive">
-        <span class="left">
-          <img id="MSearchSelect" src="search/mag_sel.png"
-               onmouseover="return searchBox.OnSearchSelectShow()"
-               onmouseout="return searchBox.OnSearchSelectHide()"
-               alt=""/>
-          <input type="text" id="MSearchField" value="Search" accesskey="S"
-               onfocus="searchBox.OnSearchFieldFocus(true)" 
-               onblur="searchBox.OnSearchFieldFocus(false)" 
-               onkeyup="searchBox.OnSearchFieldChange(event)"/>
-          </span><span class="right">
-            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
-          </span>
-        </div>
-      </li>
-    </ul>
-  </div>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -99,7 +77,7 @@ $(document).ready(function(){initNavTree('dir_05194b7bb14e4bdbd759acf3e4294839.h
      onmouseover="return searchBox.OnSearchSelectShow()"
      onmouseout="return searchBox.OnSearchSelectHide()"
      onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Properties</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+</div>
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
diff --git a/dir_0e37bed226164927aa2c526e48e3c9af.html b/dir_0e37bed226164927aa2c526e48e3c9af.html
index 9e6a4ac53da052339f5c8adee713599b967f5d00..968f1ad0bdc28831cbe1dddfd920c4ae2ca6c61f 100644
--- a/dir_0e37bed226164927aa2c526e48e3c9af.html
+++ b/dir_0e37bed226164927aa2c526e48e3c9af.html
@@ -4,23 +4,21 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <title>FlatBuffers: FlatBuffers Directory Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
 <link href="navtree.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
 <script type="text/javascript" src="navtree.js"></script>
 <script type="text/javascript">
   $(document).ready(initResizable);
-  $(window).load(resizeHeight);
 </script>
 <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
 <script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
-  $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,500italic,700,700italic|Roboto+Mono:400,700" rel="stylesheet">
 <link href="style.css" rel="stylesheet" type="text/css"/>
@@ -46,39 +44,19 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.7 -->
+<!-- Generated by Doxygen 1.8.13 -->
 <script type="text/javascript">
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </script>
-  <div id="navrow1" class="tabs">
-    <ul class="tablist">
-      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
-      <li><a href="usergroup0.html"><span>Programmer's&#160;Guide</span></a></li>
-      <li><a href="flatbuffers_support.html"><span>Platform&#160;/&#160;Language&#160;/&#160;Feature&#160;support</span></a></li>
-      <li><a href="flatbuffers_benchmarks.html"><span>Benchmarks</span></a></li>
-      <li><a href="flatbuffers_white_paper.html"><span>FlatBuffers&#160;white&#160;paper</span></a></li>
-      <li><a href="flatbuffers_internals.html"><span>FlatBuffers&#160;internals</span></a></li>
-      <li><a href="flatbuffers_grammar.html"><span>Grammar&#160;of&#160;the&#160;schema&#160;language</span></a></li>
-      <li><a href="usergroup2.html"><span>API&#160;Reference</span></a></li>
-      <li><a href="contributing.html"><span>Contributing</span></a></li>
-      <li>
-        <div id="MSearchBox" class="MSearchBoxInactive">
-        <span class="left">
-          <img id="MSearchSelect" src="search/mag_sel.png"
-               onmouseover="return searchBox.OnSearchSelectShow()"
-               onmouseout="return searchBox.OnSearchSelectHide()"
-               alt=""/>
-          <input type="text" id="MSearchField" value="Search" accesskey="S"
-               onfocus="searchBox.OnSearchFieldFocus(true)" 
-               onblur="searchBox.OnSearchFieldFocus(false)" 
-               onkeyup="searchBox.OnSearchFieldChange(event)"/>
-          </span><span class="right">
-            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
-          </span>
-        </div>
-      </li>
-    </ul>
-  </div>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -99,7 +77,7 @@ $(document).ready(function(){initNavTree('dir_0e37bed226164927aa2c526e48e3c9af.h
      onmouseover="return searchBox.OnSearchSelectShow()"
      onmouseout="return searchBox.OnSearchSelectHide()"
      onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Properties</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+</div>
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
diff --git a/dir_1036070c9379c90b9865e1585bb57938.html b/dir_1036070c9379c90b9865e1585bb57938.html
index a544d0da74acc804dcaec0c2b6a570eeaa01ae1e..4386a70ca3f33418fd149167948b1baf1cd86359 100644
--- a/dir_1036070c9379c90b9865e1585bb57938.html
+++ b/dir_1036070c9379c90b9865e1585bb57938.html
@@ -4,23 +4,21 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <title>FlatBuffers: go Directory Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
 <link href="navtree.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
 <script type="text/javascript" src="navtree.js"></script>
 <script type="text/javascript">
   $(document).ready(initResizable);
-  $(window).load(resizeHeight);
 </script>
 <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
 <script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
-  $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,500italic,700,700italic|Roboto+Mono:400,700" rel="stylesheet">
 <link href="style.css" rel="stylesheet" type="text/css"/>
@@ -46,39 +44,19 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.7 -->
+<!-- Generated by Doxygen 1.8.13 -->
 <script type="text/javascript">
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </script>
-  <div id="navrow1" class="tabs">
-    <ul class="tablist">
-      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
-      <li><a href="usergroup0.html"><span>Programmer's&#160;Guide</span></a></li>
-      <li><a href="flatbuffers_support.html"><span>Platform&#160;/&#160;Language&#160;/&#160;Feature&#160;support</span></a></li>
-      <li><a href="flatbuffers_benchmarks.html"><span>Benchmarks</span></a></li>
-      <li><a href="flatbuffers_white_paper.html"><span>FlatBuffers&#160;white&#160;paper</span></a></li>
-      <li><a href="flatbuffers_internals.html"><span>FlatBuffers&#160;internals</span></a></li>
-      <li><a href="flatbuffers_grammar.html"><span>Grammar&#160;of&#160;the&#160;schema&#160;language</span></a></li>
-      <li><a href="usergroup2.html"><span>API&#160;Reference</span></a></li>
-      <li><a href="contributing.html"><span>Contributing</span></a></li>
-      <li>
-        <div id="MSearchBox" class="MSearchBoxInactive">
-        <span class="left">
-          <img id="MSearchSelect" src="search/mag_sel.png"
-               onmouseover="return searchBox.OnSearchSelectShow()"
-               onmouseout="return searchBox.OnSearchSelectHide()"
-               alt=""/>
-          <input type="text" id="MSearchField" value="Search" accesskey="S"
-               onfocus="searchBox.OnSearchFieldFocus(true)" 
-               onblur="searchBox.OnSearchFieldFocus(false)" 
-               onkeyup="searchBox.OnSearchFieldChange(event)"/>
-          </span><span class="right">
-            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
-          </span>
-        </div>
-      </li>
-    </ul>
-  </div>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -99,7 +77,7 @@ $(document).ready(function(){initNavTree('dir_1036070c9379c90b9865e1585bb57938.h
      onmouseover="return searchBox.OnSearchSelectShow()"
      onmouseout="return searchBox.OnSearchSelectHide()"
      onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Properties</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+</div>
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
@@ -113,12 +91,6 @@ $(document).ready(function(){initNavTree('dir_1036070c9379c90b9865e1585bb57938.h
 <div class="title">go Directory Reference</div>  </div>
 </div><!--header-->
 <div class="contents">
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
-Files</h2></td></tr>
-<tr class="memitem:builder_8go"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>builder.go</b></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
 </div><!-- contents -->
 </div><!-- doc-content -->
 <!-- Google Analytics -->
diff --git a/dir_2867b8401105090ba43035c8b1fd9c0c.html b/dir_2867b8401105090ba43035c8b1fd9c0c.html
index 6b8aef418e05122293b010b3752f13896ecb18dc..b4adb97fcdfc91955469fa45466f43a4b9d90ae4 100644
--- a/dir_2867b8401105090ba43035c8b1fd9c0c.html
+++ b/dir_2867b8401105090ba43035c8b1fd9c0c.html
@@ -4,23 +4,21 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <title>FlatBuffers: js Directory Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
 <link href="navtree.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
 <script type="text/javascript" src="navtree.js"></script>
 <script type="text/javascript">
   $(document).ready(initResizable);
-  $(window).load(resizeHeight);
 </script>
 <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
 <script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
-  $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,500italic,700,700italic|Roboto+Mono:400,700" rel="stylesheet">
 <link href="style.css" rel="stylesheet" type="text/css"/>
@@ -46,39 +44,19 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.7 -->
+<!-- Generated by Doxygen 1.8.13 -->
 <script type="text/javascript">
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </script>
-  <div id="navrow1" class="tabs">
-    <ul class="tablist">
-      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
-      <li><a href="usergroup0.html"><span>Programmer's&#160;Guide</span></a></li>
-      <li><a href="flatbuffers_support.html"><span>Platform&#160;/&#160;Language&#160;/&#160;Feature&#160;support</span></a></li>
-      <li><a href="flatbuffers_benchmarks.html"><span>Benchmarks</span></a></li>
-      <li><a href="flatbuffers_white_paper.html"><span>FlatBuffers&#160;white&#160;paper</span></a></li>
-      <li><a href="flatbuffers_internals.html"><span>FlatBuffers&#160;internals</span></a></li>
-      <li><a href="flatbuffers_grammar.html"><span>Grammar&#160;of&#160;the&#160;schema&#160;language</span></a></li>
-      <li><a href="usergroup2.html"><span>API&#160;Reference</span></a></li>
-      <li><a href="contributing.html"><span>Contributing</span></a></li>
-      <li>
-        <div id="MSearchBox" class="MSearchBoxInactive">
-        <span class="left">
-          <img id="MSearchSelect" src="search/mag_sel.png"
-               onmouseover="return searchBox.OnSearchSelectShow()"
-               onmouseout="return searchBox.OnSearchSelectHide()"
-               alt=""/>
-          <input type="text" id="MSearchField" value="Search" accesskey="S"
-               onfocus="searchBox.OnSearchFieldFocus(true)" 
-               onblur="searchBox.OnSearchFieldFocus(false)" 
-               onkeyup="searchBox.OnSearchFieldChange(event)"/>
-          </span><span class="right">
-            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
-          </span>
-        </div>
-      </li>
-    </ul>
-  </div>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -99,7 +77,7 @@ $(document).ready(function(){initNavTree('dir_2867b8401105090ba43035c8b1fd9c0c.h
      onmouseover="return searchBox.OnSearchSelectShow()"
      onmouseout="return searchBox.OnSearchSelectHide()"
      onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Properties</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+</div>
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
@@ -113,12 +91,6 @@ $(document).ready(function(){initNavTree('dir_2867b8401105090ba43035c8b1fd9c0c.h
 <div class="title">js Directory Reference</div>  </div>
 </div><!--header-->
 <div class="contents">
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
-Files</h2></td></tr>
-<tr class="memitem:flatbuffers_8js"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="flatbuffers_8js.html">flatbuffers.js</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
 </div><!-- contents -->
 </div><!-- doc-content -->
 <!-- Google Analytics -->
diff --git a/dir_427baa8a9a5be237f298d4545d0d1ce2.html b/dir_427baa8a9a5be237f298d4545d0d1ce2.html
index eb9cfe7fc5de9294d1179a5ec0e0bae336cb316f..b195de80d883f0aa733e274e1486b3b7bddb4b03 100644
--- a/dir_427baa8a9a5be237f298d4545d0d1ce2.html
+++ b/dir_427baa8a9a5be237f298d4545d0d1ce2.html
@@ -4,23 +4,21 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <title>FlatBuffers: net Directory Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
 <link href="navtree.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
 <script type="text/javascript" src="navtree.js"></script>
 <script type="text/javascript">
   $(document).ready(initResizable);
-  $(window).load(resizeHeight);
 </script>
 <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
 <script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
-  $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,500italic,700,700italic|Roboto+Mono:400,700" rel="stylesheet">
 <link href="style.css" rel="stylesheet" type="text/css"/>
@@ -46,39 +44,19 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.7 -->
+<!-- Generated by Doxygen 1.8.13 -->
 <script type="text/javascript">
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </script>
-  <div id="navrow1" class="tabs">
-    <ul class="tablist">
-      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
-      <li><a href="usergroup0.html"><span>Programmer's&#160;Guide</span></a></li>
-      <li><a href="flatbuffers_support.html"><span>Platform&#160;/&#160;Language&#160;/&#160;Feature&#160;support</span></a></li>
-      <li><a href="flatbuffers_benchmarks.html"><span>Benchmarks</span></a></li>
-      <li><a href="flatbuffers_white_paper.html"><span>FlatBuffers&#160;white&#160;paper</span></a></li>
-      <li><a href="flatbuffers_internals.html"><span>FlatBuffers&#160;internals</span></a></li>
-      <li><a href="flatbuffers_grammar.html"><span>Grammar&#160;of&#160;the&#160;schema&#160;language</span></a></li>
-      <li><a href="usergroup2.html"><span>API&#160;Reference</span></a></li>
-      <li><a href="contributing.html"><span>Contributing</span></a></li>
-      <li>
-        <div id="MSearchBox" class="MSearchBoxInactive">
-        <span class="left">
-          <img id="MSearchSelect" src="search/mag_sel.png"
-               onmouseover="return searchBox.OnSearchSelectShow()"
-               onmouseout="return searchBox.OnSearchSelectHide()"
-               alt=""/>
-          <input type="text" id="MSearchField" value="Search" accesskey="S"
-               onfocus="searchBox.OnSearchFieldFocus(true)" 
-               onblur="searchBox.OnSearchFieldFocus(false)" 
-               onkeyup="searchBox.OnSearchFieldChange(event)"/>
-          </span><span class="right">
-            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
-          </span>
-        </div>
-      </li>
-    </ul>
-  </div>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -99,7 +77,7 @@ $(document).ready(function(){initNavTree('dir_427baa8a9a5be237f298d4545d0d1ce2.h
      onmouseover="return searchBox.OnSearchSelectShow()"
      onmouseout="return searchBox.OnSearchSelectHide()"
      onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Properties</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+</div>
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
@@ -116,8 +94,6 @@ $(document).ready(function(){initNavTree('dir_427baa8a9a5be237f298d4545d0d1ce2.h
 <table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="subdirs"></a>
 Directories</h2></td></tr>
-<tr class="memitem:dir_0e37bed226164927aa2c526e48e3c9af"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_0e37bed226164927aa2c526e48e3c9af.html">FlatBuffers</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 </div><!-- contents -->
 </div><!-- doc-content -->
diff --git a/dir_4d44a7834a0220e3079d88886922def6.html b/dir_4d44a7834a0220e3079d88886922def6.html
index 2986895b87256b5b6d80cb7798101a385bd7bf92..b2de8ac4b048dec4ce19fd35efd92c178d42f25b 100644
--- a/dir_4d44a7834a0220e3079d88886922def6.html
+++ b/dir_4d44a7834a0220e3079d88886922def6.html
@@ -4,23 +4,21 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <title>FlatBuffers: flatbuffers Directory Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
 <link href="navtree.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
 <script type="text/javascript" src="navtree.js"></script>
 <script type="text/javascript">
   $(document).ready(initResizable);
-  $(window).load(resizeHeight);
 </script>
 <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
 <script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
-  $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,500italic,700,700italic|Roboto+Mono:400,700" rel="stylesheet">
 <link href="style.css" rel="stylesheet" type="text/css"/>
@@ -46,39 +44,19 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.7 -->
+<!-- Generated by Doxygen 1.8.13 -->
 <script type="text/javascript">
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </script>
-  <div id="navrow1" class="tabs">
-    <ul class="tablist">
-      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
-      <li><a href="usergroup0.html"><span>Programmer's&#160;Guide</span></a></li>
-      <li><a href="flatbuffers_support.html"><span>Platform&#160;/&#160;Language&#160;/&#160;Feature&#160;support</span></a></li>
-      <li><a href="flatbuffers_benchmarks.html"><span>Benchmarks</span></a></li>
-      <li><a href="flatbuffers_white_paper.html"><span>FlatBuffers&#160;white&#160;paper</span></a></li>
-      <li><a href="flatbuffers_internals.html"><span>FlatBuffers&#160;internals</span></a></li>
-      <li><a href="flatbuffers_grammar.html"><span>Grammar&#160;of&#160;the&#160;schema&#160;language</span></a></li>
-      <li><a href="usergroup2.html"><span>API&#160;Reference</span></a></li>
-      <li><a href="contributing.html"><span>Contributing</span></a></li>
-      <li>
-        <div id="MSearchBox" class="MSearchBoxInactive">
-        <span class="left">
-          <img id="MSearchSelect" src="search/mag_sel.png"
-               onmouseover="return searchBox.OnSearchSelectShow()"
-               onmouseout="return searchBox.OnSearchSelectHide()"
-               alt=""/>
-          <input type="text" id="MSearchField" value="Search" accesskey="S"
-               onfocus="searchBox.OnSearchFieldFocus(true)" 
-               onblur="searchBox.OnSearchFieldFocus(false)" 
-               onkeyup="searchBox.OnSearchFieldChange(event)"/>
-          </span><span class="right">
-            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
-          </span>
-        </div>
-      </li>
-    </ul>
-  </div>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -99,7 +77,7 @@ $(document).ready(function(){initNavTree('dir_4d44a7834a0220e3079d88886922def6.h
      onmouseover="return searchBox.OnSearchSelectShow()"
      onmouseout="return searchBox.OnSearchSelectHide()"
      onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Properties</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+</div>
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
@@ -113,12 +91,6 @@ $(document).ready(function(){initNavTree('dir_4d44a7834a0220e3079d88886922def6.h
 <div class="title">flatbuffers Directory Reference</div>  </div>
 </div><!--header-->
 <div class="contents">
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
-Files</h2></td></tr>
-<tr class="memitem:flatbuffers_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>flatbuffers.h</b> <a href="flatbuffers_8h_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
 </div><!-- contents -->
 </div><!-- doc-content -->
 <!-- Google Analytics -->
diff --git a/dir_6f01889fa69585f5458dd2f93b8129fa.html b/dir_6f01889fa69585f5458dd2f93b8129fa.html
index 8f7aef2c06ab4862d63a328762542da78f698719..1baaa1a6e3fdf4c18c5c120a33e9af46f104b6ba 100644
--- a/dir_6f01889fa69585f5458dd2f93b8129fa.html
+++ b/dir_6f01889fa69585f5458dd2f93b8129fa.html
@@ -4,23 +4,21 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <title>FlatBuffers: google Directory Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
 <link href="navtree.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
 <script type="text/javascript" src="navtree.js"></script>
 <script type="text/javascript">
   $(document).ready(initResizable);
-  $(window).load(resizeHeight);
 </script>
 <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
 <script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
-  $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,500italic,700,700italic|Roboto+Mono:400,700" rel="stylesheet">
 <link href="style.css" rel="stylesheet" type="text/css"/>
@@ -46,39 +44,19 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.7 -->
+<!-- Generated by Doxygen 1.8.13 -->
 <script type="text/javascript">
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </script>
-  <div id="navrow1" class="tabs">
-    <ul class="tablist">
-      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
-      <li><a href="usergroup0.html"><span>Programmer's&#160;Guide</span></a></li>
-      <li><a href="flatbuffers_support.html"><span>Platform&#160;/&#160;Language&#160;/&#160;Feature&#160;support</span></a></li>
-      <li><a href="flatbuffers_benchmarks.html"><span>Benchmarks</span></a></li>
-      <li><a href="flatbuffers_white_paper.html"><span>FlatBuffers&#160;white&#160;paper</span></a></li>
-      <li><a href="flatbuffers_internals.html"><span>FlatBuffers&#160;internals</span></a></li>
-      <li><a href="flatbuffers_grammar.html"><span>Grammar&#160;of&#160;the&#160;schema&#160;language</span></a></li>
-      <li><a href="usergroup2.html"><span>API&#160;Reference</span></a></li>
-      <li><a href="contributing.html"><span>Contributing</span></a></li>
-      <li>
-        <div id="MSearchBox" class="MSearchBoxInactive">
-        <span class="left">
-          <img id="MSearchSelect" src="search/mag_sel.png"
-               onmouseover="return searchBox.OnSearchSelectShow()"
-               onmouseout="return searchBox.OnSearchSelectHide()"
-               alt=""/>
-          <input type="text" id="MSearchField" value="Search" accesskey="S"
-               onfocus="searchBox.OnSearchFieldFocus(true)" 
-               onblur="searchBox.OnSearchFieldFocus(false)" 
-               onkeyup="searchBox.OnSearchFieldChange(event)"/>
-          </span><span class="right">
-            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
-          </span>
-        </div>
-      </li>
-    </ul>
-  </div>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -99,7 +77,7 @@ $(document).ready(function(){initNavTree('dir_6f01889fa69585f5458dd2f93b8129fa.h
      onmouseover="return searchBox.OnSearchSelectShow()"
      onmouseout="return searchBox.OnSearchSelectHide()"
      onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Properties</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+</div>
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
@@ -116,8 +94,6 @@ $(document).ready(function(){initNavTree('dir_6f01889fa69585f5458dd2f93b8129fa.h
 <table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="subdirs"></a>
 Directories</h2></td></tr>
-<tr class="memitem:dir_aa1ba5078724e0ea09d9b49b3a016128"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_aa1ba5078724e0ea09d9b49b3a016128.html">flatbuffers</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 </div><!-- contents -->
 </div><!-- doc-content -->
diff --git a/dir_7837fde3ab9c1fb2fc5be7b717af8d79.html b/dir_7837fde3ab9c1fb2fc5be7b717af8d79.html
index f63d59a80424e02d64102064a82bd02a183ee754..0a98180a38fb0c29252034bf5338c586b41916ff 100644
--- a/dir_7837fde3ab9c1fb2fc5be7b717af8d79.html
+++ b/dir_7837fde3ab9c1fb2fc5be7b717af8d79.html
@@ -4,23 +4,21 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <title>FlatBuffers: python Directory Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
 <link href="navtree.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
 <script type="text/javascript" src="navtree.js"></script>
 <script type="text/javascript">
   $(document).ready(initResizable);
-  $(window).load(resizeHeight);
 </script>
 <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
 <script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
-  $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,500italic,700,700italic|Roboto+Mono:400,700" rel="stylesheet">
 <link href="style.css" rel="stylesheet" type="text/css"/>
@@ -46,39 +44,19 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.7 -->
+<!-- Generated by Doxygen 1.8.13 -->
 <script type="text/javascript">
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </script>
-  <div id="navrow1" class="tabs">
-    <ul class="tablist">
-      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
-      <li><a href="usergroup0.html"><span>Programmer's&#160;Guide</span></a></li>
-      <li><a href="flatbuffers_support.html"><span>Platform&#160;/&#160;Language&#160;/&#160;Feature&#160;support</span></a></li>
-      <li><a href="flatbuffers_benchmarks.html"><span>Benchmarks</span></a></li>
-      <li><a href="flatbuffers_white_paper.html"><span>FlatBuffers&#160;white&#160;paper</span></a></li>
-      <li><a href="flatbuffers_internals.html"><span>FlatBuffers&#160;internals</span></a></li>
-      <li><a href="flatbuffers_grammar.html"><span>Grammar&#160;of&#160;the&#160;schema&#160;language</span></a></li>
-      <li><a href="usergroup2.html"><span>API&#160;Reference</span></a></li>
-      <li><a href="contributing.html"><span>Contributing</span></a></li>
-      <li>
-        <div id="MSearchBox" class="MSearchBoxInactive">
-        <span class="left">
-          <img id="MSearchSelect" src="search/mag_sel.png"
-               onmouseover="return searchBox.OnSearchSelectShow()"
-               onmouseout="return searchBox.OnSearchSelectHide()"
-               alt=""/>
-          <input type="text" id="MSearchField" value="Search" accesskey="S"
-               onfocus="searchBox.OnSearchFieldFocus(true)" 
-               onblur="searchBox.OnSearchFieldFocus(false)" 
-               onkeyup="searchBox.OnSearchFieldChange(event)"/>
-          </span><span class="right">
-            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
-          </span>
-        </div>
-      </li>
-    </ul>
-  </div>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -99,7 +77,7 @@ $(document).ready(function(){initNavTree('dir_7837fde3ab9c1fb2fc5be7b717af8d79.h
      onmouseover="return searchBox.OnSearchSelectShow()"
      onmouseout="return searchBox.OnSearchSelectHide()"
      onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Properties</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+</div>
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
@@ -116,8 +94,6 @@ $(document).ready(function(){initNavTree('dir_7837fde3ab9c1fb2fc5be7b717af8d79.h
 <table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="subdirs"></a>
 Directories</h2></td></tr>
-<tr class="memitem:dir_bebd57e0257eca849e35e7c4620d27be"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_bebd57e0257eca849e35e7c4620d27be.html">flatbuffers</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 </div><!-- contents -->
 </div><!-- doc-content -->
diff --git a/dir_8a22873406ddef3ffbbc0bacea2033ba.html b/dir_8a22873406ddef3ffbbc0bacea2033ba.html
index 4ab743411356b187fdb1e2c261d83a2cd243e9f3..a67a2a91994f30bc304053d3f6ac665bc9209a83 100644
--- a/dir_8a22873406ddef3ffbbc0bacea2033ba.html
+++ b/dir_8a22873406ddef3ffbbc0bacea2033ba.html
@@ -4,23 +4,21 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <title>FlatBuffers: com Directory Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
 <link href="navtree.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
 <script type="text/javascript" src="navtree.js"></script>
 <script type="text/javascript">
   $(document).ready(initResizable);
-  $(window).load(resizeHeight);
 </script>
 <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
 <script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
-  $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,500italic,700,700italic|Roboto+Mono:400,700" rel="stylesheet">
 <link href="style.css" rel="stylesheet" type="text/css"/>
@@ -46,39 +44,19 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.7 -->
+<!-- Generated by Doxygen 1.8.13 -->
 <script type="text/javascript">
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </script>
-  <div id="navrow1" class="tabs">
-    <ul class="tablist">
-      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
-      <li><a href="usergroup0.html"><span>Programmer's&#160;Guide</span></a></li>
-      <li><a href="flatbuffers_support.html"><span>Platform&#160;/&#160;Language&#160;/&#160;Feature&#160;support</span></a></li>
-      <li><a href="flatbuffers_benchmarks.html"><span>Benchmarks</span></a></li>
-      <li><a href="flatbuffers_white_paper.html"><span>FlatBuffers&#160;white&#160;paper</span></a></li>
-      <li><a href="flatbuffers_internals.html"><span>FlatBuffers&#160;internals</span></a></li>
-      <li><a href="flatbuffers_grammar.html"><span>Grammar&#160;of&#160;the&#160;schema&#160;language</span></a></li>
-      <li><a href="usergroup2.html"><span>API&#160;Reference</span></a></li>
-      <li><a href="contributing.html"><span>Contributing</span></a></li>
-      <li>
-        <div id="MSearchBox" class="MSearchBoxInactive">
-        <span class="left">
-          <img id="MSearchSelect" src="search/mag_sel.png"
-               onmouseover="return searchBox.OnSearchSelectShow()"
-               onmouseout="return searchBox.OnSearchSelectHide()"
-               alt=""/>
-          <input type="text" id="MSearchField" value="Search" accesskey="S"
-               onfocus="searchBox.OnSearchFieldFocus(true)" 
-               onblur="searchBox.OnSearchFieldFocus(false)" 
-               onkeyup="searchBox.OnSearchFieldChange(event)"/>
-          </span><span class="right">
-            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
-          </span>
-        </div>
-      </li>
-    </ul>
-  </div>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -99,7 +77,7 @@ $(document).ready(function(){initNavTree('dir_8a22873406ddef3ffbbc0bacea2033ba.h
      onmouseover="return searchBox.OnSearchSelectShow()"
      onmouseout="return searchBox.OnSearchSelectHide()"
      onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Properties</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+</div>
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
@@ -113,12 +91,6 @@ $(document).ready(function(){initNavTree('dir_8a22873406ddef3ffbbc0bacea2033ba.h
 <div class="title">com Directory Reference</div>  </div>
 </div><!--header-->
 <div class="contents">
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="subdirs"></a>
-Directories</h2></td></tr>
-<tr class="memitem:dir_6f01889fa69585f5458dd2f93b8129fa"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_6f01889fa69585f5458dd2f93b8129fa.html">google</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
 </div><!-- contents -->
 </div><!-- doc-content -->
 <!-- Google Analytics -->
diff --git a/dir_93c6ba7fb77bae0709fae89c9c13b44a.html b/dir_93c6ba7fb77bae0709fae89c9c13b44a.html
index 287d2b1ea7bc7fad991374ab6580324f358119e2..4f03c478e90ba594f6ac1e64e0ee5a630ca5d7ef 100644
--- a/dir_93c6ba7fb77bae0709fae89c9c13b44a.html
+++ b/dir_93c6ba7fb77bae0709fae89c9c13b44a.html
@@ -4,23 +4,21 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <title>FlatBuffers: java Directory Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
 <link href="navtree.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
 <script type="text/javascript" src="navtree.js"></script>
 <script type="text/javascript">
   $(document).ready(initResizable);
-  $(window).load(resizeHeight);
 </script>
 <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
 <script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
-  $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,500italic,700,700italic|Roboto+Mono:400,700" rel="stylesheet">
 <link href="style.css" rel="stylesheet" type="text/css"/>
@@ -46,39 +44,19 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.7 -->
+<!-- Generated by Doxygen 1.8.13 -->
 <script type="text/javascript">
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </script>
-  <div id="navrow1" class="tabs">
-    <ul class="tablist">
-      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
-      <li><a href="usergroup0.html"><span>Programmer's&#160;Guide</span></a></li>
-      <li><a href="flatbuffers_support.html"><span>Platform&#160;/&#160;Language&#160;/&#160;Feature&#160;support</span></a></li>
-      <li><a href="flatbuffers_benchmarks.html"><span>Benchmarks</span></a></li>
-      <li><a href="flatbuffers_white_paper.html"><span>FlatBuffers&#160;white&#160;paper</span></a></li>
-      <li><a href="flatbuffers_internals.html"><span>FlatBuffers&#160;internals</span></a></li>
-      <li><a href="flatbuffers_grammar.html"><span>Grammar&#160;of&#160;the&#160;schema&#160;language</span></a></li>
-      <li><a href="usergroup2.html"><span>API&#160;Reference</span></a></li>
-      <li><a href="contributing.html"><span>Contributing</span></a></li>
-      <li>
-        <div id="MSearchBox" class="MSearchBoxInactive">
-        <span class="left">
-          <img id="MSearchSelect" src="search/mag_sel.png"
-               onmouseover="return searchBox.OnSearchSelectShow()"
-               onmouseout="return searchBox.OnSearchSelectHide()"
-               alt=""/>
-          <input type="text" id="MSearchField" value="Search" accesskey="S"
-               onfocus="searchBox.OnSearchFieldFocus(true)" 
-               onblur="searchBox.OnSearchFieldFocus(false)" 
-               onkeyup="searchBox.OnSearchFieldChange(event)"/>
-          </span><span class="right">
-            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
-          </span>
-        </div>
-      </li>
-    </ul>
-  </div>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -99,7 +77,7 @@ $(document).ready(function(){initNavTree('dir_93c6ba7fb77bae0709fae89c9c13b44a.h
      onmouseover="return searchBox.OnSearchSelectShow()"
      onmouseout="return searchBox.OnSearchSelectHide()"
      onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Properties</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+</div>
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
@@ -113,12 +91,6 @@ $(document).ready(function(){initNavTree('dir_93c6ba7fb77bae0709fae89c9c13b44a.h
 <div class="title">java Directory Reference</div>  </div>
 </div><!--header-->
 <div class="contents">
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="subdirs"></a>
-Directories</h2></td></tr>
-<tr class="memitem:dir_8a22873406ddef3ffbbc0bacea2033ba"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_8a22873406ddef3ffbbc0bacea2033ba.html">com</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
 </div><!-- contents -->
 </div><!-- doc-content -->
 <!-- Google Analytics -->
diff --git a/dir_aa1ba5078724e0ea09d9b49b3a016128.html b/dir_aa1ba5078724e0ea09d9b49b3a016128.html
index 0b8620f565167bc7bc99921c7de62ddbdd32d78c..60b9c7325573bc1e8681210d30b6226f237bd4c0 100644
--- a/dir_aa1ba5078724e0ea09d9b49b3a016128.html
+++ b/dir_aa1ba5078724e0ea09d9b49b3a016128.html
@@ -4,23 +4,21 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <title>FlatBuffers: flatbuffers Directory Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
 <link href="navtree.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
 <script type="text/javascript" src="navtree.js"></script>
 <script type="text/javascript">
   $(document).ready(initResizable);
-  $(window).load(resizeHeight);
 </script>
 <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
 <script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
-  $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,500italic,700,700italic|Roboto+Mono:400,700" rel="stylesheet">
 <link href="style.css" rel="stylesheet" type="text/css"/>
@@ -46,39 +44,19 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.7 -->
+<!-- Generated by Doxygen 1.8.13 -->
 <script type="text/javascript">
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </script>
-  <div id="navrow1" class="tabs">
-    <ul class="tablist">
-      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
-      <li><a href="usergroup0.html"><span>Programmer's&#160;Guide</span></a></li>
-      <li><a href="flatbuffers_support.html"><span>Platform&#160;/&#160;Language&#160;/&#160;Feature&#160;support</span></a></li>
-      <li><a href="flatbuffers_benchmarks.html"><span>Benchmarks</span></a></li>
-      <li><a href="flatbuffers_white_paper.html"><span>FlatBuffers&#160;white&#160;paper</span></a></li>
-      <li><a href="flatbuffers_internals.html"><span>FlatBuffers&#160;internals</span></a></li>
-      <li><a href="flatbuffers_grammar.html"><span>Grammar&#160;of&#160;the&#160;schema&#160;language</span></a></li>
-      <li><a href="usergroup2.html"><span>API&#160;Reference</span></a></li>
-      <li><a href="contributing.html"><span>Contributing</span></a></li>
-      <li>
-        <div id="MSearchBox" class="MSearchBoxInactive">
-        <span class="left">
-          <img id="MSearchSelect" src="search/mag_sel.png"
-               onmouseover="return searchBox.OnSearchSelectShow()"
-               onmouseout="return searchBox.OnSearchSelectHide()"
-               alt=""/>
-          <input type="text" id="MSearchField" value="Search" accesskey="S"
-               onfocus="searchBox.OnSearchFieldFocus(true)" 
-               onblur="searchBox.OnSearchFieldFocus(false)" 
-               onkeyup="searchBox.OnSearchFieldChange(event)"/>
-          </span><span class="right">
-            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
-          </span>
-        </div>
-      </li>
-    </ul>
-  </div>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -99,7 +77,7 @@ $(document).ready(function(){initNavTree('dir_aa1ba5078724e0ea09d9b49b3a016128.h
      onmouseover="return searchBox.OnSearchSelectShow()"
      onmouseout="return searchBox.OnSearchSelectHide()"
      onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Properties</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+</div>
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
@@ -116,14 +94,10 @@ $(document).ready(function(){initNavTree('dir_aa1ba5078724e0ea09d9b49b3a016128.h
 <table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
 Files</h2></td></tr>
-<tr class="memitem:_constants_8java"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>Constants.java</b></td></tr>
+<tr class="memitem:_byte_buffer_util_8java"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_byte_buffer_util_8java.html">ByteBufferUtil.java</a></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:_flat_buffer_builder_8java"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_flat_buffer_builder_8java.html">FlatBufferBuilder.java</a></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:_struct_8java"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>Struct.java</b></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:_table_8java"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>Table.java</b></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 </div><!-- contents -->
 </div><!-- doc-content -->
diff --git a/dir_bebd57e0257eca849e35e7c4620d27be.html b/dir_bebd57e0257eca849e35e7c4620d27be.html
index bdd48de66266df9a8577a436886f847375ee8f63..3d457eb79d6ce22849da10e58e5fac5f21626782 100644
--- a/dir_bebd57e0257eca849e35e7c4620d27be.html
+++ b/dir_bebd57e0257eca849e35e7c4620d27be.html
@@ -4,23 +4,21 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <title>FlatBuffers: flatbuffers Directory Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
 <link href="navtree.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
 <script type="text/javascript" src="navtree.js"></script>
 <script type="text/javascript">
   $(document).ready(initResizable);
-  $(window).load(resizeHeight);
 </script>
 <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
 <script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
-  $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,500italic,700,700italic|Roboto+Mono:400,700" rel="stylesheet">
 <link href="style.css" rel="stylesheet" type="text/css"/>
@@ -46,39 +44,19 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.7 -->
+<!-- Generated by Doxygen 1.8.13 -->
 <script type="text/javascript">
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </script>
-  <div id="navrow1" class="tabs">
-    <ul class="tablist">
-      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
-      <li><a href="usergroup0.html"><span>Programmer's&#160;Guide</span></a></li>
-      <li><a href="flatbuffers_support.html"><span>Platform&#160;/&#160;Language&#160;/&#160;Feature&#160;support</span></a></li>
-      <li><a href="flatbuffers_benchmarks.html"><span>Benchmarks</span></a></li>
-      <li><a href="flatbuffers_white_paper.html"><span>FlatBuffers&#160;white&#160;paper</span></a></li>
-      <li><a href="flatbuffers_internals.html"><span>FlatBuffers&#160;internals</span></a></li>
-      <li><a href="flatbuffers_grammar.html"><span>Grammar&#160;of&#160;the&#160;schema&#160;language</span></a></li>
-      <li><a href="usergroup2.html"><span>API&#160;Reference</span></a></li>
-      <li><a href="contributing.html"><span>Contributing</span></a></li>
-      <li>
-        <div id="MSearchBox" class="MSearchBoxInactive">
-        <span class="left">
-          <img id="MSearchSelect" src="search/mag_sel.png"
-               onmouseover="return searchBox.OnSearchSelectShow()"
-               onmouseout="return searchBox.OnSearchSelectHide()"
-               alt=""/>
-          <input type="text" id="MSearchField" value="Search" accesskey="S"
-               onfocus="searchBox.OnSearchFieldFocus(true)" 
-               onblur="searchBox.OnSearchFieldFocus(false)" 
-               onkeyup="searchBox.OnSearchFieldChange(event)"/>
-          </span><span class="right">
-            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
-          </span>
-        </div>
-      </li>
-    </ul>
-  </div>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -99,7 +77,7 @@ $(document).ready(function(){initNavTree('dir_bebd57e0257eca849e35e7c4620d27be.h
      onmouseover="return searchBox.OnSearchSelectShow()"
      onmouseout="return searchBox.OnSearchSelectHide()"
      onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Properties</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+</div>
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
@@ -113,12 +91,6 @@ $(document).ready(function(){initNavTree('dir_bebd57e0257eca849e35e7c4620d27be.h
 <div class="title">flatbuffers Directory Reference</div>  </div>
 </div><!--header-->
 <div class="contents">
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
-Files</h2></td></tr>
-<tr class="memitem:builder_8py"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>builder.py</b></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
 </div><!-- contents -->
 </div><!-- doc-content -->
 <!-- Google Analytics -->
diff --git a/dir_d44c64559bbebec7f509842c48db8b23.html b/dir_d44c64559bbebec7f509842c48db8b23.html
index 9f1d9669043659c84f8ee23e5797b383ae5111a5..1374183a9a12438103bfb0005691550cebdc2b08 100644
--- a/dir_d44c64559bbebec7f509842c48db8b23.html
+++ b/dir_d44c64559bbebec7f509842c48db8b23.html
@@ -4,23 +4,21 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <title>FlatBuffers: include Directory Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
 <link href="navtree.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
 <script type="text/javascript" src="navtree.js"></script>
 <script type="text/javascript">
   $(document).ready(initResizable);
-  $(window).load(resizeHeight);
 </script>
 <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
 <script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
-  $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,500italic,700,700italic|Roboto+Mono:400,700" rel="stylesheet">
 <link href="style.css" rel="stylesheet" type="text/css"/>
@@ -46,39 +44,19 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.7 -->
+<!-- Generated by Doxygen 1.8.13 -->
 <script type="text/javascript">
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </script>
-  <div id="navrow1" class="tabs">
-    <ul class="tablist">
-      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
-      <li><a href="usergroup0.html"><span>Programmer's&#160;Guide</span></a></li>
-      <li><a href="flatbuffers_support.html"><span>Platform&#160;/&#160;Language&#160;/&#160;Feature&#160;support</span></a></li>
-      <li><a href="flatbuffers_benchmarks.html"><span>Benchmarks</span></a></li>
-      <li><a href="flatbuffers_white_paper.html"><span>FlatBuffers&#160;white&#160;paper</span></a></li>
-      <li><a href="flatbuffers_internals.html"><span>FlatBuffers&#160;internals</span></a></li>
-      <li><a href="flatbuffers_grammar.html"><span>Grammar&#160;of&#160;the&#160;schema&#160;language</span></a></li>
-      <li><a href="usergroup2.html"><span>API&#160;Reference</span></a></li>
-      <li><a href="contributing.html"><span>Contributing</span></a></li>
-      <li>
-        <div id="MSearchBox" class="MSearchBoxInactive">
-        <span class="left">
-          <img id="MSearchSelect" src="search/mag_sel.png"
-               onmouseover="return searchBox.OnSearchSelectShow()"
-               onmouseout="return searchBox.OnSearchSelectHide()"
-               alt=""/>
-          <input type="text" id="MSearchField" value="Search" accesskey="S"
-               onfocus="searchBox.OnSearchFieldFocus(true)" 
-               onblur="searchBox.OnSearchFieldFocus(false)" 
-               onkeyup="searchBox.OnSearchFieldChange(event)"/>
-          </span><span class="right">
-            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
-          </span>
-        </div>
-      </li>
-    </ul>
-  </div>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -99,7 +77,7 @@ $(document).ready(function(){initNavTree('dir_d44c64559bbebec7f509842c48db8b23.h
      onmouseover="return searchBox.OnSearchSelectShow()"
      onmouseout="return searchBox.OnSearchSelectHide()"
      onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Properties</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+</div>
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
@@ -116,8 +94,6 @@ $(document).ready(function(){initNavTree('dir_d44c64559bbebec7f509842c48db8b23.h
 <table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="subdirs"></a>
 Directories</h2></td></tr>
-<tr class="memitem:dir_4d44a7834a0220e3079d88886922def6"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_4d44a7834a0220e3079d88886922def6.html">flatbuffers</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 </div><!-- contents -->
 </div><!-- doc-content -->
diff --git a/doc.png b/doc.png
new file mode 100644
index 0000000000000000000000000000000000000000..17edabff95f7b8da13c9516a04efe05493c29501
Binary files /dev/null and b/doc.png differ
diff --git a/doxygen.css b/doxygen.css
index 0a8f9627a5eed65d3ae367280344cfb9151f73a6..4f1ab9195b447e18dacbf914142f997e7637a27f 100644
--- a/doxygen.css
+++ b/doxygen.css
@@ -1,9 +1,13 @@
-/* The standard CSS for doxygen 1.8.7 */
+/* The standard CSS for doxygen 1.8.13 */
 
 body, table, div, p, dl {
 	font: 400 14px/22px Roboto,sans-serif;
 }
 
+p.reference, p.definition {
+	font: 400 14px/22px Roboto,sans-serif;
+}
+
 /* @group Heading Levels */
 
 h1.groupheader {
@@ -173,7 +177,7 @@ pre.fragment {
 }
 
 div.fragment {
-        padding: 4px 6px;
+        padding: 0px;
         margin: 4px 8px 4px 2px;
 	background-color: #FBFCFD;
 	border: 1px solid #C4CFE5;
@@ -206,6 +210,11 @@ div.line {
 	transition-duration: 0.5s;
 }
 
+div.line:after {
+    content:"\000A";
+    white-space: pre;
+}
+
 div.line.glow {
 	background-color: cyan;
 	box-shadow: 0 0 10px cyan;
@@ -227,7 +236,16 @@ span.lineno a:hover {
 	background-color: #C8C8C8;
 }
 
-div.ah {
+.lineno {
+	-webkit-touch-callout: none;
+	-webkit-user-select: none;
+	-khtml-user-select: none;
+	-moz-user-select: none;
+	-ms-user-select: none;
+	user-select: none;
+}
+
+div.ah, span.ah {
 	background-color: black;
 	font-weight: bold;
 	color: #ffffff;
@@ -242,7 +260,16 @@ div.ah {
 	-webkit-box-shadow: 2px 2px 3px #999;
 	-moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px;
 	background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444));
-	background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000);
+	background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000 110%);
+}
+
+div.classindex ul {
+        list-style: none;
+        padding-left: 0;
+}
+
+div.classindex span.ai {
+        display: inline-block;
 }
 
 div.groupHeader {
@@ -487,6 +514,29 @@ table.memberdecls {
 
 /* Styles for detailed member documentation */
 
+.memtitle {
+	padding: 8px;
+	border-top: 1px solid #A8B8D9;
+	border-left: 1px solid #A8B8D9;
+	border-right: 1px solid #A8B8D9;
+	border-top-right-radius: 4px;
+	border-top-left-radius: 4px;
+	margin-bottom: -1px;
+	background-image: url('nav_f.png');
+	background-repeat: repeat-x;
+	background-color: #E2E8F2;
+	line-height: 1.25;
+	font-weight: 300;
+	float:left;
+}
+
+.permalink
+{
+        font-size: 65%;
+        display: inline-block;
+        vertical-align: middle;
+}
+
 .memtemplate {
 	font-size: 80%;
 	color: #4665A2;
@@ -525,7 +575,7 @@ table.memberdecls {
 }
 
 .memname {
-        font-weight: bold;
+        font-weight: 400;
         margin-left: 6px;
 }
 
@@ -541,24 +591,24 @@ table.memberdecls {
         color: #253555;
         font-weight: bold;
         text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
-        background-image:url('nav_f.png');
-        background-repeat:repeat-x;
-        background-color: #E2E8F2;
+        background-color: #DFE5F1;
         /* opera specific markup */
         box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
         border-top-right-radius: 4px;
-        border-top-left-radius: 4px;
         /* firefox specific markup */
         -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
         -moz-border-radius-topright: 4px;
-        -moz-border-radius-topleft: 4px;
         /* webkit specific markup */
         -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
         -webkit-border-top-right-radius: 4px;
-        -webkit-border-top-left-radius: 4px;
 
 }
 
+.overload {
+        font-family: "courier new",courier,monospace;
+	font-size: 65%;
+}
+
 .memdoc, dl.reflist dd {
         border-bottom: 1px solid #A8B8D9;      
         border-left: 1px solid #A8B8D9;      
@@ -773,7 +823,7 @@ div.directory {
     width: 24px;
     height: 18px;
     margin-bottom: 4px;
-    background-image:url('ftv2folderopen.png');
+    background-image:url('folderopen.png');
     background-position: 0px -4px;
     background-repeat: repeat-y;
     vertical-align:top;
@@ -784,7 +834,7 @@ div.directory {
     width: 24px;
     height: 18px;
     margin-bottom: 4px;
-    background-image:url('ftv2folderclosed.png');
+    background-image:url('folderclosed.png');
     background-position: 0px -4px;
     background-repeat: repeat-y;
     vertical-align:top;
@@ -795,7 +845,7 @@ div.directory {
     width: 24px;
     height: 18px;
     margin-bottom: 4px;
-    background-image:url('ftv2doc.png');
+    background-image:url('doc.png');
     background-position: 0px -4px;
     background-repeat: repeat-y;
     vertical-align:top;
@@ -823,6 +873,10 @@ address {
 	color: #2A3D61;
 }
 
+table.doxtable caption {
+	caption-side: top;
+}
+
 table.doxtable {
 	border-collapse:collapse;
         margin-top: 4px;
@@ -896,6 +950,7 @@ table.fieldtable {
         padding-bottom: 4px;
         padding-top: 5px;
         text-align:left;
+        font-weight: 400;
         -moz-border-radius-topleft: 4px;
         -moz-border-radius-topright: 4px;
         -webkit-border-top-left-radius: 4px;
@@ -988,6 +1043,18 @@ div.summary a
 	white-space: nowrap;
 }
 
+table.classindex
+{
+        margin: 10px;
+        white-space: nowrap;
+        margin-left: 3%;
+        margin-right: 3%;
+        width: 94%;
+        border: 0;
+        border-spacing: 0; 
+        padding: 0;
+}
+
 div.ingroups
 {
 	font-size: 8pt;
@@ -1099,6 +1166,11 @@ dl.section dd {
 	border: 0px none;
 }
  
+#projectalign
+{
+        vertical-align: middle;
+}
+
 #projectname
 {
 	font: 300% Tahoma, Arial,sans-serif;
@@ -1143,6 +1215,11 @@ dl.section dd {
         text-align: center;
 }
 
+.plantumlgraph
+{
+        text-align: center;
+}
+
 .diagraph
 {
         text-align: center;
@@ -1182,7 +1259,7 @@ div.toc {
         border-radius: 7px 7px 7px 7px;
         float: right;
         height: auto;
-        margin: 0 20px 10px 10px;
+        margin: 0 8px 10px 10px;
         width: 200px;
 }
 
@@ -1438,3 +1515,82 @@ tr.heading h2 {
   }
 }
 
+/* @group Markdown */
+
+/*
+table.markdownTable {
+	border-collapse:collapse;
+        margin-top: 4px;
+        margin-bottom: 4px;
+}
+
+table.markdownTable td, table.markdownTable th {
+	border: 1px solid #2D4068;
+	padding: 3px 7px 2px;
+}
+
+table.markdownTableHead tr {
+}
+
+table.markdownTableBodyLeft td, table.markdownTable th {
+	border: 1px solid #2D4068;
+	padding: 3px 7px 2px;
+}
+
+th.markdownTableHeadLeft th.markdownTableHeadRight th.markdownTableHeadCenter th.markdownTableHeadNone {
+	background-color: #374F7F;
+	color: #FFFFFF;
+	font-size: 110%;
+	padding-bottom: 4px;
+	padding-top: 5px;
+}
+
+th.markdownTableHeadLeft {
+	text-align: left
+}
+
+th.markdownTableHeadRight {
+	text-align: right
+}
+
+th.markdownTableHeadCenter {
+	text-align: center
+}
+*/
+
+table.markdownTable {
+	border-collapse:collapse;
+        margin-top: 4px;
+        margin-bottom: 4px;
+}
+
+table.markdownTable td, table.markdownTable th {
+	border: 1px solid #2D4068;
+	padding: 3px 7px 2px;
+}
+
+table.markdownTable tr {
+}
+
+th.markdownTableHeadLeft, th.markdownTableHeadRight, th.markdownTableHeadCenter, th.markdownTableHeadNone {
+	background-color: #374F7F;
+	color: #FFFFFF;
+	font-size: 110%;
+	padding-bottom: 4px;
+	padding-top: 5px;
+}
+
+th.markdownTableHeadLeft, td.markdownTableBodyLeft {
+	text-align: left
+}
+
+th.markdownTableHeadRight, td.markdownTableBodyRight {
+	text-align: right
+}
+
+th.markdownTableHeadCenter, td.markdownTableBodyCenter {
+	text-align: center
+}
+
+
+/* @end */
diff --git a/flatbuffers_8h_source.html b/flatbuffers_8h_source.html
index 7d2d1c92cabcf4ea18dbbd3adc6882da1ed5696a..96f3f9c36862f5f4988fb41ea02cd9bcb8c6d410 100644
--- a/flatbuffers_8h_source.html
+++ b/flatbuffers_8h_source.html
@@ -4,23 +4,21 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <title>FlatBuffers: flatbuffers.h Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
 <link href="navtree.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
 <script type="text/javascript" src="navtree.js"></script>
 <script type="text/javascript">
   $(document).ready(initResizable);
-  $(window).load(resizeHeight);
 </script>
 <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
 <script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
-  $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,500italic,700,700italic|Roboto+Mono:400,700" rel="stylesheet">
 <link href="style.css" rel="stylesheet" type="text/css"/>
@@ -46,39 +44,19 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.7 -->
+<!-- Generated by Doxygen 1.8.13 -->
 <script type="text/javascript">
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </script>
-  <div id="navrow1" class="tabs">
-    <ul class="tablist">
-      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
-      <li><a href="usergroup0.html"><span>Programmer's&#160;Guide</span></a></li>
-      <li><a href="flatbuffers_support.html"><span>Platform&#160;/&#160;Language&#160;/&#160;Feature&#160;support</span></a></li>
-      <li><a href="flatbuffers_benchmarks.html"><span>Benchmarks</span></a></li>
-      <li><a href="flatbuffers_white_paper.html"><span>FlatBuffers&#160;white&#160;paper</span></a></li>
-      <li><a href="flatbuffers_internals.html"><span>FlatBuffers&#160;internals</span></a></li>
-      <li><a href="flatbuffers_grammar.html"><span>Grammar&#160;of&#160;the&#160;schema&#160;language</span></a></li>
-      <li><a href="usergroup2.html"><span>API&#160;Reference</span></a></li>
-      <li><a href="contributing.html"><span>Contributing</span></a></li>
-      <li>
-        <div id="MSearchBox" class="MSearchBoxInactive">
-        <span class="left">
-          <img id="MSearchSelect" src="search/mag_sel.png"
-               onmouseover="return searchBox.OnSearchSelectShow()"
-               onmouseout="return searchBox.OnSearchSelectHide()"
-               alt=""/>
-          <input type="text" id="MSearchField" value="Search" accesskey="S"
-               onfocus="searchBox.OnSearchFieldFocus(true)" 
-               onblur="searchBox.OnSearchFieldFocus(false)" 
-               onkeyup="searchBox.OnSearchFieldChange(event)"/>
-          </span><span class="right">
-            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
-          </span>
-        </div>
-      </li>
-    </ul>
-  </div>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -99,7 +77,7 @@ $(document).ready(function(){initNavTree('flatbuffers_8h_source.html','');});
      onmouseover="return searchBox.OnSearchSelectShow()"
      onmouseout="return searchBox.OnSearchSelectHide()"
      onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Properties</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+</div>
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
@@ -113,2254 +91,63 @@ $(document).ready(function(){initNavTree('flatbuffers_8h_source.html','');});
 <div class="title">flatbuffers.h</div>  </div>
 </div><!--header-->
 <div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div>
-<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Copyright 2014 Google Inc. All rights reserved.</span></div>
-<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div>
-<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);</span></div>
-<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * you may not use this file except in compliance with the License.</span></div>
-<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * You may obtain a copy of the License at</span></div>
-<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> *</span></div>
-<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> *     http://www.apache.org/licenses/LICENSE-2.0</span></div>
-<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div>
-<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing, software</span></div>
-<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> * distributed under the License is distributed on an &quot;AS IS&quot; BASIS,</span></div>
-<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div>
-<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * See the License for the specific language governing permissions and</span></div>
-<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * limitations under the License.</span></div>
-<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> */</span></div>
-<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;</div>
-<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="preprocessor">#ifndef FLATBUFFERS_H_</span></div>
-<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="preprocessor">#define FLATBUFFERS_H_</span></div>
-<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div>
-<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#include &quot;flatbuffers/base.h&quot;</span></div>
-<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;</div>
-<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="keyword">namespace </span>flatbuffers {</div>
-<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="comment">// Wrapper for uoffset_t to allow safe template specialization.</span></div>
-<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="comment">// Value is allowed to be 0 to indicate a null object (see e.g. AddOffset).</span></div>
-<div class="line"><a name="l00025"></a><span class="lineno"><a class="line" href="structflatbuffers_1_1_offset.html">   25</a></span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span><a class="code" href="structflatbuffers_1_1_offset.html">Offset</a> {</div>
-<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;  uoffset_t o;</div>
-<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;  <a class="code" href="structflatbuffers_1_1_offset.html">Offset</a>() : o(0) {}</div>
-<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;  <a class="code" href="structflatbuffers_1_1_offset.html">Offset</a>(uoffset_t _o) : o(_o) {}</div>
-<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;  <a class="code" href="structflatbuffers_1_1_offset.html">Offset&lt;void&gt;</a> Union()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="structflatbuffers_1_1_offset.html">Offset&lt;void&gt;</a>(o); }</div>
-<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;  <span class="keywordtype">bool</span> IsNull()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> !o; }</div>
-<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;};</div>
-<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;</div>
-<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> EndianCheck() {</div>
-<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;  <span class="keywordtype">int</span> endiantest = 1;</div>
-<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;  <span class="comment">// If this fails, see FLATBUFFERS_LITTLEENDIAN above.</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;  assert(*reinterpret_cast&lt;char *&gt;(&amp;endiantest) == FLATBUFFERS_LITTLEENDIAN);</div>
-<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;  (void)endiantest;</div>
-<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;}</div>
-<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;</div>
-<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt; FLATBUFFERS_CONSTEXPR <span class="keywordtype">size_t</span> AlignOf() {</div>
-<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;<span class="preprocessor">  #ifdef _MSC_VER</span></div>
-<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;    <span class="keywordflow">return</span> __alignof(T);</div>
-<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;<span class="preprocessor">  #else</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;<span class="preprocessor">    #ifndef alignof</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;      <span class="keywordflow">return</span> __alignof__(T);</div>
-<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;<span class="preprocessor">    #else</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;      <span class="keywordflow">return</span> <span class="keyword">alignof</span>(T);</div>
-<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;<span class="preprocessor">    #endif</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;<span class="preprocessor">  #endif</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;}</div>
-<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;</div>
-<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;<span class="comment">// When we read serialized data from memory, in the case of most scalars,</span></div>
-<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;<span class="comment">// we want to just read T, but in the case of Offset, we want to actually</span></div>
-<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;<span class="comment">// perform the indirection and return a pointer.</span></div>
-<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;<span class="comment">// The template specialization below does just that.</span></div>
-<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;<span class="comment">// It is wrapped in a struct since function templates can&#39;t overload on the</span></div>
-<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;<span class="comment">// return type like this.</span></div>
-<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;<span class="comment">// The typedef is for the convenience of callers of this function</span></div>
-<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;<span class="comment">// (avoiding the need for a trailing return decltype)</span></div>
-<div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="structflatbuffers_1_1_indirect_helper.html">   60</a></span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span><a class="code" href="structflatbuffers_1_1_indirect_helper.html">IndirectHelper</a> {</div>
-<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;  <span class="keyword">typedef</span> T return_type;</div>
-<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;  <span class="keyword">typedef</span> T mutable_return_type;</div>
-<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;  <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">size_t</span> element_stride = <span class="keyword">sizeof</span>(T);</div>
-<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;  <span class="keyword">static</span> return_type Read(<span class="keyword">const</span> uint8_t *p, uoffset_t i) {</div>
-<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;    <span class="keywordflow">return</span> EndianScalar((reinterpret_cast&lt;const T *&gt;(p))[i]);</div>
-<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;  }</div>
-<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;};</div>
-<div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="structflatbuffers_1_1_indirect_helper_3_01_offset_3_01_t_01_4_01_4.html">   68</a></span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span><a class="code" href="structflatbuffers_1_1_indirect_helper.html">IndirectHelper</a>&lt;<a class="code" href="structflatbuffers_1_1_offset.html">Offset</a>&lt;T&gt;&gt; {</div>
-<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;  <span class="keyword">typedef</span> <span class="keyword">const</span> T *return_type;</div>
-<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;  <span class="keyword">typedef</span> T *mutable_return_type;</div>
-<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;  <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">size_t</span> element_stride = <span class="keyword">sizeof</span>(uoffset_t);</div>
-<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;  <span class="keyword">static</span> return_type Read(<span class="keyword">const</span> uint8_t *p, uoffset_t i) {</div>
-<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;    p += i * <span class="keyword">sizeof</span>(uoffset_t);</div>
-<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">reinterpret_cast&lt;</span>return_type<span class="keyword">&gt;</span>(p + ReadScalar&lt;uoffset_t&gt;(p));</div>
-<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;  }</div>
-<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;};</div>
-<div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="structflatbuffers_1_1_indirect_helper_3_01const_01_t_01_5_01_4.html">   77</a></span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span><a class="code" href="structflatbuffers_1_1_indirect_helper.html">IndirectHelper</a>&lt;const T *&gt; {</div>
-<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;  <span class="keyword">typedef</span> <span class="keyword">const</span> T *return_type;</div>
-<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;  <span class="keyword">typedef</span> T *mutable_return_type;</div>
-<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;  <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">size_t</span> element_stride = <span class="keyword">sizeof</span>(T);</div>
-<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;  <span class="keyword">static</span> return_type Read(<span class="keyword">const</span> uint8_t *p, uoffset_t i) {</div>
-<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">reinterpret_cast&lt;</span><span class="keyword">const </span>T *<span class="keyword">&gt;</span>(p + i * <span class="keyword">sizeof</span>(T));</div>
-<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;  }</div>
-<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;};</div>
-<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;</div>
-<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;<span class="comment">// An STL compatible iterator implementation for Vector below, effectively</span></div>
-<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;<span class="comment">// calling Get() for every element.</span></div>
-<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> IT&gt;</div>
-<div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="structflatbuffers_1_1_vector_iterator.html">   89</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structflatbuffers_1_1_vector_iterator.html">VectorIterator</a> {</div>
-<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;  <span class="keyword">typedef</span> std::random_access_iterator_tag iterator_category;</div>
-<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;  <span class="keyword">typedef</span> IT value_type;</div>
-<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;  <span class="keyword">typedef</span> uoffset_t difference_type;</div>
-<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;  <span class="keyword">typedef</span> IT *pointer;</div>
-<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;  <span class="keyword">typedef</span> IT &amp;reference;</div>
-<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;</div>
-<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;  <a class="code" href="structflatbuffers_1_1_vector_iterator.html">VectorIterator</a>(<span class="keyword">const</span> uint8_t *data, uoffset_t i) :</div>
-<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;      data_(data + <a class="code" href="structflatbuffers_1_1_indirect_helper.html">IndirectHelper&lt;T&gt;::element_stride</a> * i) {}</div>
-<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;  <a class="code" href="structflatbuffers_1_1_vector_iterator.html">VectorIterator</a>(<span class="keyword">const</span> <a class="code" href="structflatbuffers_1_1_vector_iterator.html">VectorIterator</a> &amp;other) : data_(other.data_) {}</div>
-<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;</div>
-<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;  <a class="code" href="structflatbuffers_1_1_vector_iterator.html">VectorIterator</a> &amp;operator=(<span class="keyword">const</span> <a class="code" href="structflatbuffers_1_1_vector_iterator.html">VectorIterator</a> &amp;other) {</div>
-<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;    data_ = other.data_;</div>
-<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;    <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;  }</div>
-<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;</div>
-<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;  <a class="code" href="structflatbuffers_1_1_vector_iterator.html">VectorIterator</a> &amp;operator=(<a class="code" href="structflatbuffers_1_1_vector_iterator.html">VectorIterator</a> &amp;&amp;other) {</div>
-<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;    data_ = other.data_;</div>
-<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;    <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;  }</div>
-<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;</div>
-<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;  <span class="keywordtype">bool</span> operator==(<span class="keyword">const</span> <a class="code" href="structflatbuffers_1_1_vector_iterator.html">VectorIterator</a> &amp;other)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;    <span class="keywordflow">return</span> data_ == other.data_;</div>
-<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;  }</div>
-<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;</div>
-<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;  <span class="keywordtype">bool</span> operator&lt;(<span class="keyword">const</span> <a class="code" href="structflatbuffers_1_1_vector_iterator.html">VectorIterator</a> &amp;other)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;    <span class="keywordflow">return</span> data_ &lt; other.data_;</div>
-<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;  }</div>
-<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;</div>
-<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;  <span class="keywordtype">bool</span> operator!=(<span class="keyword">const</span> <a class="code" href="structflatbuffers_1_1_vector_iterator.html">VectorIterator</a> &amp;other)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;    <span class="keywordflow">return</span> data_ != other.data_;</div>
-<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;  }</div>
-<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;</div>
-<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;  ptrdiff_t operator-(<span class="keyword">const</span> <a class="code" href="structflatbuffers_1_1_vector_iterator.html">VectorIterator</a> &amp;other)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;    <span class="keywordflow">return</span> (data_ - other.data_) / <a class="code" href="structflatbuffers_1_1_indirect_helper.html">IndirectHelper&lt;T&gt;::element_stride</a>;</div>
-<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;  }</div>
-<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;</div>
-<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;  IT operator *()<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="structflatbuffers_1_1_indirect_helper.html">IndirectHelper&lt;T&gt;::Read</a>(data_, 0);</div>
-<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;  }</div>
-<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;</div>
-<div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;  IT operator-&gt;()<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="structflatbuffers_1_1_indirect_helper.html">IndirectHelper&lt;T&gt;::Read</a>(data_, 0);</div>
-<div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;  }</div>
-<div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;</div>
-<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;  <a class="code" href="structflatbuffers_1_1_vector_iterator.html">VectorIterator</a> &amp;operator++() {</div>
-<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;    data_ += <a class="code" href="structflatbuffers_1_1_indirect_helper.html">IndirectHelper&lt;T&gt;::element_stride</a>;</div>
-<div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;    <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;  }</div>
-<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;</div>
-<div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;  <a class="code" href="structflatbuffers_1_1_vector_iterator.html">VectorIterator</a> operator++(<span class="keywordtype">int</span>) {</div>
-<div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;    <a class="code" href="structflatbuffers_1_1_vector_iterator.html">VectorIterator</a> temp(data_, 0);</div>
-<div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;    data_ += <a class="code" href="structflatbuffers_1_1_indirect_helper.html">IndirectHelper&lt;T&gt;::element_stride</a>;</div>
-<div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;    <span class="keywordflow">return</span> temp;</div>
-<div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;  }</div>
-<div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;</div>
-<div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;  <a class="code" href="structflatbuffers_1_1_vector_iterator.html">VectorIterator</a> operator+(<span class="keyword">const</span> uoffset_t &amp;offset)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="structflatbuffers_1_1_vector_iterator.html">VectorIterator</a>(data_ + offset * <a class="code" href="structflatbuffers_1_1_indirect_helper.html">IndirectHelper&lt;T&gt;::element_stride</a>, 0);</div>
-<div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;  }</div>
-<div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;</div>
-<div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;  <a class="code" href="structflatbuffers_1_1_vector_iterator.html">VectorIterator</a>&amp; operator+=(<span class="keyword">const</span> uoffset_t &amp;offset) {</div>
-<div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;    data_ += offset * <a class="code" href="structflatbuffers_1_1_indirect_helper.html">IndirectHelper&lt;T&gt;::element_stride</a>;</div>
-<div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;    <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;  }</div>
-<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;</div>
-<div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;  <a class="code" href="structflatbuffers_1_1_vector_iterator.html">VectorIterator</a> &amp;operator--() {</div>
-<div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;    data_ -= <a class="code" href="structflatbuffers_1_1_indirect_helper.html">IndirectHelper&lt;T&gt;::element_stride</a>;</div>
-<div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;    <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;  }</div>
-<div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;</div>
-<div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;  <a class="code" href="structflatbuffers_1_1_vector_iterator.html">VectorIterator</a> operator--(<span class="keywordtype">int</span>) {</div>
-<div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;    <a class="code" href="structflatbuffers_1_1_vector_iterator.html">VectorIterator</a> temp(data_, 0);</div>
-<div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;    data_ -= <a class="code" href="structflatbuffers_1_1_indirect_helper.html">IndirectHelper&lt;T&gt;::element_stride</a>;</div>
-<div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;    <span class="keywordflow">return</span> temp;</div>
-<div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;  }</div>
-<div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;</div>
-<div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;  <a class="code" href="structflatbuffers_1_1_vector_iterator.html">VectorIterator</a> operator-(<span class="keyword">const</span> uoffset_t &amp;offset) {</div>
-<div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="structflatbuffers_1_1_vector_iterator.html">VectorIterator</a>(data_ - offset * <a class="code" href="structflatbuffers_1_1_indirect_helper.html">IndirectHelper&lt;T&gt;::element_stride</a>, 0);</div>
-<div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;  }</div>
-<div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;</div>
-<div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;  <a class="code" href="structflatbuffers_1_1_vector_iterator.html">VectorIterator</a>&amp; operator-=(<span class="keyword">const</span> uoffset_t &amp;offset) {</div>
-<div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;    data_ -= offset * <a class="code" href="structflatbuffers_1_1_indirect_helper.html">IndirectHelper&lt;T&gt;::element_stride</a>;</div>
-<div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;    <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;  }</div>
-<div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;</div>
-<div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;<span class="keyword">private</span>:</div>
-<div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;  <span class="keyword">const</span> uint8_t *data_;</div>
-<div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;};</div>
-<div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;</div>
-<div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;<span class="keyword">struct </span><a class="code" href="structflatbuffers_1_1_string.html">String</a>;</div>
-<div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;</div>
-<div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;<span class="comment">// This is used as a helper type for accessing vectors.</span></div>
-<div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;<span class="comment">// Vector::data() assumes the vector elements start after the length field.</span></div>
-<div class="line"><a name="l00182"></a><span class="lineno"><a class="line" href="classflatbuffers_1_1_vector.html">  182</a></span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt; <span class="keyword">class </span><a class="code" href="classflatbuffers_1_1_vector.html">Vector</a> {</div>
-<div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;<span class="keyword">public</span>:</div>
-<div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;  <span class="keyword">typedef</span> <a class="code" href="structflatbuffers_1_1_vector_iterator.html">VectorIterator&lt;T, typename IndirectHelper&lt;T&gt;::mutable_return_type</a>&gt;</div>
-<div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;    <a class="code" href="structflatbuffers_1_1_vector_iterator.html">iterator</a>;</div>
-<div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;  <span class="keyword">typedef</span> <a class="code" href="structflatbuffers_1_1_vector_iterator.html">VectorIterator&lt;T, typename IndirectHelper&lt;T&gt;::return_type</a>&gt;</div>
-<div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;    <a class="code" href="structflatbuffers_1_1_vector_iterator.html">const_iterator</a>;</div>
-<div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;</div>
-<div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;  uoffset_t size()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> EndianScalar(length_); }</div>
-<div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;</div>
-<div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;  <span class="comment">// Deprecated: use size(). Here for backwards compatibility.</span></div>
-<div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;  uoffset_t Length()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> size(); }</div>
-<div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;</div>
-<div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;  <span class="keyword">typedef</span> <span class="keyword">typename</span> IndirectHelper&lt;T&gt;::return_type return_type;</div>
-<div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;  <span class="keyword">typedef</span> <span class="keyword">typename</span> IndirectHelper&lt;T&gt;::mutable_return_type mutable_return_type;</div>
-<div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;</div>
-<div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;  return_type Get(uoffset_t i)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;    assert(i &lt; size());</div>
-<div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="structflatbuffers_1_1_indirect_helper.html">IndirectHelper&lt;T&gt;::Read</a>(Data(), i);</div>
-<div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;  }</div>
-<div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;</div>
-<div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;  return_type operator[](uoffset_t i)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> Get(i); }</div>
-<div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;</div>
-<div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;  <span class="comment">// If this is a Vector of enums, T will be its storage type, not the enum</span></div>
-<div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;  <span class="comment">// type. This function makes it convenient to retrieve value with enum</span></div>
-<div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;  <span class="comment">// type E.</span></div>
-<div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> E&gt; E GetEnum(uoffset_t i)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span>E<span class="keyword">&gt;</span>(Get(i));</div>
-<div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;  }</div>
-<div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;</div>
-<div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;  <span class="comment">// If this a vector of unions, this does the cast for you. There&#39;s no check</span></div>
-<div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;  <span class="comment">// to make sure this is the right type!</span></div>
-<div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt; <span class="keyword">const</span> U *GetAs(uoffset_t i)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">reinterpret_cast&lt;</span><span class="keyword">const </span>U *<span class="keyword">&gt;</span>(Get(i));</div>
-<div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;  }</div>
-<div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;</div>
-<div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;  <span class="comment">// If this a vector of unions, this does the cast for you. There&#39;s no check</span></div>
-<div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;  <span class="comment">// to make sure this is actually a string!</span></div>
-<div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;  <span class="keyword">const</span> <a class="code" href="structflatbuffers_1_1_string.html">String</a> *GetAsString(uoffset_t i)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">reinterpret_cast&lt;</span><span class="keyword">const </span><a class="code" href="structflatbuffers_1_1_string.html">String</a> *<span class="keyword">&gt;</span>(Get(i));</div>
-<div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;  }</div>
-<div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;</div>
-<div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;  <span class="keyword">const</span> <span class="keywordtype">void</span> *GetStructFromOffset(<span class="keywordtype">size_t</span> o)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">reinterpret_cast&lt;</span><span class="keyword">const </span><span class="keywordtype">void</span> *<span class="keyword">&gt;</span>(Data() + o);</div>
-<div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;  }</div>
-<div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;</div>
-<div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;  <a class="code" href="structflatbuffers_1_1_vector_iterator.html">iterator</a> begin() { <span class="keywordflow">return</span> <a class="code" href="structflatbuffers_1_1_vector_iterator.html">iterator</a>(Data(), 0); }</div>
-<div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;  <a class="code" href="structflatbuffers_1_1_vector_iterator.html">const_iterator</a> begin()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="structflatbuffers_1_1_vector_iterator.html">const_iterator</a>(Data(), 0); }</div>
-<div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;</div>
-<div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160;  <a class="code" href="structflatbuffers_1_1_vector_iterator.html">iterator</a> end() { <span class="keywordflow">return</span> <a class="code" href="structflatbuffers_1_1_vector_iterator.html">iterator</a>(Data(), size()); }</div>
-<div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;  <a class="code" href="structflatbuffers_1_1_vector_iterator.html">const_iterator</a> end()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="structflatbuffers_1_1_vector_iterator.html">const_iterator</a>(Data(), size()); }</div>
-<div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;</div>
-<div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;  <span class="comment">// Change elements if you have a non-const pointer to this object.</span></div>
-<div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;  <span class="comment">// Scalars only. See reflection.h, and the documentation.</span></div>
-<div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;  <span class="keywordtype">void</span> Mutate(uoffset_t i, <span class="keyword">const</span> T&amp; val) {</div>
-<div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;    assert(i &lt; size());</div>
-<div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;    WriteScalar(data() + i, val);</div>
-<div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;  }</div>
-<div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;</div>
-<div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;  <span class="comment">// Change an element of a vector of tables (or strings).</span></div>
-<div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;  <span class="comment">// &quot;val&quot; points to the new table/string, as you can obtain from</span></div>
-<div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;  <span class="comment">// e.g. reflection::AddFlatBuffer().</span></div>
-<div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;  <span class="keywordtype">void</span> MutateOffset(uoffset_t i, <span class="keyword">const</span> uint8_t *val) {</div>
-<div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;    assert(i &lt; size());</div>
-<div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;    assert(<span class="keyword">sizeof</span>(T) == <span class="keyword">sizeof</span>(uoffset_t));</div>
-<div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160;    WriteScalar(data() + i,</div>
-<div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;                static_cast&lt;uoffset_t&gt;(val - (Data() + i * <span class="keyword">sizeof</span>(uoffset_t))));</div>
-<div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160;  }</div>
-<div class="line"><a name="l00249"></a><span class="lineno">  249</span>&#160;</div>
-<div class="line"><a name="l00250"></a><span class="lineno">  250</span>&#160;  <span class="comment">// Get a mutable pointer to tables/strings inside this vector.</span></div>
-<div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160;  mutable_return_type GetMutableObject(uoffset_t i)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160;    assert(i &lt; size());</div>
-<div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">const_cast&lt;</span>mutable_return_type<span class="keyword">&gt;</span>(<a class="code" href="structflatbuffers_1_1_indirect_helper.html">IndirectHelper&lt;T&gt;::Read</a>(Data(), i));</div>
-<div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160;  }</div>
-<div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160;</div>
-<div class="line"><a name="l00256"></a><span class="lineno">  256</span>&#160;  <span class="comment">// The raw data in little endian format. Use with care.</span></div>
-<div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;  <span class="keyword">const</span> uint8_t *Data()<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">reinterpret_cast&lt;</span><span class="keyword">const </span>uint8_t *<span class="keyword">&gt;</span>(&amp;length_ + 1);</div>
-<div class="line"><a name="l00259"></a><span class="lineno">  259</span>&#160;  }</div>
-<div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160;</div>
-<div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160;  uint8_t *Data() {</div>
-<div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">reinterpret_cast&lt;</span>uint8_t *<span class="keyword">&gt;</span>(&amp;length_ + 1);</div>
-<div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160;  }</div>
-<div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160;</div>
-<div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;  <span class="comment">// Similarly, but typed, much like std::vector::data</span></div>
-<div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160;  <span class="keyword">const</span> T *data()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <span class="keyword">reinterpret_cast&lt;</span><span class="keyword">const </span>T *<span class="keyword">&gt;</span>(Data()); }</div>
-<div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160;  T *data() { <span class="keywordflow">return</span> <span class="keyword">reinterpret_cast&lt;</span>T *<span class="keyword">&gt;</span>(Data()); }</div>
-<div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;</div>
-<div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160;  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> K&gt; return_type LookupByKey(K key)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00270"></a><span class="lineno">  270</span>&#160;    <span class="keywordtype">void</span> *search_result = std::bsearch(&amp;key, Data(), size(),</div>
-<div class="line"><a name="l00271"></a><span class="lineno">  271</span>&#160;        <a class="code" href="structflatbuffers_1_1_indirect_helper.html">IndirectHelper&lt;T&gt;::element_stride</a>, KeyCompare&lt;K&gt;);</div>
-<div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160;</div>
-<div class="line"><a name="l00273"></a><span class="lineno">  273</span>&#160;    <span class="keywordflow">if</span> (!search_result) {</div>
-<div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160;      <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;  <span class="comment">// Key not found.</span></div>
-<div class="line"><a name="l00275"></a><span class="lineno">  275</span>&#160;    }</div>
-<div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;</div>
-<div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160;    <span class="keyword">const</span> uint8_t *element = <span class="keyword">reinterpret_cast&lt;</span><span class="keyword">const </span>uint8_t *<span class="keyword">&gt;</span>(search_result);</div>
-<div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160;</div>
-<div class="line"><a name="l00279"></a><span class="lineno">  279</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="structflatbuffers_1_1_indirect_helper.html">IndirectHelper&lt;T&gt;::Read</a>(element, 0);</div>
-<div class="line"><a name="l00280"></a><span class="lineno">  280</span>&#160;  }</div>
-<div class="line"><a name="l00281"></a><span class="lineno">  281</span>&#160;</div>
-<div class="line"><a name="l00282"></a><span class="lineno">  282</span>&#160;<span class="keyword">protected</span>:</div>
-<div class="line"><a name="l00283"></a><span class="lineno">  283</span>&#160;  <span class="comment">// This class is only used to access pre-existing data. Don&#39;t ever</span></div>
-<div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160;  <span class="comment">// try to construct these manually.</span></div>
-<div class="line"><a name="l00285"></a><span class="lineno">  285</span>&#160;  <a class="code" href="classflatbuffers_1_1_vector.html">Vector</a>();</div>
-<div class="line"><a name="l00286"></a><span class="lineno">  286</span>&#160;</div>
-<div class="line"><a name="l00287"></a><span class="lineno">  287</span>&#160;  uoffset_t length_;</div>
-<div class="line"><a name="l00288"></a><span class="lineno">  288</span>&#160;</div>
-<div class="line"><a name="l00289"></a><span class="lineno">  289</span>&#160;<span class="keyword">private</span>:</div>
-<div class="line"><a name="l00290"></a><span class="lineno">  290</span>&#160;  <span class="comment">// This class is a pointer. Copying will therefore create an invalid object.</span></div>
-<div class="line"><a name="l00291"></a><span class="lineno">  291</span>&#160;  <span class="comment">// Private and unimplemented copy constructor.</span></div>
-<div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160;  <a class="code" href="classflatbuffers_1_1_vector.html">Vector</a>(<span class="keyword">const</span> <a class="code" href="classflatbuffers_1_1_vector.html">Vector</a>&amp;);</div>
-<div class="line"><a name="l00293"></a><span class="lineno">  293</span>&#160;</div>
-<div class="line"><a name="l00294"></a><span class="lineno">  294</span>&#160;  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> K&gt; <span class="keyword">static</span> <span class="keywordtype">int</span> KeyCompare(<span class="keyword">const</span> <span class="keywordtype">void</span> *ap, <span class="keyword">const</span> <span class="keywordtype">void</span> *bp) {</div>
-<div class="line"><a name="l00295"></a><span class="lineno">  295</span>&#160;    <span class="keyword">const</span> K *key = <span class="keyword">reinterpret_cast&lt;</span><span class="keyword">const </span>K *<span class="keyword">&gt;</span>(ap);</div>
-<div class="line"><a name="l00296"></a><span class="lineno">  296</span>&#160;    <span class="keyword">const</span> uint8_t *data = <span class="keyword">reinterpret_cast&lt;</span><span class="keyword">const </span>uint8_t *<span class="keyword">&gt;</span>(bp);</div>
-<div class="line"><a name="l00297"></a><span class="lineno">  297</span>&#160;    <span class="keyword">auto</span> table = <a class="code" href="structflatbuffers_1_1_indirect_helper.html">IndirectHelper&lt;T&gt;::Read</a>(data, 0);</div>
-<div class="line"><a name="l00298"></a><span class="lineno">  298</span>&#160;</div>
-<div class="line"><a name="l00299"></a><span class="lineno">  299</span>&#160;    <span class="comment">// std::bsearch compares with the operands transposed, so we negate the</span></div>
-<div class="line"><a name="l00300"></a><span class="lineno">  300</span>&#160;    <span class="comment">// result here.</span></div>
-<div class="line"><a name="l00301"></a><span class="lineno">  301</span>&#160;    <span class="keywordflow">return</span> -table-&gt;KeyCompareWithValue(*key);</div>
-<div class="line"><a name="l00302"></a><span class="lineno">  302</span>&#160;  }</div>
-<div class="line"><a name="l00303"></a><span class="lineno">  303</span>&#160;};</div>
-<div class="line"><a name="l00304"></a><span class="lineno">  304</span>&#160;</div>
-<div class="line"><a name="l00305"></a><span class="lineno">  305</span>&#160;<span class="comment">// Represent a vector much like the template above, but in this case we</span></div>
-<div class="line"><a name="l00306"></a><span class="lineno">  306</span>&#160;<span class="comment">// don&#39;t know what the element types are (used with reflection.h).</span></div>
-<div class="line"><a name="l00307"></a><span class="lineno"><a class="line" href="classflatbuffers_1_1_vector_of_any.html">  307</a></span>&#160;<span class="keyword">class </span><a class="code" href="classflatbuffers_1_1_vector_of_any.html">VectorOfAny</a> {</div>
-<div class="line"><a name="l00308"></a><span class="lineno">  308</span>&#160;<span class="keyword">public</span>:</div>
-<div class="line"><a name="l00309"></a><span class="lineno">  309</span>&#160;  uoffset_t size()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> EndianScalar(length_); }</div>
-<div class="line"><a name="l00310"></a><span class="lineno">  310</span>&#160;</div>
-<div class="line"><a name="l00311"></a><span class="lineno">  311</span>&#160;  <span class="keyword">const</span> uint8_t *Data()<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00312"></a><span class="lineno">  312</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">reinterpret_cast&lt;</span><span class="keyword">const </span>uint8_t *<span class="keyword">&gt;</span>(&amp;length_ + 1);</div>
-<div class="line"><a name="l00313"></a><span class="lineno">  313</span>&#160;  }</div>
-<div class="line"><a name="l00314"></a><span class="lineno">  314</span>&#160;  uint8_t *Data() {</div>
-<div class="line"><a name="l00315"></a><span class="lineno">  315</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">reinterpret_cast&lt;</span>uint8_t *<span class="keyword">&gt;</span>(&amp;length_ + 1);</div>
-<div class="line"><a name="l00316"></a><span class="lineno">  316</span>&#160;  }</div>
-<div class="line"><a name="l00317"></a><span class="lineno">  317</span>&#160;<span class="keyword">protected</span>:</div>
-<div class="line"><a name="l00318"></a><span class="lineno">  318</span>&#160;  <a class="code" href="classflatbuffers_1_1_vector_of_any.html">VectorOfAny</a>();</div>
-<div class="line"><a name="l00319"></a><span class="lineno">  319</span>&#160;</div>
-<div class="line"><a name="l00320"></a><span class="lineno">  320</span>&#160;  uoffset_t length_;</div>
-<div class="line"><a name="l00321"></a><span class="lineno">  321</span>&#160;</div>
-<div class="line"><a name="l00322"></a><span class="lineno">  322</span>&#160;<span class="keyword">private</span>:</div>
-<div class="line"><a name="l00323"></a><span class="lineno">  323</span>&#160;  <a class="code" href="classflatbuffers_1_1_vector_of_any.html">VectorOfAny</a>(<span class="keyword">const</span> <a class="code" href="classflatbuffers_1_1_vector_of_any.html">VectorOfAny</a>&amp;);</div>
-<div class="line"><a name="l00324"></a><span class="lineno">  324</span>&#160;};</div>
-<div class="line"><a name="l00325"></a><span class="lineno">  325</span>&#160;</div>
-<div class="line"><a name="l00326"></a><span class="lineno">  326</span>&#160;<span class="preprocessor">#ifndef FLATBUFFERS_CPP98_STL</span></div>
-<div class="line"><a name="l00327"></a><span class="lineno">  327</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00328"></a><span class="lineno">  328</span>&#160;<a class="code" href="classflatbuffers_1_1_vector.html">Vector&lt;Offset&lt;T&gt;</a>&gt; *VectorCast(<a class="code" href="classflatbuffers_1_1_vector.html">Vector</a>&lt;<a class="code" href="structflatbuffers_1_1_offset.html">Offset&lt;U&gt;</a>&gt; *ptr) {</div>
-<div class="line"><a name="l00329"></a><span class="lineno">  329</span>&#160;  static_assert(std::is_base_of&lt;T, U&gt;::value, <span class="stringliteral">&quot;Unrelated types&quot;</span>);</div>
-<div class="line"><a name="l00330"></a><span class="lineno">  330</span>&#160;  <span class="keywordflow">return</span> <span class="keyword">reinterpret_cast&lt;</span><a class="code" href="classflatbuffers_1_1_vector.html">Vector&lt;Offset&lt;T&gt;</a><span class="keyword">&gt;</span> *&gt;(ptr);</div>
-<div class="line"><a name="l00331"></a><span class="lineno">  331</span>&#160;}</div>
-<div class="line"><a name="l00332"></a><span class="lineno">  332</span>&#160;</div>
-<div class="line"><a name="l00333"></a><span class="lineno">  333</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l00334"></a><span class="lineno">  334</span>&#160;<span class="keyword">const</span> Vector&lt;Offset&lt;T&gt;&gt; *VectorCast(<span class="keyword">const</span> Vector&lt;Offset&lt;U&gt;&gt; *ptr) {</div>
-<div class="line"><a name="l00335"></a><span class="lineno">  335</span>&#160;  static_assert(std::is_base_of&lt;T, U&gt;::value, <span class="stringliteral">&quot;Unrelated types&quot;</span>);</div>
-<div class="line"><a name="l00336"></a><span class="lineno">  336</span>&#160;  <span class="keywordflow">return</span> <span class="keyword">reinterpret_cast&lt;</span><span class="keyword">const </span>Vector&lt;Offset&lt;T&gt;<span class="keyword">&gt;</span> *&gt;(ptr);</div>
-<div class="line"><a name="l00337"></a><span class="lineno">  337</span>&#160;}</div>
-<div class="line"><a name="l00338"></a><span class="lineno">  338</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00339"></a><span class="lineno">  339</span>&#160;</div>
-<div class="line"><a name="l00340"></a><span class="lineno">  340</span>&#160;<span class="comment">// Convenient helper function to get the length of any vector, regardless</span></div>
-<div class="line"><a name="l00341"></a><span class="lineno">  341</span>&#160;<span class="comment">// of wether it is null or not (the field is not set).</span></div>
-<div class="line"><a name="l00342"></a><span class="lineno">  342</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">size_t</span> VectorLength(<span class="keyword">const</span> Vector&lt;T&gt; *v) {</div>
-<div class="line"><a name="l00343"></a><span class="lineno">  343</span>&#160;  <span class="keywordflow">return</span> v ? v-&gt;Length() : 0;</div>
-<div class="line"><a name="l00344"></a><span class="lineno">  344</span>&#160;}</div>
-<div class="line"><a name="l00345"></a><span class="lineno">  345</span>&#160;</div>
-<div class="line"><a name="l00346"></a><span class="lineno"><a class="line" href="structflatbuffers_1_1_string.html">  346</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structflatbuffers_1_1_string.html">String</a> : <span class="keyword">public</span> <a class="code" href="classflatbuffers_1_1_vector.html">Vector</a>&lt;char&gt; {</div>
-<div class="line"><a name="l00347"></a><span class="lineno">  347</span>&#160;  <span class="keyword">const</span> <span class="keywordtype">char</span> *c_str()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <span class="keyword">reinterpret_cast&lt;</span><span class="keyword">const </span><span class="keywordtype">char</span> *<span class="keyword">&gt;</span>(Data()); }</div>
-<div class="line"><a name="l00348"></a><span class="lineno">  348</span>&#160;  std::string str()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> std::string(c_str(), Length()); }</div>
-<div class="line"><a name="l00349"></a><span class="lineno">  349</span>&#160;</div>
-<div class="line"><a name="l00350"></a><span class="lineno">  350</span>&#160;  <span class="keywordtype">bool</span> operator &lt;(<span class="keyword">const</span> <a class="code" href="structflatbuffers_1_1_string.html">String</a> &amp;o)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00351"></a><span class="lineno">  351</span>&#160;    <span class="keywordflow">return</span> strcmp(c_str(), o.c_str()) &lt; 0;</div>
-<div class="line"><a name="l00352"></a><span class="lineno">  352</span>&#160;  }</div>
-<div class="line"><a name="l00353"></a><span class="lineno">  353</span>&#160;};</div>
-<div class="line"><a name="l00354"></a><span class="lineno">  354</span>&#160;</div>
-<div class="line"><a name="l00355"></a><span class="lineno">  355</span>&#160;<span class="comment">// Allocator interface. This is flatbuffers-specific and meant only for</span></div>
-<div class="line"><a name="l00356"></a><span class="lineno">  356</span>&#160;<span class="comment">// `vector_downward` usage.</span></div>
-<div class="line"><a name="l00357"></a><span class="lineno"><a class="line" href="classflatbuffers_1_1_allocator.html">  357</a></span>&#160;<span class="keyword">class </span><a class="code" href="classflatbuffers_1_1_allocator.html">Allocator</a> {</div>
-<div class="line"><a name="l00358"></a><span class="lineno">  358</span>&#160; <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00359"></a><span class="lineno">  359</span>&#160;  <span class="keyword">virtual</span> ~<a class="code" href="classflatbuffers_1_1_allocator.html">Allocator</a>() {}</div>
-<div class="line"><a name="l00360"></a><span class="lineno">  360</span>&#160;</div>
-<div class="line"><a name="l00361"></a><span class="lineno">  361</span>&#160;  <span class="comment">// Allocate `size` bytes of memory.</span></div>
-<div class="line"><a name="l00362"></a><span class="lineno">  362</span>&#160;  <span class="keyword">virtual</span> uint8_t *allocate(<span class="keywordtype">size_t</span> size) = 0;</div>
-<div class="line"><a name="l00363"></a><span class="lineno">  363</span>&#160;</div>
-<div class="line"><a name="l00364"></a><span class="lineno">  364</span>&#160;  <span class="comment">// Deallocate `size` bytes of memory at `p` allocated by this allocator.</span></div>
-<div class="line"><a name="l00365"></a><span class="lineno">  365</span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">void</span> deallocate(uint8_t *p, <span class="keywordtype">size_t</span> size) = 0;</div>
-<div class="line"><a name="l00366"></a><span class="lineno">  366</span>&#160;</div>
-<div class="line"><a name="l00367"></a><span class="lineno">  367</span>&#160;  <span class="comment">// Reallocate `new_size` bytes of memory, replacing the old region of size</span></div>
-<div class="line"><a name="l00368"></a><span class="lineno">  368</span>&#160;  <span class="comment">// `old_size` at `p`. In contrast to a normal realloc, this grows downwards,</span></div>
-<div class="line"><a name="l00369"></a><span class="lineno">  369</span>&#160;  <span class="comment">// and is intended specifcally for `vector_downward` use.</span></div>
-<div class="line"><a name="l00370"></a><span class="lineno">  370</span>&#160;  <span class="keyword">virtual</span> uint8_t *reallocate_downward(uint8_t *old_p, <span class="keywordtype">size_t</span> old_size,</div>
-<div class="line"><a name="l00371"></a><span class="lineno">  371</span>&#160;                                       <span class="keywordtype">size_t</span> new_size) {</div>
-<div class="line"><a name="l00372"></a><span class="lineno">  372</span>&#160;    assert(new_size &gt; old_size);  <span class="comment">// vector_downward only grows</span></div>
-<div class="line"><a name="l00373"></a><span class="lineno">  373</span>&#160;    uint8_t *new_p = allocate(new_size);</div>
-<div class="line"><a name="l00374"></a><span class="lineno">  374</span>&#160;    memcpy(new_p + (new_size - old_size), old_p, old_size);</div>
-<div class="line"><a name="l00375"></a><span class="lineno">  375</span>&#160;    deallocate(old_p, old_size);</div>
-<div class="line"><a name="l00376"></a><span class="lineno">  376</span>&#160;    <span class="keywordflow">return</span> new_p;</div>
-<div class="line"><a name="l00377"></a><span class="lineno">  377</span>&#160;  }</div>
-<div class="line"><a name="l00378"></a><span class="lineno">  378</span>&#160;};</div>
-<div class="line"><a name="l00379"></a><span class="lineno">  379</span>&#160;</div>
-<div class="line"><a name="l00380"></a><span class="lineno">  380</span>&#160;<span class="comment">// DefaultAllocator uses new/delete to allocate memory regions</span></div>
-<div class="line"><a name="l00381"></a><span class="lineno"><a class="line" href="classflatbuffers_1_1_default_allocator.html">  381</a></span>&#160;<span class="keyword">class </span><a class="code" href="classflatbuffers_1_1_default_allocator.html">DefaultAllocator</a> : <span class="keyword">public</span> <a class="code" href="classflatbuffers_1_1_allocator.html">Allocator</a> {</div>
-<div class="line"><a name="l00382"></a><span class="lineno">  382</span>&#160; <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00383"></a><span class="lineno">  383</span>&#160;  <span class="keyword">virtual</span> uint8_t *allocate(<span class="keywordtype">size_t</span> size) FLATBUFFERS_OVERRIDE {</div>
-<div class="line"><a name="l00384"></a><span class="lineno">  384</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">new</span> uint8_t[size];</div>
-<div class="line"><a name="l00385"></a><span class="lineno">  385</span>&#160;  }</div>
-<div class="line"><a name="l00386"></a><span class="lineno">  386</span>&#160;</div>
-<div class="line"><a name="l00387"></a><span class="lineno">  387</span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">void</span> deallocate(uint8_t *p, <span class="keywordtype">size_t</span>) FLATBUFFERS_OVERRIDE {</div>
-<div class="line"><a name="l00388"></a><span class="lineno">  388</span>&#160;    <span class="keyword">delete</span>[] p;</div>
-<div class="line"><a name="l00389"></a><span class="lineno">  389</span>&#160;  }</div>
-<div class="line"><a name="l00390"></a><span class="lineno">  390</span>&#160;</div>
-<div class="line"><a name="l00391"></a><span class="lineno">  391</span>&#160;  <span class="keyword">static</span> <a class="code" href="classflatbuffers_1_1_default_allocator.html">DefaultAllocator</a> &amp;instance() {</div>
-<div class="line"><a name="l00392"></a><span class="lineno">  392</span>&#160;    <span class="keyword">static</span> <a class="code" href="classflatbuffers_1_1_default_allocator.html">DefaultAllocator</a> inst;</div>
-<div class="line"><a name="l00393"></a><span class="lineno">  393</span>&#160;    <span class="keywordflow">return</span> inst;</div>
-<div class="line"><a name="l00394"></a><span class="lineno">  394</span>&#160;  }</div>
-<div class="line"><a name="l00395"></a><span class="lineno">  395</span>&#160;};</div>
-<div class="line"><a name="l00396"></a><span class="lineno">  396</span>&#160;</div>
-<div class="line"><a name="l00397"></a><span class="lineno">  397</span>&#160;<span class="comment">// DetachedBuffer is a finished flatbuffer memory region, detached from its</span></div>
-<div class="line"><a name="l00398"></a><span class="lineno">  398</span>&#160;<span class="comment">// builder. The original memory region and allocator are also stored so that</span></div>
-<div class="line"><a name="l00399"></a><span class="lineno">  399</span>&#160;<span class="comment">// the DetachedBuffer can manage the memory lifetime.</span></div>
-<div class="line"><a name="l00400"></a><span class="lineno"><a class="line" href="classflatbuffers_1_1_detached_buffer.html">  400</a></span>&#160;<span class="keyword">class </span><a class="code" href="classflatbuffers_1_1_detached_buffer.html">DetachedBuffer</a> {</div>
-<div class="line"><a name="l00401"></a><span class="lineno">  401</span>&#160; <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00402"></a><span class="lineno">  402</span>&#160;  <a class="code" href="classflatbuffers_1_1_detached_buffer.html">DetachedBuffer</a>() : allocator_(<span class="keyword">nullptr</span>), own_allocator_(<span class="keyword">false</span>), buf_(<span class="keyword">nullptr</span>),</div>
-<div class="line"><a name="l00403"></a><span class="lineno">  403</span>&#160;                     reserved_(0), cur_(<span class="keyword">nullptr</span>), size_(0) {}</div>
-<div class="line"><a name="l00404"></a><span class="lineno">  404</span>&#160;</div>
-<div class="line"><a name="l00405"></a><span class="lineno">  405</span>&#160;  <a class="code" href="classflatbuffers_1_1_detached_buffer.html">DetachedBuffer</a>(<a class="code" href="classflatbuffers_1_1_allocator.html">Allocator</a> *allocator, <span class="keywordtype">bool</span> own_allocator, uint8_t *buf,</div>
-<div class="line"><a name="l00406"></a><span class="lineno">  406</span>&#160;                 <span class="keywordtype">size_t</span> reserved, uint8_t *cur, <span class="keywordtype">size_t</span> sz)</div>
-<div class="line"><a name="l00407"></a><span class="lineno">  407</span>&#160;    : allocator_(allocator), own_allocator_(own_allocator), buf_(buf),</div>
-<div class="line"><a name="l00408"></a><span class="lineno">  408</span>&#160;      reserved_(reserved), cur_(cur), size_(sz) {</div>
-<div class="line"><a name="l00409"></a><span class="lineno">  409</span>&#160;    assert(allocator_);</div>
-<div class="line"><a name="l00410"></a><span class="lineno">  410</span>&#160;  }</div>
-<div class="line"><a name="l00411"></a><span class="lineno">  411</span>&#160;</div>
-<div class="line"><a name="l00412"></a><span class="lineno">  412</span>&#160;  <a class="code" href="classflatbuffers_1_1_detached_buffer.html">DetachedBuffer</a>(<a class="code" href="classflatbuffers_1_1_detached_buffer.html">DetachedBuffer</a> &amp;&amp;other)</div>
-<div class="line"><a name="l00413"></a><span class="lineno">  413</span>&#160;    : allocator_(other.allocator_), own_allocator_(other.own_allocator_),</div>
-<div class="line"><a name="l00414"></a><span class="lineno">  414</span>&#160;      buf_(other.buf_), reserved_(other.reserved_), cur_(other.cur_),</div>
-<div class="line"><a name="l00415"></a><span class="lineno">  415</span>&#160;      size_(other.size_) {</div>
-<div class="line"><a name="l00416"></a><span class="lineno">  416</span>&#160;    other.reset();  </div>
-<div class="line"><a name="l00417"></a><span class="lineno">  417</span>&#160;  }</div>
-<div class="line"><a name="l00418"></a><span class="lineno">  418</span>&#160;</div>
-<div class="line"><a name="l00419"></a><span class="lineno">  419</span>&#160;  <a class="code" href="classflatbuffers_1_1_detached_buffer.html">DetachedBuffer</a> &amp;operator=(<a class="code" href="classflatbuffers_1_1_detached_buffer.html">DetachedBuffer</a> &amp;&amp;other) {</div>
-<div class="line"><a name="l00420"></a><span class="lineno">  420</span>&#160;    destroy();</div>
-<div class="line"><a name="l00421"></a><span class="lineno">  421</span>&#160;</div>
-<div class="line"><a name="l00422"></a><span class="lineno">  422</span>&#160;    allocator_ = other.allocator_;</div>
-<div class="line"><a name="l00423"></a><span class="lineno">  423</span>&#160;    own_allocator_ = other.own_allocator_;</div>
-<div class="line"><a name="l00424"></a><span class="lineno">  424</span>&#160;    buf_ = other.buf_;</div>
-<div class="line"><a name="l00425"></a><span class="lineno">  425</span>&#160;    reserved_ = other.reserved_;</div>
-<div class="line"><a name="l00426"></a><span class="lineno">  426</span>&#160;    cur_ = other.cur_;</div>
-<div class="line"><a name="l00427"></a><span class="lineno">  427</span>&#160;    size_ = other.size_;</div>
-<div class="line"><a name="l00428"></a><span class="lineno">  428</span>&#160;</div>
-<div class="line"><a name="l00429"></a><span class="lineno">  429</span>&#160;    other.reset();</div>
-<div class="line"><a name="l00430"></a><span class="lineno">  430</span>&#160;</div>
-<div class="line"><a name="l00431"></a><span class="lineno">  431</span>&#160;    <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00432"></a><span class="lineno">  432</span>&#160;  }</div>
-<div class="line"><a name="l00433"></a><span class="lineno">  433</span>&#160;</div>
-<div class="line"><a name="l00434"></a><span class="lineno">  434</span>&#160;  ~<a class="code" href="classflatbuffers_1_1_detached_buffer.html">DetachedBuffer</a>() {</div>
-<div class="line"><a name="l00435"></a><span class="lineno">  435</span>&#160;    destroy();</div>
-<div class="line"><a name="l00436"></a><span class="lineno">  436</span>&#160;  }</div>
-<div class="line"><a name="l00437"></a><span class="lineno">  437</span>&#160;</div>
-<div class="line"><a name="l00438"></a><span class="lineno">  438</span>&#160;  <span class="keyword">const</span> uint8_t *data()<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00439"></a><span class="lineno">  439</span>&#160;    <span class="keywordflow">return</span> cur_;</div>
-<div class="line"><a name="l00440"></a><span class="lineno">  440</span>&#160;  }</div>
-<div class="line"><a name="l00441"></a><span class="lineno">  441</span>&#160;</div>
-<div class="line"><a name="l00442"></a><span class="lineno">  442</span>&#160;  uint8_t *data() {</div>
-<div class="line"><a name="l00443"></a><span class="lineno">  443</span>&#160;    <span class="keywordflow">return</span> cur_;</div>
-<div class="line"><a name="l00444"></a><span class="lineno">  444</span>&#160;  }</div>
-<div class="line"><a name="l00445"></a><span class="lineno">  445</span>&#160;</div>
-<div class="line"><a name="l00446"></a><span class="lineno">  446</span>&#160;  <span class="keywordtype">size_t</span> size()<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00447"></a><span class="lineno">  447</span>&#160;    <span class="keywordflow">return</span> size_;</div>
-<div class="line"><a name="l00448"></a><span class="lineno">  448</span>&#160;  }</div>
-<div class="line"><a name="l00449"></a><span class="lineno">  449</span>&#160;</div>
-<div class="line"><a name="l00450"></a><span class="lineno">  450</span>&#160;<span class="preprocessor">#if 0  // disabled for now due to the ordering of classes in this header</span></div>
-<div class="line"><a name="l00451"></a><span class="lineno">  451</span>&#160;  <span class="keyword">template</span> &lt;<span class="keyword">class</span> T&gt;</div>
-<div class="line"><a name="l00452"></a><span class="lineno">  452</span>&#160;  <span class="keywordtype">bool</span> Verify()<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00453"></a><span class="lineno">  453</span>&#160;    Verifier verifier(data(), size());</div>
-<div class="line"><a name="l00454"></a><span class="lineno">  454</span>&#160;    <span class="keywordflow">return</span> verifier.Verify&lt;T&gt;(<span class="keyword">nullptr</span>);</div>
-<div class="line"><a name="l00455"></a><span class="lineno">  455</span>&#160;  }</div>
-<div class="line"><a name="l00456"></a><span class="lineno">  456</span>&#160;</div>
-<div class="line"><a name="l00457"></a><span class="lineno">  457</span>&#160;  <span class="keyword">template</span> &lt;<span class="keyword">class</span> T&gt;</div>
-<div class="line"><a name="l00458"></a><span class="lineno">  458</span>&#160;  <span class="keyword">const</span> T* GetRoot()<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00459"></a><span class="lineno">  459</span>&#160;    <span class="keywordflow">return</span> flatbuffers::GetRoot&lt;T&gt;(data());</div>
-<div class="line"><a name="l00460"></a><span class="lineno">  460</span>&#160;  }</div>
-<div class="line"><a name="l00461"></a><span class="lineno">  461</span>&#160;</div>
-<div class="line"><a name="l00462"></a><span class="lineno">  462</span>&#160;  <span class="keyword">template</span> &lt;<span class="keyword">class</span> T&gt;</div>
-<div class="line"><a name="l00463"></a><span class="lineno">  463</span>&#160;  T* GetRoot() {</div>
-<div class="line"><a name="l00464"></a><span class="lineno">  464</span>&#160;    <span class="keywordflow">return</span> flatbuffers::GetRoot&lt;T&gt;(data());</div>
-<div class="line"><a name="l00465"></a><span class="lineno">  465</span>&#160;  }</div>
-<div class="line"><a name="l00466"></a><span class="lineno">  466</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00467"></a><span class="lineno">  467</span>&#160;</div>
-<div class="line"><a name="l00468"></a><span class="lineno">  468</span>&#160;  <span class="comment">// These may change access mode, leave these at end of public section</span></div>
-<div class="line"><a name="l00469"></a><span class="lineno">  469</span>&#160;  FLATBUFFERS_DELETE_FUNC(<a class="code" href="classflatbuffers_1_1_detached_buffer.html">DetachedBuffer</a>(<span class="keyword">const</span> <a class="code" href="classflatbuffers_1_1_detached_buffer.html">DetachedBuffer</a> &amp;other))</div>
-<div class="line"><a name="l00470"></a><span class="lineno">  470</span>&#160;  FLATBUFFERS_DELETE_FUNC(</div>
-<div class="line"><a name="l00471"></a><span class="lineno">  471</span>&#160;      <a class="code" href="classflatbuffers_1_1_detached_buffer.html">DetachedBuffer</a> &amp;<span class="keyword">operator</span>=(<span class="keyword">const</span> <a class="code" href="classflatbuffers_1_1_detached_buffer.html">DetachedBuffer</a> &amp;other))</div>
-<div class="line"><a name="l00472"></a><span class="lineno">  472</span>&#160;</div>
-<div class="line"><a name="l00473"></a><span class="lineno">  473</span>&#160; <span class="keyword">protected</span>:</div>
-<div class="line"><a name="l00474"></a><span class="lineno">  474</span>&#160;  <a class="code" href="classflatbuffers_1_1_allocator.html">Allocator</a> *allocator_;</div>
-<div class="line"><a name="l00475"></a><span class="lineno">  475</span>&#160;  <span class="keywordtype">bool</span> own_allocator_;</div>
-<div class="line"><a name="l00476"></a><span class="lineno">  476</span>&#160;  uint8_t *buf_;</div>
-<div class="line"><a name="l00477"></a><span class="lineno">  477</span>&#160;  <span class="keywordtype">size_t</span> reserved_;</div>
-<div class="line"><a name="l00478"></a><span class="lineno">  478</span>&#160;  uint8_t *cur_;</div>
-<div class="line"><a name="l00479"></a><span class="lineno">  479</span>&#160;  <span class="keywordtype">size_t</span> size_;</div>
-<div class="line"><a name="l00480"></a><span class="lineno">  480</span>&#160;</div>
-<div class="line"><a name="l00481"></a><span class="lineno">  481</span>&#160;  <span class="keyword">inline</span> <span class="keywordtype">void</span> destroy() {</div>
-<div class="line"><a name="l00482"></a><span class="lineno">  482</span>&#160;    <span class="keywordflow">if</span> (buf_) {</div>
-<div class="line"><a name="l00483"></a><span class="lineno">  483</span>&#160;      assert(allocator_);</div>
-<div class="line"><a name="l00484"></a><span class="lineno">  484</span>&#160;      allocator_-&gt;deallocate(buf_, reserved_);</div>
-<div class="line"><a name="l00485"></a><span class="lineno">  485</span>&#160;    }</div>
-<div class="line"><a name="l00486"></a><span class="lineno">  486</span>&#160;    <span class="keywordflow">if</span> (own_allocator_ &amp;&amp; allocator_) {</div>
-<div class="line"><a name="l00487"></a><span class="lineno">  487</span>&#160;      <span class="keyword">delete</span> allocator_;</div>
-<div class="line"><a name="l00488"></a><span class="lineno">  488</span>&#160;    }</div>
-<div class="line"><a name="l00489"></a><span class="lineno">  489</span>&#160;</div>
-<div class="line"><a name="l00490"></a><span class="lineno">  490</span>&#160;    reset();</div>
-<div class="line"><a name="l00491"></a><span class="lineno">  491</span>&#160;  }</div>
-<div class="line"><a name="l00492"></a><span class="lineno">  492</span>&#160;</div>
-<div class="line"><a name="l00493"></a><span class="lineno">  493</span>&#160;  <span class="keyword">inline</span> <span class="keywordtype">void</span> reset() {</div>
-<div class="line"><a name="l00494"></a><span class="lineno">  494</span>&#160;    allocator_ = <span class="keyword">nullptr</span>;</div>
-<div class="line"><a name="l00495"></a><span class="lineno">  495</span>&#160;    own_allocator_ = <span class="keyword">false</span>;</div>
-<div class="line"><a name="l00496"></a><span class="lineno">  496</span>&#160;    buf_ = <span class="keyword">nullptr</span>;</div>
-<div class="line"><a name="l00497"></a><span class="lineno">  497</span>&#160;    reserved_ = 0;</div>
-<div class="line"><a name="l00498"></a><span class="lineno">  498</span>&#160;    cur_ = <span class="keyword">nullptr</span>;</div>
-<div class="line"><a name="l00499"></a><span class="lineno">  499</span>&#160;    size_ = 0;</div>
-<div class="line"><a name="l00500"></a><span class="lineno">  500</span>&#160;  }</div>
-<div class="line"><a name="l00501"></a><span class="lineno">  501</span>&#160;};</div>
-<div class="line"><a name="l00502"></a><span class="lineno">  502</span>&#160;</div>
-<div class="line"><a name="l00503"></a><span class="lineno">  503</span>&#160;<span class="comment">// This is a minimal replication of std::vector&lt;uint8_t&gt; functionality,</span></div>
-<div class="line"><a name="l00504"></a><span class="lineno">  504</span>&#160;<span class="comment">// except growing from higher to lower addresses. i.e push_back() inserts data</span></div>
-<div class="line"><a name="l00505"></a><span class="lineno">  505</span>&#160;<span class="comment">// in the lowest address in the vector.</span></div>
-<div class="line"><a name="l00506"></a><span class="lineno"><a class="line" href="classflatbuffers_1_1vector__downward.html">  506</a></span>&#160;<span class="keyword">class </span><a class="code" href="classflatbuffers_1_1vector__downward.html">vector_downward</a> {</div>
-<div class="line"><a name="l00507"></a><span class="lineno">  507</span>&#160; <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00508"></a><span class="lineno">  508</span>&#160;  <span class="keyword">explicit</span> <a class="code" href="classflatbuffers_1_1vector__downward.html">vector_downward</a>(<span class="keywordtype">size_t</span> initial_size = 1024,</div>
-<div class="line"><a name="l00509"></a><span class="lineno">  509</span>&#160;                           <a class="code" href="classflatbuffers_1_1_allocator.html">Allocator</a> *allocator = <span class="keyword">nullptr</span>,</div>
-<div class="line"><a name="l00510"></a><span class="lineno">  510</span>&#160;                           <span class="keywordtype">bool</span> own_allocator = <span class="keyword">false</span>)</div>
-<div class="line"><a name="l00511"></a><span class="lineno">  511</span>&#160;    : allocator_(allocator ? allocator : &amp;DefaultAllocator::instance()),</div>
-<div class="line"><a name="l00512"></a><span class="lineno">  512</span>&#160;      own_allocator_(own_allocator), initial_size_(initial_size), reserved_(0),</div>
-<div class="line"><a name="l00513"></a><span class="lineno">  513</span>&#160;      buf_(<span class="keyword">nullptr</span>), cur_(<span class="keyword">nullptr</span>) {</div>
-<div class="line"><a name="l00514"></a><span class="lineno">  514</span>&#160;    assert(allocator_);</div>
-<div class="line"><a name="l00515"></a><span class="lineno">  515</span>&#160;  }</div>
-<div class="line"><a name="l00516"></a><span class="lineno">  516</span>&#160;</div>
-<div class="line"><a name="l00517"></a><span class="lineno">  517</span>&#160;  ~<a class="code" href="classflatbuffers_1_1vector__downward.html">vector_downward</a>() {</div>
-<div class="line"><a name="l00518"></a><span class="lineno">  518</span>&#160;    <span class="keywordflow">if</span> (buf_) {</div>
-<div class="line"><a name="l00519"></a><span class="lineno">  519</span>&#160;      assert(allocator_);</div>
-<div class="line"><a name="l00520"></a><span class="lineno">  520</span>&#160;      allocator_-&gt;deallocate(buf_, reserved_);</div>
-<div class="line"><a name="l00521"></a><span class="lineno">  521</span>&#160;    }</div>
-<div class="line"><a name="l00522"></a><span class="lineno">  522</span>&#160;    <span class="keywordflow">if</span> (own_allocator_ &amp;&amp; allocator_) {</div>
-<div class="line"><a name="l00523"></a><span class="lineno">  523</span>&#160;      <span class="keyword">delete</span> allocator_;</div>
-<div class="line"><a name="l00524"></a><span class="lineno">  524</span>&#160;    }</div>
-<div class="line"><a name="l00525"></a><span class="lineno">  525</span>&#160;  }</div>
-<div class="line"><a name="l00526"></a><span class="lineno">  526</span>&#160;</div>
-<div class="line"><a name="l00527"></a><span class="lineno">  527</span>&#160;  <span class="keywordtype">void</span> reset() {</div>
-<div class="line"><a name="l00528"></a><span class="lineno">  528</span>&#160;    <span class="keywordflow">if</span> (buf_) {</div>
-<div class="line"><a name="l00529"></a><span class="lineno">  529</span>&#160;      assert(allocator_);</div>
-<div class="line"><a name="l00530"></a><span class="lineno">  530</span>&#160;      allocator_-&gt;deallocate(buf_, reserved_);</div>
-<div class="line"><a name="l00531"></a><span class="lineno">  531</span>&#160;    }</div>
-<div class="line"><a name="l00532"></a><span class="lineno">  532</span>&#160;    reserved_ = 0;</div>
-<div class="line"><a name="l00533"></a><span class="lineno">  533</span>&#160;    buf_ = <span class="keyword">nullptr</span>;</div>
-<div class="line"><a name="l00534"></a><span class="lineno">  534</span>&#160;    cur_ = <span class="keyword">nullptr</span>;</div>
-<div class="line"><a name="l00535"></a><span class="lineno">  535</span>&#160;  }</div>
-<div class="line"><a name="l00536"></a><span class="lineno">  536</span>&#160;</div>
-<div class="line"><a name="l00537"></a><span class="lineno">  537</span>&#160;  <span class="keywordtype">void</span> clear() {</div>
-<div class="line"><a name="l00538"></a><span class="lineno">  538</span>&#160;    <span class="keywordflow">if</span> (buf_) {</div>
-<div class="line"><a name="l00539"></a><span class="lineno">  539</span>&#160;      cur_ = buf_ + reserved_;</div>
-<div class="line"><a name="l00540"></a><span class="lineno">  540</span>&#160;    } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00541"></a><span class="lineno">  541</span>&#160;      reserved_ = 0;</div>
-<div class="line"><a name="l00542"></a><span class="lineno">  542</span>&#160;      buf_ = <span class="keyword">nullptr</span>;</div>
-<div class="line"><a name="l00543"></a><span class="lineno">  543</span>&#160;      cur_ = <span class="keyword">nullptr</span>;</div>
-<div class="line"><a name="l00544"></a><span class="lineno">  544</span>&#160;    }</div>
-<div class="line"><a name="l00545"></a><span class="lineno">  545</span>&#160;  }</div>
-<div class="line"><a name="l00546"></a><span class="lineno">  546</span>&#160;</div>
-<div class="line"><a name="l00547"></a><span class="lineno">  547</span>&#160;  <span class="comment">// Relinquish the pointer to the caller.</span></div>
-<div class="line"><a name="l00548"></a><span class="lineno">  548</span>&#160;  <a class="code" href="classflatbuffers_1_1_detached_buffer.html">DetachedBuffer</a> release() {</div>
-<div class="line"><a name="l00549"></a><span class="lineno">  549</span>&#160;    <a class="code" href="classflatbuffers_1_1_detached_buffer.html">DetachedBuffer</a> fb(allocator_, own_allocator_, buf_, reserved_, cur_,</div>
-<div class="line"><a name="l00550"></a><span class="lineno">  550</span>&#160;                      size());</div>
-<div class="line"><a name="l00551"></a><span class="lineno">  551</span>&#160;    allocator_ = <span class="keyword">nullptr</span>;</div>
-<div class="line"><a name="l00552"></a><span class="lineno">  552</span>&#160;    own_allocator_ = <span class="keyword">false</span>;</div>
-<div class="line"><a name="l00553"></a><span class="lineno">  553</span>&#160;    reserved_ = 0;</div>
-<div class="line"><a name="l00554"></a><span class="lineno">  554</span>&#160;    buf_ = <span class="keyword">nullptr</span>;</div>
-<div class="line"><a name="l00555"></a><span class="lineno">  555</span>&#160;    cur_ = <span class="keyword">nullptr</span>;</div>
-<div class="line"><a name="l00556"></a><span class="lineno">  556</span>&#160;    <span class="keywordflow">return</span> fb;</div>
-<div class="line"><a name="l00557"></a><span class="lineno">  557</span>&#160;  }</div>
-<div class="line"><a name="l00558"></a><span class="lineno">  558</span>&#160;</div>
-<div class="line"><a name="l00559"></a><span class="lineno">  559</span>&#160;  <span class="keywordtype">size_t</span> growth_policy(<span class="keywordtype">size_t</span> bytes) {</div>
-<div class="line"><a name="l00560"></a><span class="lineno">  560</span>&#160;    <span class="keywordflow">return</span> (bytes == 0) ? initial_size_</div>
-<div class="line"><a name="l00561"></a><span class="lineno">  561</span>&#160;                        : ((bytes / 2) &amp; ~(AlignOf&lt;largest_scalar_t&gt;() - 1));</div>
-<div class="line"><a name="l00562"></a><span class="lineno">  562</span>&#160;  }</div>
-<div class="line"><a name="l00563"></a><span class="lineno">  563</span>&#160;</div>
-<div class="line"><a name="l00564"></a><span class="lineno">  564</span>&#160;  uint8_t *make_space(<span class="keywordtype">size_t</span> len) {</div>
-<div class="line"><a name="l00565"></a><span class="lineno">  565</span>&#160;    assert(cur_ &gt;= buf_);</div>
-<div class="line"><a name="l00566"></a><span class="lineno">  566</span>&#160;    <span class="keywordflow">if</span> (len &gt; static_cast&lt;size_t&gt;(cur_ - buf_)) {</div>
-<div class="line"><a name="l00567"></a><span class="lineno">  567</span>&#160;      reallocate(len);</div>
-<div class="line"><a name="l00568"></a><span class="lineno">  568</span>&#160;    }</div>
-<div class="line"><a name="l00569"></a><span class="lineno">  569</span>&#160;    cur_ -= len;</div>
-<div class="line"><a name="l00570"></a><span class="lineno">  570</span>&#160;    <span class="comment">// Beyond this, signed offsets may not have enough range:</span></div>
-<div class="line"><a name="l00571"></a><span class="lineno">  571</span>&#160;    <span class="comment">// (FlatBuffers &gt; 2GB not supported).</span></div>
-<div class="line"><a name="l00572"></a><span class="lineno">  572</span>&#160;    assert(size() &lt; FLATBUFFERS_MAX_BUFFER_SIZE);</div>
-<div class="line"><a name="l00573"></a><span class="lineno">  573</span>&#160;    <span class="keywordflow">return</span> cur_;</div>
-<div class="line"><a name="l00574"></a><span class="lineno">  574</span>&#160;  }</div>
-<div class="line"><a name="l00575"></a><span class="lineno">  575</span>&#160;</div>
-<div class="line"><a name="l00576"></a><span class="lineno">  576</span>&#160;  <a class="code" href="classflatbuffers_1_1_allocator.html">Allocator</a> &amp;get_allocator() { <span class="keywordflow">return</span> *allocator_; }</div>
-<div class="line"><a name="l00577"></a><span class="lineno">  577</span>&#160;</div>
-<div class="line"><a name="l00578"></a><span class="lineno">  578</span>&#160;  uoffset_t size()<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00579"></a><span class="lineno">  579</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span>uoffset_t<span class="keyword">&gt;</span>(reserved_ - (cur_ - buf_));</div>
-<div class="line"><a name="l00580"></a><span class="lineno">  580</span>&#160;  }</div>
-<div class="line"><a name="l00581"></a><span class="lineno">  581</span>&#160;</div>
-<div class="line"><a name="l00582"></a><span class="lineno">  582</span>&#160;  <span class="keywordtype">size_t</span> capacity()<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00583"></a><span class="lineno">  583</span>&#160;    <span class="keywordflow">return</span> reserved_;</div>
-<div class="line"><a name="l00584"></a><span class="lineno">  584</span>&#160;  }</div>
-<div class="line"><a name="l00585"></a><span class="lineno">  585</span>&#160;</div>
-<div class="line"><a name="l00586"></a><span class="lineno">  586</span>&#160;  uint8_t *buf()<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00587"></a><span class="lineno">  587</span>&#160;    assert(buf_);</div>
-<div class="line"><a name="l00588"></a><span class="lineno">  588</span>&#160;    <span class="keywordflow">return</span> buf_;</div>
-<div class="line"><a name="l00589"></a><span class="lineno">  589</span>&#160;  }</div>
-<div class="line"><a name="l00590"></a><span class="lineno">  590</span>&#160;</div>
-<div class="line"><a name="l00591"></a><span class="lineno">  591</span>&#160;  uint8_t *data()<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00592"></a><span class="lineno">  592</span>&#160;    assert(cur_);</div>
-<div class="line"><a name="l00593"></a><span class="lineno">  593</span>&#160;    <span class="keywordflow">return</span> cur_;</div>
-<div class="line"><a name="l00594"></a><span class="lineno">  594</span>&#160;  }</div>
-<div class="line"><a name="l00595"></a><span class="lineno">  595</span>&#160;</div>
-<div class="line"><a name="l00596"></a><span class="lineno">  596</span>&#160;  uint8_t *data_at(<span class="keywordtype">size_t</span> offset)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> buf_ + reserved_ - offset; }</div>
-<div class="line"><a name="l00597"></a><span class="lineno">  597</span>&#160;</div>
-<div class="line"><a name="l00598"></a><span class="lineno">  598</span>&#160;  <span class="keywordtype">void</span> push(<span class="keyword">const</span> uint8_t *bytes, <span class="keywordtype">size_t</span> num) {</div>
-<div class="line"><a name="l00599"></a><span class="lineno">  599</span>&#160;    <span class="keyword">auto</span> dest = make_space(num);</div>
-<div class="line"><a name="l00600"></a><span class="lineno">  600</span>&#160;    memcpy(dest, bytes, num);</div>
-<div class="line"><a name="l00601"></a><span class="lineno">  601</span>&#160;  }</div>
-<div class="line"><a name="l00602"></a><span class="lineno">  602</span>&#160;</div>
-<div class="line"><a name="l00603"></a><span class="lineno">  603</span>&#160;  <span class="comment">// Specialized version of push() that avoids memcpy call for small data.</span></div>
-<div class="line"><a name="l00604"></a><span class="lineno">  604</span>&#160;  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt; <span class="keywordtype">void</span> push_small(<span class="keyword">const</span> T&amp; little_endian_t) {</div>
-<div class="line"><a name="l00605"></a><span class="lineno">  605</span>&#160;    <span class="keyword">auto</span> dest = make_space(<span class="keyword">sizeof</span>(T));</div>
-<div class="line"><a name="l00606"></a><span class="lineno">  606</span>&#160;    *<span class="keyword">reinterpret_cast&lt;</span>T *<span class="keyword">&gt;</span>(dest) = little_endian_t;</div>
-<div class="line"><a name="l00607"></a><span class="lineno">  607</span>&#160;  }</div>
-<div class="line"><a name="l00608"></a><span class="lineno">  608</span>&#160;</div>
-<div class="line"><a name="l00609"></a><span class="lineno">  609</span>&#160;  <span class="comment">// fill() is most frequently called with small byte counts (&lt;= 4),</span></div>
-<div class="line"><a name="l00610"></a><span class="lineno">  610</span>&#160;  <span class="comment">// which is why we&#39;re using loops rather than calling memset.</span></div>
-<div class="line"><a name="l00611"></a><span class="lineno">  611</span>&#160;  <span class="keywordtype">void</span> fill(<span class="keywordtype">size_t</span> zero_pad_bytes) {</div>
-<div class="line"><a name="l00612"></a><span class="lineno">  612</span>&#160;    <span class="keyword">auto</span> dest = make_space(zero_pad_bytes);</div>
-<div class="line"><a name="l00613"></a><span class="lineno">  613</span>&#160;    <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; zero_pad_bytes; i++) dest[i] = 0;</div>
-<div class="line"><a name="l00614"></a><span class="lineno">  614</span>&#160;  }</div>
-<div class="line"><a name="l00615"></a><span class="lineno">  615</span>&#160;</div>
-<div class="line"><a name="l00616"></a><span class="lineno">  616</span>&#160;  <span class="comment">// Version for when we know the size is larger.</span></div>
-<div class="line"><a name="l00617"></a><span class="lineno">  617</span>&#160;  <span class="keywordtype">void</span> fill_big(<span class="keywordtype">size_t</span> zero_pad_bytes) {</div>
-<div class="line"><a name="l00618"></a><span class="lineno">  618</span>&#160;    <span class="keyword">auto</span> dest = make_space(zero_pad_bytes);</div>
-<div class="line"><a name="l00619"></a><span class="lineno">  619</span>&#160;    memset(dest, 0, zero_pad_bytes);</div>
-<div class="line"><a name="l00620"></a><span class="lineno">  620</span>&#160;  }</div>
-<div class="line"><a name="l00621"></a><span class="lineno">  621</span>&#160;</div>
-<div class="line"><a name="l00622"></a><span class="lineno">  622</span>&#160;  <span class="keywordtype">void</span> pop(<span class="keywordtype">size_t</span> bytes_to_remove) { cur_ += bytes_to_remove; }</div>
-<div class="line"><a name="l00623"></a><span class="lineno">  623</span>&#160;</div>
-<div class="line"><a name="l00624"></a><span class="lineno">  624</span>&#160; <span class="keyword">private</span>:</div>
-<div class="line"><a name="l00625"></a><span class="lineno">  625</span>&#160;  <span class="comment">// You shouldn&#39;t really be copying instances of this class.</span></div>
-<div class="line"><a name="l00626"></a><span class="lineno">  626</span>&#160;  FLATBUFFERS_DELETE_FUNC(<a class="code" href="classflatbuffers_1_1vector__downward.html">vector_downward</a>(<span class="keyword">const</span> <a class="code" href="classflatbuffers_1_1vector__downward.html">vector_downward</a> &amp;))</div>
-<div class="line"><a name="l00627"></a><span class="lineno">  627</span>&#160;  FLATBUFFERS_DELETE_FUNC(<a class="code" href="classflatbuffers_1_1vector__downward.html">vector_downward</a> &amp;<span class="keyword">operator</span>=(<span class="keyword">const</span> <a class="code" href="classflatbuffers_1_1vector__downward.html">vector_downward</a> &amp;))</div>
-<div class="line"><a name="l00628"></a><span class="lineno">  628</span>&#160;</div>
-<div class="line"><a name="l00629"></a><span class="lineno">  629</span>&#160;  <a class="code" href="classflatbuffers_1_1_allocator.html">Allocator</a> *allocator_;</div>
-<div class="line"><a name="l00630"></a><span class="lineno">  630</span>&#160;  <span class="keywordtype">bool</span> own_allocator_;</div>
-<div class="line"><a name="l00631"></a><span class="lineno">  631</span>&#160;  <span class="keywordtype">size_t</span> initial_size_;</div>
-<div class="line"><a name="l00632"></a><span class="lineno">  632</span>&#160;  <span class="keywordtype">size_t</span> reserved_;</div>
-<div class="line"><a name="l00633"></a><span class="lineno">  633</span>&#160;  uint8_t *buf_;</div>
-<div class="line"><a name="l00634"></a><span class="lineno">  634</span>&#160;  uint8_t *cur_;  <span class="comment">// Points at location between empty (below) and used (above).</span></div>
-<div class="line"><a name="l00635"></a><span class="lineno">  635</span>&#160;</div>
-<div class="line"><a name="l00636"></a><span class="lineno">  636</span>&#160;  <span class="keywordtype">void</span> reallocate(<span class="keywordtype">size_t</span> len) {</div>
-<div class="line"><a name="l00637"></a><span class="lineno">  637</span>&#160;    assert(allocator_);</div>
-<div class="line"><a name="l00638"></a><span class="lineno">  638</span>&#160;    <span class="keyword">auto</span> old_reserved = reserved_;</div>
-<div class="line"><a name="l00639"></a><span class="lineno">  639</span>&#160;    <span class="keyword">auto</span> old_size = size();</div>
-<div class="line"><a name="l00640"></a><span class="lineno">  640</span>&#160;    reserved_ += (std::max)(len, growth_policy(old_reserved));</div>
-<div class="line"><a name="l00641"></a><span class="lineno">  641</span>&#160;    FLATBUFFERS_CONSTEXPR <span class="keywordtype">size_t</span> alignment = AlignOf&lt;largest_scalar_t&gt;();</div>
-<div class="line"><a name="l00642"></a><span class="lineno">  642</span>&#160;    reserved_ = (reserved_ + alignment - 1) &amp; ~(alignment - 1);</div>
-<div class="line"><a name="l00643"></a><span class="lineno">  643</span>&#160;    <span class="keywordflow">if</span> (buf_) {</div>
-<div class="line"><a name="l00644"></a><span class="lineno">  644</span>&#160;      buf_ = allocator_-&gt;reallocate_downward(buf_, old_reserved, reserved_);</div>
-<div class="line"><a name="l00645"></a><span class="lineno">  645</span>&#160;    } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00646"></a><span class="lineno">  646</span>&#160;      buf_ = allocator_-&gt;allocate(reserved_);</div>
-<div class="line"><a name="l00647"></a><span class="lineno">  647</span>&#160;    }</div>
-<div class="line"><a name="l00648"></a><span class="lineno">  648</span>&#160;    cur_ = buf_ + reserved_ - old_size;</div>
-<div class="line"><a name="l00649"></a><span class="lineno">  649</span>&#160;  }</div>
-<div class="line"><a name="l00650"></a><span class="lineno">  650</span>&#160;};</div>
-<div class="line"><a name="l00651"></a><span class="lineno">  651</span>&#160;</div>
-<div class="line"><a name="l00652"></a><span class="lineno">  652</span>&#160;<span class="comment">// Converts a Field ID to a virtual table offset.</span></div>
-<div class="line"><a name="l00653"></a><span class="lineno">  653</span>&#160;<span class="keyword">inline</span> voffset_t FieldIndexToOffset(voffset_t field_id) {</div>
-<div class="line"><a name="l00654"></a><span class="lineno">  654</span>&#160;  <span class="comment">// Should correspond to what EndTable() below builds up.</span></div>
-<div class="line"><a name="l00655"></a><span class="lineno">  655</span>&#160;  <span class="keyword">const</span> <span class="keywordtype">int</span> fixed_fields = 2;  <span class="comment">// Vtable size and Object Size.</span></div>
-<div class="line"><a name="l00656"></a><span class="lineno">  656</span>&#160;  <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span>voffset_t<span class="keyword">&gt;</span>((field_id + fixed_fields) * <span class="keyword">sizeof</span>(voffset_t));</div>
-<div class="line"><a name="l00657"></a><span class="lineno">  657</span>&#160;}</div>
-<div class="line"><a name="l00658"></a><span class="lineno">  658</span>&#160;</div>
-<div class="line"><a name="l00659"></a><span class="lineno">  659</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">const</span> T* data(<span class="keyword">const</span> std::vector&lt;T&gt; &amp;v) {</div>
-<div class="line"><a name="l00660"></a><span class="lineno">  660</span>&#160;  <span class="keywordflow">return</span> v.empty() ? <span class="keyword">nullptr</span> : &amp;v.front();</div>
-<div class="line"><a name="l00661"></a><span class="lineno">  661</span>&#160;}</div>
-<div class="line"><a name="l00662"></a><span class="lineno">  662</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; T* data(std::vector&lt;T&gt; &amp;v) {</div>
-<div class="line"><a name="l00663"></a><span class="lineno">  663</span>&#160;  <span class="keywordflow">return</span> v.empty() ? <span class="keyword">nullptr</span> : &amp;v.front();</div>
-<div class="line"><a name="l00664"></a><span class="lineno">  664</span>&#160;}</div>
-<div class="line"><a name="l00665"></a><span class="lineno">  665</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00666"></a><span class="lineno">  666</span>&#160;<span class="comment">/// @endcond</span></div>
-<div class="line"><a name="l00667"></a><span class="lineno">  667</span>&#160;<span class="comment"></span><span class="comment"></span></div>
-<div class="line"><a name="l00668"></a><span class="lineno">  668</span>&#160;<span class="comment">/// @addtogroup flatbuffers_cpp_api</span></div>
-<div class="line"><a name="l00669"></a><span class="lineno">  669</span>&#160;<span class="comment">/// @{</span></div>
-<div class="line"><a name="l00670"></a><span class="lineno">  670</span>&#160;<span class="comment">/// @class FlatBufferBuilder</span></div>
-<div class="line"><a name="l00671"></a><span class="lineno">  671</span>&#160;<span class="comment">/// @brief Helper class to hold data needed in creation of a FlatBuffer.</span></div>
-<div class="line"><a name="l00672"></a><span class="lineno">  672</span>&#160;<span class="comment">/// To serialize data, you typically call one of the `Create*()` functions in</span></div>
-<div class="line"><a name="l00673"></a><span class="lineno">  673</span>&#160;<span class="comment">/// the generated code, which in turn call a sequence of `StartTable`/</span></div>
-<div class="line"><a name="l00674"></a><span class="lineno">  674</span>&#160;<span class="comment">/// `PushElement`/`AddElement`/`EndTable`, or the builtin `CreateString`/</span></div>
-<div class="line"><a name="l00675"></a><span class="lineno">  675</span>&#160;<span class="comment">/// `CreateVector` functions. Do this is depth-first order to build up a tree to</span></div>
-<div class="line"><a name="l00676"></a><span class="lineno">  676</span>&#160;<span class="comment">/// the root. `Finish()` wraps up the buffer ready for transport.</span></div>
-<div class="line"><a name="l00677"></a><span class="lineno"><a class="line" href="classflatbuffers_1_1_flat_buffer_builder.html">  677</a></span>&#160;<span class="comment"></span><span class="keyword">class </span><a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html">FlatBufferBuilder</a></div>
-<div class="line"><a name="l00678"></a><span class="lineno">  678</span>&#160;{</div>
-<div class="line"><a name="l00679"></a><span class="lineno">  679</span>&#160; <span class="keyword">public</span>:<span class="comment"></span></div>
-<div class="line"><a name="l00680"></a><span class="lineno">  680</span>&#160;<span class="comment">  /// @brief Default constructor for FlatBufferBuilder.</span></div>
-<div class="line"><a name="l00681"></a><span class="lineno">  681</span>&#160;<span class="comment">  /// @param[in] initial_size The initial size of the buffer, in bytes. Defaults</span></div>
-<div class="line"><a name="l00682"></a><span class="lineno">  682</span>&#160;<span class="comment">  /// to `1024`.</span></div>
-<div class="line"><a name="l00683"></a><span class="lineno">  683</span>&#160;<span class="comment">  /// @param[in] allocator An `Allocator` to use. Defaults to a new instance of</span></div>
-<div class="line"><a name="l00684"></a><span class="lineno">  684</span>&#160;<span class="comment">  /// a `DefaultAllocator`.</span></div>
-<div class="line"><a name="l00685"></a><span class="lineno">  685</span>&#160;<span class="comment">  /// @param[in] own_allocator Whether the builder/vector should own the</span></div>
-<div class="line"><a name="l00686"></a><span class="lineno">  686</span>&#160;<span class="comment">  /// allocator. Defaults to / `false`.</span></div>
-<div class="line"><a name="l00687"></a><span class="lineno"><a class="line" href="classflatbuffers_1_1_flat_buffer_builder.html#ae4ab74f53187e6c3e6041d34e01904c4">  687</a></span>&#160;<span class="comment"></span>  <span class="keyword">explicit</span> <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#ae4ab74f53187e6c3e6041d34e01904c4">FlatBufferBuilder</a>(<span class="keywordtype">size_t</span> initial_size = 1024,</div>
-<div class="line"><a name="l00688"></a><span class="lineno">  688</span>&#160;                             <a class="code" href="classflatbuffers_1_1_allocator.html">Allocator</a> *allocator = <span class="keyword">nullptr</span>,</div>
-<div class="line"><a name="l00689"></a><span class="lineno">  689</span>&#160;                             <span class="keywordtype">bool</span> own_allocator = <span class="keyword">false</span>)</div>
-<div class="line"><a name="l00690"></a><span class="lineno">  690</span>&#160;    : buf_(initial_size, allocator, own_allocator), max_voffset_(0),</div>
-<div class="line"><a name="l00691"></a><span class="lineno">  691</span>&#160;      nested(false), finished(false), minalign_(1), force_defaults_(false),</div>
-<div class="line"><a name="l00692"></a><span class="lineno">  692</span>&#160;      dedup_vtables_(true), string_pool(nullptr) {</div>
-<div class="line"><a name="l00693"></a><span class="lineno">  693</span>&#160;    offsetbuf_.reserve(16);  <span class="comment">// Avoid first few reallocs.</span></div>
-<div class="line"><a name="l00694"></a><span class="lineno">  694</span>&#160;    vtables_.reserve(16);</div>
-<div class="line"><a name="l00695"></a><span class="lineno">  695</span>&#160;    EndianCheck();</div>
-<div class="line"><a name="l00696"></a><span class="lineno">  696</span>&#160;  }</div>
-<div class="line"><a name="l00697"></a><span class="lineno">  697</span>&#160;</div>
-<div class="line"><a name="l00698"></a><span class="lineno">  698</span>&#160;  ~<a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html">FlatBufferBuilder</a>() {</div>
-<div class="line"><a name="l00699"></a><span class="lineno">  699</span>&#160;    <span class="keywordflow">if</span> (string_pool) <span class="keyword">delete</span> string_pool;</div>
-<div class="line"><a name="l00700"></a><span class="lineno">  700</span>&#160;  }</div>
-<div class="line"><a name="l00701"></a><span class="lineno">  701</span>&#160;</div>
-<div class="line"><a name="l00702"></a><span class="lineno">  702</span>&#160;  <span class="keywordtype">void</span> Reset() {</div>
-<div class="line"><a name="l00703"></a><span class="lineno">  703</span>&#160;    <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#ae94b94ba71ea0aeb2d9a98c43b713412">Clear</a>();  <span class="comment">// clear builder state</span></div>
-<div class="line"><a name="l00704"></a><span class="lineno">  704</span>&#160;    buf_.reset();  <span class="comment">// deallocate buffer</span></div>
-<div class="line"><a name="l00705"></a><span class="lineno">  705</span>&#160;  }</div>
-<div class="line"><a name="l00706"></a><span class="lineno">  706</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00707"></a><span class="lineno">  707</span>&#160;<span class="comment">  /// @brief Reset all the state in this FlatBufferBuilder so it can be reused</span></div>
-<div class="line"><a name="l00708"></a><span class="lineno">  708</span>&#160;<span class="comment">  /// to construct another buffer.</span></div>
-<div class="line"><a name="l00709"></a><span class="lineno"><a class="line" href="classflatbuffers_1_1_flat_buffer_builder.html#ae94b94ba71ea0aeb2d9a98c43b713412">  709</a></span>&#160;<span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#ae94b94ba71ea0aeb2d9a98c43b713412">Clear</a>() {</div>
-<div class="line"><a name="l00710"></a><span class="lineno">  710</span>&#160;    buf_.clear();</div>
-<div class="line"><a name="l00711"></a><span class="lineno">  711</span>&#160;    ClearOffsets();</div>
-<div class="line"><a name="l00712"></a><span class="lineno">  712</span>&#160;    nested = <span class="keyword">false</span>;</div>
-<div class="line"><a name="l00713"></a><span class="lineno">  713</span>&#160;    finished = <span class="keyword">false</span>;</div>
-<div class="line"><a name="l00714"></a><span class="lineno">  714</span>&#160;    vtables_.clear();</div>
-<div class="line"><a name="l00715"></a><span class="lineno">  715</span>&#160;    minalign_ = 1;</div>
-<div class="line"><a name="l00716"></a><span class="lineno">  716</span>&#160;    <span class="keywordflow">if</span> (string_pool) string_pool-&gt;clear();</div>
-<div class="line"><a name="l00717"></a><span class="lineno">  717</span>&#160;  }</div>
-<div class="line"><a name="l00718"></a><span class="lineno">  718</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00719"></a><span class="lineno">  719</span>&#160;<span class="comment">  /// @brief The current size of the serialized buffer, counting from the end.</span></div>
-<div class="line"><a name="l00720"></a><span class="lineno">  720</span>&#160;<span class="comment">  /// @return Returns an `uoffset_t` with the current size of the buffer.</span></div>
-<div class="line"><a name="l00721"></a><span class="lineno"><a class="line" href="classflatbuffers_1_1_flat_buffer_builder.html#ac1bfd609f7f736e9a37cedae77448b63">  721</a></span>&#160;<span class="comment"></span>  uoffset_t <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#ac1bfd609f7f736e9a37cedae77448b63">GetSize</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> buf_.size(); }</div>
-<div class="line"><a name="l00722"></a><span class="lineno">  722</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00723"></a><span class="lineno">  723</span>&#160;<span class="comment">  /// @brief Get the serialized buffer (after you call `Finish()`).</span></div>
-<div class="line"><a name="l00724"></a><span class="lineno">  724</span>&#160;<span class="comment">  /// @return Returns an `uint8_t` pointer to the FlatBuffer data inside the</span></div>
-<div class="line"><a name="l00725"></a><span class="lineno">  725</span>&#160;<span class="comment">  /// buffer.</span></div>
-<div class="line"><a name="l00726"></a><span class="lineno"><a class="line" href="classflatbuffers_1_1_flat_buffer_builder.html#a8dc35f792179df4ca850492c1796d8b8">  726</a></span>&#160;<span class="comment"></span>  uint8_t *<a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#a8dc35f792179df4ca850492c1796d8b8">GetBufferPointer</a>()<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00727"></a><span class="lineno">  727</span>&#160;    Finished();</div>
-<div class="line"><a name="l00728"></a><span class="lineno">  728</span>&#160;    <span class="keywordflow">return</span> buf_.data();</div>
-<div class="line"><a name="l00729"></a><span class="lineno">  729</span>&#160;  }</div>
-<div class="line"><a name="l00730"></a><span class="lineno">  730</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00731"></a><span class="lineno">  731</span>&#160;<span class="comment">  /// @brief Get a pointer to an unfinished buffer.</span></div>
-<div class="line"><a name="l00732"></a><span class="lineno">  732</span>&#160;<span class="comment">  /// @return Returns a `uint8_t` pointer to the unfinished buffer.</span></div>
-<div class="line"><a name="l00733"></a><span class="lineno"><a class="line" href="classflatbuffers_1_1_flat_buffer_builder.html#a3f4252e9bc005ba6c700469544fdccc9">  733</a></span>&#160;<span class="comment"></span>  uint8_t *<a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#a3f4252e9bc005ba6c700469544fdccc9">GetCurrentBufferPointer</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> buf_.data(); }</div>
-<div class="line"><a name="l00734"></a><span class="lineno">  734</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00735"></a><span class="lineno">  735</span>&#160;<span class="comment">  /// @brief Get the released pointer to the serialized buffer.</span></div>
-<div class="line"><a name="l00736"></a><span class="lineno">  736</span>&#160;<span class="comment">  /// @warning Do NOT attempt to use this FlatBufferBuilder afterwards!</span></div>
-<div class="line"><a name="l00737"></a><span class="lineno">  737</span>&#160;<span class="comment">  /// @return A `FlatBuffer` that owns the buffer and its allocator and</span></div>
-<div class="line"><a name="l00738"></a><span class="lineno">  738</span>&#160;<span class="comment">  /// behaves similar to a `unique_ptr` with a deleter.</span></div>
-<div class="line"><a name="l00739"></a><span class="lineno">  739</span>&#160;<span class="comment">  /// Deprecated: use Release() instead</span></div>
-<div class="line"><a name="l00740"></a><span class="lineno"><a class="line" href="classflatbuffers_1_1_flat_buffer_builder.html#a0e715d9019060b4b753c4e5228be56e8">  740</a></span>&#160;<span class="comment"></span>  <a class="code" href="classflatbuffers_1_1_detached_buffer.html">DetachedBuffer</a> <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#a0e715d9019060b4b753c4e5228be56e8">ReleaseBufferPointer</a>() {</div>
-<div class="line"><a name="l00741"></a><span class="lineno">  741</span>&#160;    Finished();</div>
-<div class="line"><a name="l00742"></a><span class="lineno">  742</span>&#160;    <span class="keywordflow">return</span> buf_.release();</div>
-<div class="line"><a name="l00743"></a><span class="lineno">  743</span>&#160;  }</div>
-<div class="line"><a name="l00744"></a><span class="lineno">  744</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00745"></a><span class="lineno">  745</span>&#160;<span class="comment">  /// @brief Get the released DetachedBuffer.</span></div>
-<div class="line"><a name="l00746"></a><span class="lineno">  746</span>&#160;<span class="comment">  /// @return A `DetachedBuffer` that owns the buffer and its allocator.</span></div>
-<div class="line"><a name="l00747"></a><span class="lineno"><a class="line" href="classflatbuffers_1_1_flat_buffer_builder.html#a5e2c3a1e47f0ab4a3a3f07a07a52fb45">  747</a></span>&#160;<span class="comment"></span>  <a class="code" href="classflatbuffers_1_1_detached_buffer.html">DetachedBuffer</a> <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#a5e2c3a1e47f0ab4a3a3f07a07a52fb45">Release</a>() {</div>
-<div class="line"><a name="l00748"></a><span class="lineno">  748</span>&#160;    Finished();</div>
-<div class="line"><a name="l00749"></a><span class="lineno">  749</span>&#160;    <span class="keywordflow">return</span> buf_.release();</div>
-<div class="line"><a name="l00750"></a><span class="lineno">  750</span>&#160;  }</div>
-<div class="line"><a name="l00751"></a><span class="lineno">  751</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00752"></a><span class="lineno">  752</span>&#160;<span class="comment">  /// @brief get the minimum alignment this buffer needs to be accessed</span></div>
-<div class="line"><a name="l00753"></a><span class="lineno">  753</span>&#160;<span class="comment">  /// properly. This is only known once all elements have been written (after</span></div>
-<div class="line"><a name="l00754"></a><span class="lineno">  754</span>&#160;<span class="comment">  /// you call Finish()). You can use this information if you need to embed</span></div>
-<div class="line"><a name="l00755"></a><span class="lineno">  755</span>&#160;<span class="comment">  /// a FlatBuffer in some other buffer, such that you can later read it</span></div>
-<div class="line"><a name="l00756"></a><span class="lineno">  756</span>&#160;<span class="comment">  /// without first having to copy it into its own buffer.</span></div>
-<div class="line"><a name="l00757"></a><span class="lineno"><a class="line" href="classflatbuffers_1_1_flat_buffer_builder.html#aa1ebce1f3f46832946a95952af1e9c2b">  757</a></span>&#160;<span class="comment"></span>  <span class="keywordtype">size_t</span> <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#aa1ebce1f3f46832946a95952af1e9c2b">GetBufferMinAlignment</a>() {</div>
-<div class="line"><a name="l00758"></a><span class="lineno">  758</span>&#160;    Finished();</div>
-<div class="line"><a name="l00759"></a><span class="lineno">  759</span>&#160;    <span class="keywordflow">return</span> minalign_;</div>
-<div class="line"><a name="l00760"></a><span class="lineno">  760</span>&#160;  }</div>
-<div class="line"><a name="l00761"></a><span class="lineno">  761</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00762"></a><span class="lineno">  762</span>&#160;<span class="comment">  /// @cond FLATBUFFERS_INTERNAL</span></div>
-<div class="line"><a name="l00763"></a><span class="lineno">  763</span>&#160;<span class="comment"></span>  <span class="keywordtype">void</span> Finished()<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00764"></a><span class="lineno">  764</span>&#160;    <span class="comment">// If you get this assert, you&#39;re attempting to get access a buffer</span></div>
-<div class="line"><a name="l00765"></a><span class="lineno">  765</span>&#160;    <span class="comment">// which hasn&#39;t been finished yet. Be sure to call</span></div>
-<div class="line"><a name="l00766"></a><span class="lineno">  766</span>&#160;    <span class="comment">// FlatBufferBuilder::Finish with your root table.</span></div>
-<div class="line"><a name="l00767"></a><span class="lineno">  767</span>&#160;    <span class="comment">// If you really need to access an unfinished buffer, call</span></div>
-<div class="line"><a name="l00768"></a><span class="lineno">  768</span>&#160;    <span class="comment">// GetCurrentBufferPointer instead.</span></div>
-<div class="line"><a name="l00769"></a><span class="lineno">  769</span>&#160;    assert(finished);</div>
-<div class="line"><a name="l00770"></a><span class="lineno">  770</span>&#160;  }<span class="comment"></span></div>
-<div class="line"><a name="l00771"></a><span class="lineno">  771</span>&#160;<span class="comment">  /// @endcond</span></div>
-<div class="line"><a name="l00772"></a><span class="lineno">  772</span>&#160;<span class="comment"></span><span class="comment"></span></div>
-<div class="line"><a name="l00773"></a><span class="lineno">  773</span>&#160;<span class="comment">  /// @brief In order to save space, fields that are set to their default value</span></div>
-<div class="line"><a name="l00774"></a><span class="lineno">  774</span>&#160;<span class="comment">  /// don&#39;t get serialized into the buffer.</span></div>
-<div class="line"><a name="l00775"></a><span class="lineno">  775</span>&#160;<span class="comment">  /// @param[in] bool fd When set to `true`, always serializes default values.</span></div>
-<div class="line"><a name="l00776"></a><span class="lineno"><a class="line" href="classflatbuffers_1_1_flat_buffer_builder.html#a16a8fd46b34ad7727406c37b65b6b27a">  776</a></span>&#160;<span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#a16a8fd46b34ad7727406c37b65b6b27a">ForceDefaults</a>(<span class="keywordtype">bool</span> fd) { force_defaults_ = fd; }</div>
-<div class="line"><a name="l00777"></a><span class="lineno">  777</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00778"></a><span class="lineno">  778</span>&#160;<span class="comment">  /// @brief By default vtables are deduped in order to save space.</span></div>
-<div class="line"><a name="l00779"></a><span class="lineno">  779</span>&#160;<span class="comment">  /// @param[in] bool dedup When set to `true`, dedup vtables.</span></div>
-<div class="line"><a name="l00780"></a><span class="lineno"><a class="line" href="classflatbuffers_1_1_flat_buffer_builder.html#aa905b29dce19a1795c7bce375cf29961">  780</a></span>&#160;<span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#aa905b29dce19a1795c7bce375cf29961">DedupVtables</a>(<span class="keywordtype">bool</span> dedup) { dedup_vtables_ = dedup; }</div>
-<div class="line"><a name="l00781"></a><span class="lineno">  781</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00782"></a><span class="lineno">  782</span>&#160;<span class="comment">  /// @cond FLATBUFFERS_INTERNAL</span></div>
-<div class="line"><a name="l00783"></a><span class="lineno">  783</span>&#160;<span class="comment"></span>  <span class="keywordtype">void</span> Pad(<span class="keywordtype">size_t</span> num_bytes) { buf_.fill(num_bytes); }</div>
-<div class="line"><a name="l00784"></a><span class="lineno">  784</span>&#160;</div>
-<div class="line"><a name="l00785"></a><span class="lineno">  785</span>&#160;  <span class="keywordtype">void</span> Align(<span class="keywordtype">size_t</span> elem_size) {</div>
-<div class="line"><a name="l00786"></a><span class="lineno">  786</span>&#160;    <span class="keywordflow">if</span> (elem_size &gt; minalign_) minalign_ = elem_size;</div>
-<div class="line"><a name="l00787"></a><span class="lineno">  787</span>&#160;    buf_.fill(PaddingBytes(buf_.size(), elem_size));</div>
-<div class="line"><a name="l00788"></a><span class="lineno">  788</span>&#160;  }</div>
-<div class="line"><a name="l00789"></a><span class="lineno">  789</span>&#160;</div>
-<div class="line"><a name="l00790"></a><span class="lineno">  790</span>&#160;  <span class="keywordtype">void</span> PushFlatBuffer(<span class="keyword">const</span> uint8_t *bytes, <span class="keywordtype">size_t</span> size) {</div>
-<div class="line"><a name="l00791"></a><span class="lineno">  791</span>&#160;    PushBytes(bytes, size);</div>
-<div class="line"><a name="l00792"></a><span class="lineno">  792</span>&#160;    finished = <span class="keyword">true</span>;</div>
-<div class="line"><a name="l00793"></a><span class="lineno">  793</span>&#160;  }</div>
-<div class="line"><a name="l00794"></a><span class="lineno">  794</span>&#160;</div>
-<div class="line"><a name="l00795"></a><span class="lineno">  795</span>&#160;  <span class="keywordtype">void</span> PushBytes(<span class="keyword">const</span> uint8_t *bytes, <span class="keywordtype">size_t</span> size) {</div>
-<div class="line"><a name="l00796"></a><span class="lineno">  796</span>&#160;    buf_.push(bytes, size);</div>
-<div class="line"><a name="l00797"></a><span class="lineno">  797</span>&#160;  }</div>
-<div class="line"><a name="l00798"></a><span class="lineno">  798</span>&#160;</div>
-<div class="line"><a name="l00799"></a><span class="lineno">  799</span>&#160;  <span class="keywordtype">void</span> PopBytes(<span class="keywordtype">size_t</span> amount) { buf_.pop(amount); }</div>
-<div class="line"><a name="l00800"></a><span class="lineno">  800</span>&#160;</div>
-<div class="line"><a name="l00801"></a><span class="lineno">  801</span>&#160;  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt; <span class="keywordtype">void</span> AssertScalarT() {</div>
-<div class="line"><a name="l00802"></a><span class="lineno">  802</span>&#160;    <span class="comment">// The code assumes power of 2 sizes and endian-swap-ability.</span></div>
-<div class="line"><a name="l00803"></a><span class="lineno">  803</span>&#160;    static_assert(flatbuffers::is_scalar&lt;T&gt;::value, <span class="stringliteral">&quot;T must be a scalar type&quot;</span>);</div>
-<div class="line"><a name="l00804"></a><span class="lineno">  804</span>&#160;  }</div>
-<div class="line"><a name="l00805"></a><span class="lineno">  805</span>&#160;</div>
-<div class="line"><a name="l00806"></a><span class="lineno">  806</span>&#160;  <span class="comment">// Write a single aligned scalar to the buffer</span></div>
-<div class="line"><a name="l00807"></a><span class="lineno">  807</span>&#160;  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt; uoffset_t PushElement(T element) {</div>
-<div class="line"><a name="l00808"></a><span class="lineno">  808</span>&#160;    AssertScalarT&lt;T&gt;();</div>
-<div class="line"><a name="l00809"></a><span class="lineno">  809</span>&#160;    T litle_endian_element = EndianScalar(element);</div>
-<div class="line"><a name="l00810"></a><span class="lineno">  810</span>&#160;    Align(<span class="keyword">sizeof</span>(T));</div>
-<div class="line"><a name="l00811"></a><span class="lineno">  811</span>&#160;    buf_.push_small(litle_endian_element);</div>
-<div class="line"><a name="l00812"></a><span class="lineno">  812</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#ac1bfd609f7f736e9a37cedae77448b63">GetSize</a>();</div>
-<div class="line"><a name="l00813"></a><span class="lineno">  813</span>&#160;  }</div>
-<div class="line"><a name="l00814"></a><span class="lineno">  814</span>&#160;</div>
-<div class="line"><a name="l00815"></a><span class="lineno">  815</span>&#160;  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt; uoffset_t PushElement(Offset&lt;T&gt; off) {</div>
-<div class="line"><a name="l00816"></a><span class="lineno">  816</span>&#160;    <span class="comment">// Special case for offsets: see ReferTo below.</span></div>
-<div class="line"><a name="l00817"></a><span class="lineno">  817</span>&#160;    <span class="keywordflow">return</span> PushElement(ReferTo(off.o));</div>
-<div class="line"><a name="l00818"></a><span class="lineno">  818</span>&#160;  }</div>
-<div class="line"><a name="l00819"></a><span class="lineno">  819</span>&#160;</div>
-<div class="line"><a name="l00820"></a><span class="lineno">  820</span>&#160;  <span class="comment">// When writing fields, we track where they are, so we can create correct</span></div>
-<div class="line"><a name="l00821"></a><span class="lineno">  821</span>&#160;  <span class="comment">// vtables later.</span></div>
-<div class="line"><a name="l00822"></a><span class="lineno">  822</span>&#160;  <span class="keywordtype">void</span> TrackField(voffset_t field, uoffset_t off) {</div>
-<div class="line"><a name="l00823"></a><span class="lineno">  823</span>&#160;    FieldLoc fl = { off, field };</div>
-<div class="line"><a name="l00824"></a><span class="lineno">  824</span>&#160;    offsetbuf_.push_back(fl);</div>
-<div class="line"><a name="l00825"></a><span class="lineno">  825</span>&#160;    max_voffset_ = (std::max)(max_voffset_, field);</div>
-<div class="line"><a name="l00826"></a><span class="lineno">  826</span>&#160;  }</div>
-<div class="line"><a name="l00827"></a><span class="lineno">  827</span>&#160;</div>
-<div class="line"><a name="l00828"></a><span class="lineno">  828</span>&#160;  <span class="comment">// Like PushElement, but additionally tracks the field this represents.</span></div>
-<div class="line"><a name="l00829"></a><span class="lineno">  829</span>&#160;  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt; <span class="keywordtype">void</span> AddElement(voffset_t field, T e, T def) {</div>
-<div class="line"><a name="l00830"></a><span class="lineno">  830</span>&#160;    <span class="comment">// We don&#39;t serialize values equal to the default.</span></div>
-<div class="line"><a name="l00831"></a><span class="lineno">  831</span>&#160;    <span class="keywordflow">if</span> (e == def &amp;&amp; !force_defaults_) <span class="keywordflow">return</span>;</div>
-<div class="line"><a name="l00832"></a><span class="lineno">  832</span>&#160;    <span class="keyword">auto</span> off = PushElement(e);</div>
-<div class="line"><a name="l00833"></a><span class="lineno">  833</span>&#160;    TrackField(field, off);</div>
-<div class="line"><a name="l00834"></a><span class="lineno">  834</span>&#160;  }</div>
-<div class="line"><a name="l00835"></a><span class="lineno">  835</span>&#160;</div>
-<div class="line"><a name="l00836"></a><span class="lineno">  836</span>&#160;  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt; <span class="keywordtype">void</span> AddOffset(voffset_t field, Offset&lt;T&gt; off) {</div>
-<div class="line"><a name="l00837"></a><span class="lineno">  837</span>&#160;    <span class="keywordflow">if</span> (off.IsNull()) <span class="keywordflow">return</span>;  <span class="comment">// Don&#39;t store.</span></div>
-<div class="line"><a name="l00838"></a><span class="lineno">  838</span>&#160;    AddElement(field, ReferTo(off.o), static_cast&lt;uoffset_t&gt;(0));</div>
-<div class="line"><a name="l00839"></a><span class="lineno">  839</span>&#160;  }</div>
-<div class="line"><a name="l00840"></a><span class="lineno">  840</span>&#160;</div>
-<div class="line"><a name="l00841"></a><span class="lineno">  841</span>&#160;  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt; <span class="keywordtype">void</span> AddStruct(voffset_t field, <span class="keyword">const</span> T *structptr) {</div>
-<div class="line"><a name="l00842"></a><span class="lineno">  842</span>&#160;    <span class="keywordflow">if</span> (!structptr) <span class="keywordflow">return</span>;  <span class="comment">// Default, don&#39;t store.</span></div>
-<div class="line"><a name="l00843"></a><span class="lineno">  843</span>&#160;    Align(AlignOf&lt;T&gt;());</div>
-<div class="line"><a name="l00844"></a><span class="lineno">  844</span>&#160;    buf_.push_small(*structptr);</div>
-<div class="line"><a name="l00845"></a><span class="lineno">  845</span>&#160;    TrackField(field, <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#ac1bfd609f7f736e9a37cedae77448b63">GetSize</a>());</div>
-<div class="line"><a name="l00846"></a><span class="lineno">  846</span>&#160;  }</div>
-<div class="line"><a name="l00847"></a><span class="lineno">  847</span>&#160;</div>
-<div class="line"><a name="l00848"></a><span class="lineno">  848</span>&#160;  <span class="keywordtype">void</span> AddStructOffset(voffset_t field, uoffset_t off) {</div>
-<div class="line"><a name="l00849"></a><span class="lineno">  849</span>&#160;    TrackField(field, off);</div>
-<div class="line"><a name="l00850"></a><span class="lineno">  850</span>&#160;  }</div>
-<div class="line"><a name="l00851"></a><span class="lineno">  851</span>&#160;</div>
-<div class="line"><a name="l00852"></a><span class="lineno">  852</span>&#160;  <span class="comment">// Offsets initially are relative to the end of the buffer (downwards).</span></div>
-<div class="line"><a name="l00853"></a><span class="lineno">  853</span>&#160;  <span class="comment">// This function converts them to be relative to the current location</span></div>
-<div class="line"><a name="l00854"></a><span class="lineno">  854</span>&#160;  <span class="comment">// in the buffer (when stored here), pointing upwards.</span></div>
-<div class="line"><a name="l00855"></a><span class="lineno">  855</span>&#160;  uoffset_t ReferTo(uoffset_t off) {</div>
-<div class="line"><a name="l00856"></a><span class="lineno">  856</span>&#160;    <span class="comment">// Align to ensure GetSize() below is correct.</span></div>
-<div class="line"><a name="l00857"></a><span class="lineno">  857</span>&#160;    Align(<span class="keyword">sizeof</span>(uoffset_t));</div>
-<div class="line"><a name="l00858"></a><span class="lineno">  858</span>&#160;    <span class="comment">// Offset must refer to something already in buffer.</span></div>
-<div class="line"><a name="l00859"></a><span class="lineno">  859</span>&#160;    assert(off &amp;&amp; off &lt;= <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#ac1bfd609f7f736e9a37cedae77448b63">GetSize</a>());</div>
-<div class="line"><a name="l00860"></a><span class="lineno">  860</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#ac1bfd609f7f736e9a37cedae77448b63">GetSize</a>() - off + <span class="keyword">static_cast&lt;</span>uoffset_t<span class="keyword">&gt;</span>(<span class="keyword">sizeof</span>(uoffset_t));</div>
-<div class="line"><a name="l00861"></a><span class="lineno">  861</span>&#160;  }</div>
-<div class="line"><a name="l00862"></a><span class="lineno">  862</span>&#160;</div>
-<div class="line"><a name="l00863"></a><span class="lineno">  863</span>&#160;  <span class="keywordtype">void</span> NotNested() {</div>
-<div class="line"><a name="l00864"></a><span class="lineno">  864</span>&#160;    <span class="comment">// If you hit this, you&#39;re trying to construct a Table/Vector/String</span></div>
-<div class="line"><a name="l00865"></a><span class="lineno">  865</span>&#160;    <span class="comment">// during the construction of its parent table (between the MyTableBuilder</span></div>
-<div class="line"><a name="l00866"></a><span class="lineno">  866</span>&#160;    <span class="comment">// and table.Finish().</span></div>
-<div class="line"><a name="l00867"></a><span class="lineno">  867</span>&#160;    <span class="comment">// Move the creation of these sub-objects to above the MyTableBuilder to</span></div>
-<div class="line"><a name="l00868"></a><span class="lineno">  868</span>&#160;    <span class="comment">// not get this assert.</span></div>
-<div class="line"><a name="l00869"></a><span class="lineno">  869</span>&#160;    <span class="comment">// Ignoring this assert may appear to work in simple cases, but the reason</span></div>
-<div class="line"><a name="l00870"></a><span class="lineno">  870</span>&#160;    <span class="comment">// it is here is that storing objects in-line may cause vtable offsets</span></div>
-<div class="line"><a name="l00871"></a><span class="lineno">  871</span>&#160;    <span class="comment">// to not fit anymore. It also leads to vtable duplication.</span></div>
-<div class="line"><a name="l00872"></a><span class="lineno">  872</span>&#160;    assert(!nested);</div>
-<div class="line"><a name="l00873"></a><span class="lineno">  873</span>&#160;  }</div>
-<div class="line"><a name="l00874"></a><span class="lineno">  874</span>&#160;</div>
-<div class="line"><a name="l00875"></a><span class="lineno">  875</span>&#160;  <span class="comment">// From generated code (or from the parser), we call StartTable/EndTable</span></div>
-<div class="line"><a name="l00876"></a><span class="lineno">  876</span>&#160;  <span class="comment">// with a sequence of AddElement calls in between.</span></div>
-<div class="line"><a name="l00877"></a><span class="lineno">  877</span>&#160;  uoffset_t StartTable() {</div>
-<div class="line"><a name="l00878"></a><span class="lineno">  878</span>&#160;    NotNested();</div>
-<div class="line"><a name="l00879"></a><span class="lineno">  879</span>&#160;    nested = <span class="keyword">true</span>;</div>
-<div class="line"><a name="l00880"></a><span class="lineno">  880</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#ac1bfd609f7f736e9a37cedae77448b63">GetSize</a>();</div>
-<div class="line"><a name="l00881"></a><span class="lineno">  881</span>&#160;  }</div>
-<div class="line"><a name="l00882"></a><span class="lineno">  882</span>&#160;</div>
-<div class="line"><a name="l00883"></a><span class="lineno">  883</span>&#160;  <span class="comment">// This finishes one serialized object by generating the vtable if it&#39;s a</span></div>
-<div class="line"><a name="l00884"></a><span class="lineno">  884</span>&#160;  <span class="comment">// table, comparing it against existing vtables, and writing the</span></div>
-<div class="line"><a name="l00885"></a><span class="lineno">  885</span>&#160;  <span class="comment">// resulting vtable offset.</span></div>
-<div class="line"><a name="l00886"></a><span class="lineno">  886</span>&#160;  uoffset_t EndTable(uoffset_t start) {</div>
-<div class="line"><a name="l00887"></a><span class="lineno">  887</span>&#160;    <span class="comment">// If you get this assert, a corresponding StartTable wasn&#39;t called.</span></div>
-<div class="line"><a name="l00888"></a><span class="lineno">  888</span>&#160;    assert(nested);</div>
-<div class="line"><a name="l00889"></a><span class="lineno">  889</span>&#160;    <span class="comment">// Write the vtable offset, which is the start of any Table.</span></div>
-<div class="line"><a name="l00890"></a><span class="lineno">  890</span>&#160;    <span class="comment">// We fill it&#39;s value later.</span></div>
-<div class="line"><a name="l00891"></a><span class="lineno">  891</span>&#160;    <span class="keyword">auto</span> vtableoffsetloc = PushElement&lt;soffset_t&gt;(0);</div>
-<div class="line"><a name="l00892"></a><span class="lineno">  892</span>&#160;    <span class="comment">// Write a vtable, which consists entirely of voffset_t elements.</span></div>
-<div class="line"><a name="l00893"></a><span class="lineno">  893</span>&#160;    <span class="comment">// It starts with the number of offsets, followed by a type id, followed</span></div>
-<div class="line"><a name="l00894"></a><span class="lineno">  894</span>&#160;    <span class="comment">// by the offsets themselves. In reverse:</span></div>
-<div class="line"><a name="l00895"></a><span class="lineno">  895</span>&#160;    <span class="comment">// Include space for the last offset and ensure empty tables have a</span></div>
-<div class="line"><a name="l00896"></a><span class="lineno">  896</span>&#160;    <span class="comment">// minimum size.</span></div>
-<div class="line"><a name="l00897"></a><span class="lineno">  897</span>&#160;    max_voffset_ = (std::max)(static_cast&lt;voffset_t&gt;(max_voffset_ +</div>
-<div class="line"><a name="l00898"></a><span class="lineno">  898</span>&#160;                                                     <span class="keyword">sizeof</span>(voffset_t)),</div>
-<div class="line"><a name="l00899"></a><span class="lineno">  899</span>&#160;                              FieldIndexToOffset(0));</div>
-<div class="line"><a name="l00900"></a><span class="lineno">  900</span>&#160;    buf_.fill_big(max_voffset_);</div>
-<div class="line"><a name="l00901"></a><span class="lineno">  901</span>&#160;    <span class="keyword">auto</span> table_object_size = vtableoffsetloc - start;</div>
-<div class="line"><a name="l00902"></a><span class="lineno">  902</span>&#160;    assert(table_object_size &lt; 0x10000);  <span class="comment">// Vtable use 16bit offsets.</span></div>
-<div class="line"><a name="l00903"></a><span class="lineno">  903</span>&#160;    WriteScalar&lt;voffset_t&gt;(buf_.data() + <span class="keyword">sizeof</span>(voffset_t),</div>
-<div class="line"><a name="l00904"></a><span class="lineno">  904</span>&#160;                           static_cast&lt;voffset_t&gt;(table_object_size));</div>
-<div class="line"><a name="l00905"></a><span class="lineno">  905</span>&#160;    WriteScalar&lt;voffset_t&gt;(buf_.data(), max_voffset_);</div>
-<div class="line"><a name="l00906"></a><span class="lineno">  906</span>&#160;    <span class="comment">// Write the offsets into the table</span></div>
-<div class="line"><a name="l00907"></a><span class="lineno">  907</span>&#160;    <span class="keywordflow">for</span> (<span class="keyword">auto</span> field_location = offsetbuf_.begin();</div>
-<div class="line"><a name="l00908"></a><span class="lineno">  908</span>&#160;              field_location != offsetbuf_.end();</div>
-<div class="line"><a name="l00909"></a><span class="lineno">  909</span>&#160;            ++field_location) {</div>
-<div class="line"><a name="l00910"></a><span class="lineno">  910</span>&#160;      <span class="keyword">auto</span> pos = <span class="keyword">static_cast&lt;</span>voffset_t<span class="keyword">&gt;</span>(vtableoffsetloc - field_location-&gt;off);</div>
-<div class="line"><a name="l00911"></a><span class="lineno">  911</span>&#160;      <span class="comment">// If this asserts, it means you&#39;ve set a field twice.</span></div>
-<div class="line"><a name="l00912"></a><span class="lineno">  912</span>&#160;      assert(!ReadScalar&lt;voffset_t&gt;(buf_.data() + field_location-&gt;id));</div>
-<div class="line"><a name="l00913"></a><span class="lineno">  913</span>&#160;      WriteScalar&lt;voffset_t&gt;(buf_.data() + field_location-&gt;id, pos);</div>
-<div class="line"><a name="l00914"></a><span class="lineno">  914</span>&#160;    }</div>
-<div class="line"><a name="l00915"></a><span class="lineno">  915</span>&#160;    ClearOffsets();</div>
-<div class="line"><a name="l00916"></a><span class="lineno">  916</span>&#160;    <span class="keyword">auto</span> vt1 = <span class="keyword">reinterpret_cast&lt;</span>voffset_t *<span class="keyword">&gt;</span>(buf_.data());</div>
-<div class="line"><a name="l00917"></a><span class="lineno">  917</span>&#160;    <span class="keyword">auto</span> vt1_size = ReadScalar&lt;voffset_t&gt;(vt1);</div>
-<div class="line"><a name="l00918"></a><span class="lineno">  918</span>&#160;    <span class="keyword">auto</span> vt_use = <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#ac1bfd609f7f736e9a37cedae77448b63">GetSize</a>();</div>
-<div class="line"><a name="l00919"></a><span class="lineno">  919</span>&#160;    <span class="comment">// See if we already have generated a vtable with this exact same</span></div>
-<div class="line"><a name="l00920"></a><span class="lineno">  920</span>&#160;    <span class="comment">// layout before. If so, make it point to the old one, remove this one.</span></div>
-<div class="line"><a name="l00921"></a><span class="lineno">  921</span>&#160;    <span class="keywordflow">if</span> (dedup_vtables_) {</div>
-<div class="line"><a name="l00922"></a><span class="lineno">  922</span>&#160;      <span class="keywordflow">for</span> (<span class="keyword">auto</span> it = vtables_.begin(); it != vtables_.end(); ++it) {</div>
-<div class="line"><a name="l00923"></a><span class="lineno">  923</span>&#160;        <span class="keyword">auto</span> vt2 = <span class="keyword">reinterpret_cast&lt;</span>voffset_t *<span class="keyword">&gt;</span>(buf_.data_at(*it));</div>
-<div class="line"><a name="l00924"></a><span class="lineno">  924</span>&#160;        <span class="keyword">auto</span> vt2_size = *vt2;</div>
-<div class="line"><a name="l00925"></a><span class="lineno">  925</span>&#160;        <span class="keywordflow">if</span> (vt1_size != vt2_size || memcmp(vt2, vt1, vt1_size)) <span class="keywordflow">continue</span>;</div>
-<div class="line"><a name="l00926"></a><span class="lineno">  926</span>&#160;        vt_use = *it;</div>
-<div class="line"><a name="l00927"></a><span class="lineno">  927</span>&#160;        buf_.pop(<a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#ac1bfd609f7f736e9a37cedae77448b63">GetSize</a>() - vtableoffsetloc);</div>
-<div class="line"><a name="l00928"></a><span class="lineno">  928</span>&#160;        <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l00929"></a><span class="lineno">  929</span>&#160;      }</div>
-<div class="line"><a name="l00930"></a><span class="lineno">  930</span>&#160;    }</div>
-<div class="line"><a name="l00931"></a><span class="lineno">  931</span>&#160;    <span class="comment">// If this is a new vtable, remember it.</span></div>
-<div class="line"><a name="l00932"></a><span class="lineno">  932</span>&#160;    <span class="keywordflow">if</span> (vt_use == <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#ac1bfd609f7f736e9a37cedae77448b63">GetSize</a>()) {</div>
-<div class="line"><a name="l00933"></a><span class="lineno">  933</span>&#160;      vtables_.push_back(vt_use);</div>
-<div class="line"><a name="l00934"></a><span class="lineno">  934</span>&#160;    }</div>
-<div class="line"><a name="l00935"></a><span class="lineno">  935</span>&#160;    <span class="comment">// Fill the vtable offset we created above.</span></div>
-<div class="line"><a name="l00936"></a><span class="lineno">  936</span>&#160;    <span class="comment">// The offset points from the beginning of the object to where the</span></div>
-<div class="line"><a name="l00937"></a><span class="lineno">  937</span>&#160;    <span class="comment">// vtable is stored.</span></div>
-<div class="line"><a name="l00938"></a><span class="lineno">  938</span>&#160;    <span class="comment">// Offsets default direction is downward in memory for future format</span></div>
-<div class="line"><a name="l00939"></a><span class="lineno">  939</span>&#160;    <span class="comment">// flexibility (storing all vtables at the start of the file).</span></div>
-<div class="line"><a name="l00940"></a><span class="lineno">  940</span>&#160;    WriteScalar(buf_.data_at(vtableoffsetloc),</div>
-<div class="line"><a name="l00941"></a><span class="lineno">  941</span>&#160;                <span class="keyword">static_cast&lt;</span>soffset_t<span class="keyword">&gt;</span>(vt_use) -</div>
-<div class="line"><a name="l00942"></a><span class="lineno">  942</span>&#160;                  static_cast&lt;soffset_t&gt;(vtableoffsetloc));</div>
-<div class="line"><a name="l00943"></a><span class="lineno">  943</span>&#160;</div>
-<div class="line"><a name="l00944"></a><span class="lineno">  944</span>&#160;    nested = <span class="keyword">false</span>;</div>
-<div class="line"><a name="l00945"></a><span class="lineno">  945</span>&#160;    <span class="keywordflow">return</span> vtableoffsetloc;</div>
-<div class="line"><a name="l00946"></a><span class="lineno">  946</span>&#160;  }</div>
-<div class="line"><a name="l00947"></a><span class="lineno">  947</span>&#160;</div>
-<div class="line"><a name="l00948"></a><span class="lineno">  948</span>&#160;  <span class="comment">// DEPRECATED: call the version above instead.</span></div>
-<div class="line"><a name="l00949"></a><span class="lineno">  949</span>&#160;  uoffset_t EndTable(uoffset_t start, voffset_t <span class="comment">/*numfields*/</span>) {</div>
-<div class="line"><a name="l00950"></a><span class="lineno">  950</span>&#160;    <span class="keywordflow">return</span> EndTable(start);</div>
-<div class="line"><a name="l00951"></a><span class="lineno">  951</span>&#160;  }</div>
-<div class="line"><a name="l00952"></a><span class="lineno">  952</span>&#160;</div>
-<div class="line"><a name="l00953"></a><span class="lineno">  953</span>&#160;  <span class="comment">// This checks a required field has been set in a given table that has</span></div>
-<div class="line"><a name="l00954"></a><span class="lineno">  954</span>&#160;  <span class="comment">// just been constructed.</span></div>
-<div class="line"><a name="l00955"></a><span class="lineno">  955</span>&#160;  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt; <span class="keywordtype">void</span> Required(Offset&lt;T&gt; table, voffset_t field) {</div>
-<div class="line"><a name="l00956"></a><span class="lineno">  956</span>&#160;    <span class="keyword">auto</span> table_ptr = buf_.data_at(table.o);</div>
-<div class="line"><a name="l00957"></a><span class="lineno">  957</span>&#160;    <span class="keyword">auto</span> vtable_ptr = table_ptr - ReadScalar&lt;soffset_t&gt;(table_ptr);</div>
-<div class="line"><a name="l00958"></a><span class="lineno">  958</span>&#160;    <span class="keywordtype">bool</span> ok = ReadScalar&lt;voffset_t&gt;(vtable_ptr + field) != 0;</div>
-<div class="line"><a name="l00959"></a><span class="lineno">  959</span>&#160;    <span class="comment">// If this fails, the caller will show what field needs to be set.</span></div>
-<div class="line"><a name="l00960"></a><span class="lineno">  960</span>&#160;    assert(ok);</div>
-<div class="line"><a name="l00961"></a><span class="lineno">  961</span>&#160;    (void)ok;</div>
-<div class="line"><a name="l00962"></a><span class="lineno">  962</span>&#160;  }</div>
-<div class="line"><a name="l00963"></a><span class="lineno">  963</span>&#160;</div>
-<div class="line"><a name="l00964"></a><span class="lineno">  964</span>&#160;  uoffset_t StartStruct(<span class="keywordtype">size_t</span> alignment) {</div>
-<div class="line"><a name="l00965"></a><span class="lineno">  965</span>&#160;    Align(alignment);</div>
-<div class="line"><a name="l00966"></a><span class="lineno">  966</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#ac1bfd609f7f736e9a37cedae77448b63">GetSize</a>();</div>
-<div class="line"><a name="l00967"></a><span class="lineno">  967</span>&#160;  }</div>
-<div class="line"><a name="l00968"></a><span class="lineno">  968</span>&#160;</div>
-<div class="line"><a name="l00969"></a><span class="lineno">  969</span>&#160;  uoffset_t EndStruct() { <span class="keywordflow">return</span> <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#ac1bfd609f7f736e9a37cedae77448b63">GetSize</a>(); }</div>
-<div class="line"><a name="l00970"></a><span class="lineno">  970</span>&#160;</div>
-<div class="line"><a name="l00971"></a><span class="lineno">  971</span>&#160;  <span class="keywordtype">void</span> ClearOffsets() {</div>
-<div class="line"><a name="l00972"></a><span class="lineno">  972</span>&#160;    offsetbuf_.clear();</div>
-<div class="line"><a name="l00973"></a><span class="lineno">  973</span>&#160;    max_voffset_ = 0;</div>
-<div class="line"><a name="l00974"></a><span class="lineno">  974</span>&#160;  }</div>
-<div class="line"><a name="l00975"></a><span class="lineno">  975</span>&#160;</div>
-<div class="line"><a name="l00976"></a><span class="lineno">  976</span>&#160;  <span class="comment">// Aligns such that when &quot;len&quot; bytes are written, an object can be written</span></div>
-<div class="line"><a name="l00977"></a><span class="lineno">  977</span>&#160;  <span class="comment">// after it with &quot;alignment&quot; without padding.</span></div>
-<div class="line"><a name="l00978"></a><span class="lineno">  978</span>&#160;  <span class="keywordtype">void</span> PreAlign(<span class="keywordtype">size_t</span> len, <span class="keywordtype">size_t</span> alignment) {</div>
-<div class="line"><a name="l00979"></a><span class="lineno">  979</span>&#160;    buf_.fill(PaddingBytes(<a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#ac1bfd609f7f736e9a37cedae77448b63">GetSize</a>() + len, alignment));</div>
-<div class="line"><a name="l00980"></a><span class="lineno">  980</span>&#160;  }</div>
-<div class="line"><a name="l00981"></a><span class="lineno">  981</span>&#160;  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt; <span class="keywordtype">void</span> PreAlign(<span class="keywordtype">size_t</span> len) {</div>
-<div class="line"><a name="l00982"></a><span class="lineno">  982</span>&#160;    AssertScalarT&lt;T&gt;();</div>
-<div class="line"><a name="l00983"></a><span class="lineno">  983</span>&#160;    PreAlign(len, <span class="keyword">sizeof</span>(T));</div>
-<div class="line"><a name="l00984"></a><span class="lineno">  984</span>&#160;  }<span class="comment"></span></div>
-<div class="line"><a name="l00985"></a><span class="lineno">  985</span>&#160;<span class="comment">  /// @endcond</span></div>
-<div class="line"><a name="l00986"></a><span class="lineno">  986</span>&#160;<span class="comment"></span><span class="comment"></span></div>
-<div class="line"><a name="l00987"></a><span class="lineno">  987</span>&#160;<span class="comment">  /// @brief Store a string in the buffer, which can contain any binary data.</span></div>
-<div class="line"><a name="l00988"></a><span class="lineno">  988</span>&#160;<span class="comment">  /// @param[in] str A const char pointer to the data to be stored as a string.</span></div>
-<div class="line"><a name="l00989"></a><span class="lineno">  989</span>&#160;<span class="comment">  /// @param[in] len The number of bytes that should be stored from `str`.</span></div>
-<div class="line"><a name="l00990"></a><span class="lineno">  990</span>&#160;<span class="comment">  /// @return Returns the offset in the buffer where the string starts.</span></div>
-<div class="line"><a name="l00991"></a><span class="lineno"><a class="line" href="classflatbuffers_1_1_flat_buffer_builder.html#aec6f9df2a0366b540b24822414d92cbe">  991</a></span>&#160;<span class="comment"></span>  <a class="code" href="structflatbuffers_1_1_offset.html">Offset&lt;String&gt;</a> <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#aec6f9df2a0366b540b24822414d92cbe">CreateString</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *str, <span class="keywordtype">size_t</span> len) {</div>
-<div class="line"><a name="l00992"></a><span class="lineno">  992</span>&#160;    NotNested();</div>
-<div class="line"><a name="l00993"></a><span class="lineno">  993</span>&#160;    PreAlign&lt;uoffset_t&gt;(len + 1);  <span class="comment">// Always 0-terminated.</span></div>
-<div class="line"><a name="l00994"></a><span class="lineno">  994</span>&#160;    buf_.fill(1);</div>
-<div class="line"><a name="l00995"></a><span class="lineno">  995</span>&#160;    PushBytes(reinterpret_cast&lt;const uint8_t *&gt;(str), len);</div>
-<div class="line"><a name="l00996"></a><span class="lineno">  996</span>&#160;    PushElement(static_cast&lt;uoffset_t&gt;(len));</div>
-<div class="line"><a name="l00997"></a><span class="lineno">  997</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="structflatbuffers_1_1_offset.html">Offset&lt;String&gt;</a>(<a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#ac1bfd609f7f736e9a37cedae77448b63">GetSize</a>());</div>
-<div class="line"><a name="l00998"></a><span class="lineno">  998</span>&#160;  }</div>
-<div class="line"><a name="l00999"></a><span class="lineno">  999</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>&#160;<span class="comment">  /// @brief Store a string in the buffer, which is null-terminated.</span></div>
-<div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>&#160;<span class="comment">  /// @param[in] str A const char pointer to a C-string to add to the buffer.</span></div>
-<div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>&#160;<span class="comment">  /// @return Returns the offset in the buffer where the string starts.</span></div>
-<div class="line"><a name="l01003"></a><span class="lineno"><a class="line" href="classflatbuffers_1_1_flat_buffer_builder.html#aad93d113ac24e86ed04b5236b3f4c0c5"> 1003</a></span>&#160;<span class="comment"></span>  <a class="code" href="structflatbuffers_1_1_offset.html">Offset&lt;String&gt;</a> <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#aad93d113ac24e86ed04b5236b3f4c0c5">CreateString</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *str) {</div>
-<div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#aec6f9df2a0366b540b24822414d92cbe">CreateString</a>(str, strlen(str));</div>
-<div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>&#160;  }</div>
-<div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>&#160;<span class="comment">  /// @brief Store a string in the buffer, which can contain any binary data.</span></div>
-<div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>&#160;<span class="comment">  /// @param[in] str A const reference to a std::string to store in the buffer.</span></div>
-<div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>&#160;<span class="comment">  /// @return Returns the offset in the buffer where the string starts.</span></div>
-<div class="line"><a name="l01010"></a><span class="lineno"><a class="line" href="classflatbuffers_1_1_flat_buffer_builder.html#a8c3af55e64f5cda9aefa38ac5287ef9f"> 1010</a></span>&#160;<span class="comment"></span>  <a class="code" href="structflatbuffers_1_1_offset.html">Offset&lt;String&gt;</a> <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#a8c3af55e64f5cda9aefa38ac5287ef9f">CreateString</a>(<span class="keyword">const</span> std::string &amp;str) {</div>
-<div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#aec6f9df2a0366b540b24822414d92cbe">CreateString</a>(str.c_str(), str.length());</div>
-<div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>&#160;  }</div>
-<div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>&#160;<span class="comment">  /// @brief Store a string in the buffer, which can contain any binary data.</span></div>
-<div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>&#160;<span class="comment">  /// @param[in] str A const pointer to a `String` struct to add to the buffer.</span></div>
-<div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>&#160;<span class="comment">  /// @return Returns the offset in the buffer where the string starts</span></div>
-<div class="line"><a name="l01017"></a><span class="lineno"><a class="line" href="classflatbuffers_1_1_flat_buffer_builder.html#ac0b6a1c5d949f20ad84367fc0f9e1506"> 1017</a></span>&#160;<span class="comment"></span>  <a class="code" href="structflatbuffers_1_1_offset.html">Offset&lt;String&gt;</a> <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#ac0b6a1c5d949f20ad84367fc0f9e1506">CreateString</a>(<span class="keyword">const</span> <a class="code" href="structflatbuffers_1_1_string.html">String</a> *str) {</div>
-<div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>&#160;    <span class="keywordflow">return</span> str ? <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#aec6f9df2a0366b540b24822414d92cbe">CreateString</a>(str-&gt;c_str(), str-&gt;Length()) : 0;</div>
-<div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>&#160;  }</div>
-<div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>&#160;<span class="comment">  /// @brief Store a string in the buffer, which can contain any binary data.</span></div>
-<div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>&#160;<span class="comment">  /// @param[in] str A const reference to a std::string like type with support</span></div>
-<div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>&#160;<span class="comment">  /// of T::c_str() and T::length() to store in the buffer.</span></div>
-<div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>&#160;<span class="comment">  /// @return Returns the offset in the buffer where the string starts.</span></div>
-<div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>&#160;<span class="comment"></span>  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l01026"></a><span class="lineno"><a class="line" href="classflatbuffers_1_1_flat_buffer_builder.html#ab77d800e77fa76bc758a6c399fd37685"> 1026</a></span>&#160;    <a class="code" href="structflatbuffers_1_1_offset.html">Offset&lt;String&gt;</a> <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#ab77d800e77fa76bc758a6c399fd37685">CreateString</a>(<span class="keyword">const</span> T &amp;str) {</div>
-<div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#aec6f9df2a0366b540b24822414d92cbe">CreateString</a>(str.c_str(), str.length());</div>
-<div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>&#160;  }</div>
-<div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>&#160;<span class="comment">  /// @brief Store a string in the buffer, which can contain any binary data.</span></div>
-<div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>&#160;<span class="comment">  /// If a string with this exact contents has already been serialized before,</span></div>
-<div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>&#160;<span class="comment">  /// instead simply returns the offset of the existing string.</span></div>
-<div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>&#160;<span class="comment">  /// @param[in] str A const char pointer to the data to be stored as a string.</span></div>
-<div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>&#160;<span class="comment">  /// @param[in] len The number of bytes that should be stored from `str`.</span></div>
-<div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>&#160;<span class="comment">  /// @return Returns the offset in the buffer where the string starts.</span></div>
-<div class="line"><a name="l01036"></a><span class="lineno"><a class="line" href="classflatbuffers_1_1_flat_buffer_builder.html#ab478a645216d2d613fc7b7c29b0ff9d1"> 1036</a></span>&#160;<span class="comment"></span>  <a class="code" href="structflatbuffers_1_1_offset.html">Offset&lt;String&gt;</a> <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#ab478a645216d2d613fc7b7c29b0ff9d1">CreateSharedString</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *str, <span class="keywordtype">size_t</span> len) {</div>
-<div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>&#160;    <span class="keywordflow">if</span> (!string_pool)</div>
-<div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>&#160;      string_pool = <span class="keyword">new</span> StringOffsetMap(<a class="code" href="structflatbuffers_1_1_flat_buffer_builder_1_1_string_offset_compare.html">StringOffsetCompare</a>(buf_));</div>
-<div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>&#160;    <span class="keyword">auto</span> size_before_string = buf_.size();</div>
-<div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>&#160;    <span class="comment">// Must first serialize the string, since the set is all offsets into</span></div>
-<div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>&#160;    <span class="comment">// buffer.</span></div>
-<div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>&#160;    <span class="keyword">auto</span> off = <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#aec6f9df2a0366b540b24822414d92cbe">CreateString</a>(str, len);</div>
-<div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>&#160;    <span class="keyword">auto</span> it = string_pool-&gt;find(off);</div>
-<div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>&#160;    <span class="comment">// If it exists we reuse existing serialized data!</span></div>
-<div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>&#160;    <span class="keywordflow">if</span> (it != string_pool-&gt;end()) {</div>
-<div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>&#160;      <span class="comment">// We can remove the string we serialized.</span></div>
-<div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>&#160;      buf_.pop(buf_.size() - size_before_string);</div>
-<div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>&#160;      <span class="keywordflow">return</span> *it;</div>
-<div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>&#160;    }</div>
-<div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>&#160;    <span class="comment">// Record this string for future use.</span></div>
-<div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>&#160;    string_pool-&gt;insert(off);</div>
-<div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>&#160;    <span class="keywordflow">return</span> off;</div>
-<div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>&#160;  }</div>
-<div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>&#160;<span class="comment">  /// @brief Store a string in the buffer, which null-terminated.</span></div>
-<div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>&#160;<span class="comment">  /// If a string with this exact contents has already been serialized before,</span></div>
-<div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>&#160;<span class="comment">  /// instead simply returns the offset of the existing string.</span></div>
-<div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>&#160;<span class="comment">  /// @param[in] str A const char pointer to a C-string to add to the buffer.</span></div>
-<div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>&#160;<span class="comment">  /// @return Returns the offset in the buffer where the string starts.</span></div>
-<div class="line"><a name="l01060"></a><span class="lineno"><a class="line" href="classflatbuffers_1_1_flat_buffer_builder.html#a3eb68613e5883dc4b8fff6cf7d1223d7"> 1060</a></span>&#160;<span class="comment"></span>  <a class="code" href="structflatbuffers_1_1_offset.html">Offset&lt;String&gt;</a> <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#a3eb68613e5883dc4b8fff6cf7d1223d7">CreateSharedString</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *str) {</div>
-<div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#ab478a645216d2d613fc7b7c29b0ff9d1">CreateSharedString</a>(str, strlen(str));</div>
-<div class="line"><a name="l01062"></a><span class="lineno"> 1062</span>&#160;  }</div>
-<div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>&#160;<span class="comment">  /// @brief Store a string in the buffer, which can contain any binary data.</span></div>
-<div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>&#160;<span class="comment">  /// If a string with this exact contents has already been serialized before,</span></div>
-<div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>&#160;<span class="comment">  /// instead simply returns the offset of the existing string.</span></div>
-<div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>&#160;<span class="comment">  /// @param[in] str A const reference to a std::string to store in the buffer.</span></div>
-<div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>&#160;<span class="comment">  /// @return Returns the offset in the buffer where the string starts.</span></div>
-<div class="line"><a name="l01069"></a><span class="lineno"><a class="line" href="classflatbuffers_1_1_flat_buffer_builder.html#a10e8ec7d1c8fbdc21b1c7047bbbe38d9"> 1069</a></span>&#160;<span class="comment"></span>  <a class="code" href="structflatbuffers_1_1_offset.html">Offset&lt;String&gt;</a> <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#a10e8ec7d1c8fbdc21b1c7047bbbe38d9">CreateSharedString</a>(<span class="keyword">const</span> std::string &amp;str) {</div>
-<div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#ab478a645216d2d613fc7b7c29b0ff9d1">CreateSharedString</a>(str.c_str(), str.length());</div>
-<div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>&#160;  }</div>
-<div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01073"></a><span class="lineno"> 1073</span>&#160;<span class="comment">  /// @brief Store a string in the buffer, which can contain any binary data.</span></div>
-<div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>&#160;<span class="comment">  /// If a string with this exact contents has already been serialized before,</span></div>
-<div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>&#160;<span class="comment">  /// instead simply returns the offset of the existing string.</span></div>
-<div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>&#160;<span class="comment">  /// @param[in] str A const pointer to a `String` struct to add to the buffer.</span></div>
-<div class="line"><a name="l01077"></a><span class="lineno"> 1077</span>&#160;<span class="comment">  /// @return Returns the offset in the buffer where the string starts</span></div>
-<div class="line"><a name="l01078"></a><span class="lineno"><a class="line" href="classflatbuffers_1_1_flat_buffer_builder.html#a840b769fbb4148f97d3eed266e4690c3"> 1078</a></span>&#160;<span class="comment"></span>  <a class="code" href="structflatbuffers_1_1_offset.html">Offset&lt;String&gt;</a> <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#a840b769fbb4148f97d3eed266e4690c3">CreateSharedString</a>(<span class="keyword">const</span> <a class="code" href="structflatbuffers_1_1_string.html">String</a> *str) {</div>
-<div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#ab478a645216d2d613fc7b7c29b0ff9d1">CreateSharedString</a>(str-&gt;c_str(), str-&gt;Length());</div>
-<div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>&#160;  }</div>
-<div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>&#160;<span class="comment">  /// @cond FLATBUFFERS_INTERNAL</span></div>
-<div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>&#160;<span class="comment"></span>  uoffset_t EndVector(<span class="keywordtype">size_t</span> len) {</div>
-<div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>&#160;    assert(nested);  <span class="comment">// Hit if no corresponding StartVector.</span></div>
-<div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>&#160;    nested = <span class="keyword">false</span>;</div>
-<div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>&#160;    <span class="keywordflow">return</span> PushElement(static_cast&lt;uoffset_t&gt;(len));</div>
-<div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>&#160;  }</div>
-<div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>&#160;</div>
-<div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>&#160;  <span class="keywordtype">void</span> StartVector(<span class="keywordtype">size_t</span> len, <span class="keywordtype">size_t</span> elemsize) {</div>
-<div class="line"><a name="l01090"></a><span class="lineno"> 1090</span>&#160;    NotNested();</div>
-<div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>&#160;    nested = <span class="keyword">true</span>;</div>
-<div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>&#160;    PreAlign&lt;uoffset_t&gt;(len * elemsize);</div>
-<div class="line"><a name="l01093"></a><span class="lineno"> 1093</span>&#160;    PreAlign(len * elemsize, elemsize);  <span class="comment">// Just in case elemsize &gt; uoffset_t.</span></div>
-<div class="line"><a name="l01094"></a><span class="lineno"> 1094</span>&#160;  }</div>
-<div class="line"><a name="l01095"></a><span class="lineno"> 1095</span>&#160;</div>
-<div class="line"><a name="l01096"></a><span class="lineno"> 1096</span>&#160;  <span class="comment">// Call this right before StartVector/CreateVector if you want to force the</span></div>
-<div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>&#160;  <span class="comment">// alignment to be something different than what the element size would</span></div>
-<div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>&#160;  <span class="comment">// normally dictate.</span></div>
-<div class="line"><a name="l01099"></a><span class="lineno"> 1099</span>&#160;  <span class="comment">// This is useful when storing a nested_flatbuffer in a vector of bytes,</span></div>
-<div class="line"><a name="l01100"></a><span class="lineno"> 1100</span>&#160;  <span class="comment">// or when storing SIMD floats, etc.</span></div>
-<div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>&#160;  <span class="keywordtype">void</span> ForceVectorAlignment(<span class="keywordtype">size_t</span> len, <span class="keywordtype">size_t</span> elemsize, <span class="keywordtype">size_t</span> alignment) {</div>
-<div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>&#160;    PreAlign(len * elemsize, alignment);</div>
-<div class="line"><a name="l01103"></a><span class="lineno"> 1103</span>&#160;  }</div>
-<div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>&#160;</div>
-<div class="line"><a name="l01105"></a><span class="lineno"> 1105</span>&#160;  uint8_t *ReserveElements(<span class="keywordtype">size_t</span> len, <span class="keywordtype">size_t</span> elemsize) {</div>
-<div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>&#160;    <span class="keywordflow">return</span> buf_.make_space(len * elemsize);</div>
-<div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>&#160;  }<span class="comment"></span></div>
-<div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>&#160;<span class="comment">  /// @endcond</span></div>
-<div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>&#160;<span class="comment"></span><span class="comment"></span></div>
-<div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>&#160;<span class="comment">  /// @brief Serialize an array into a FlatBuffer `vector`.</span></div>
-<div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>&#160;<span class="comment">  /// @tparam T The data type of the array elements.</span></div>
-<div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>&#160;<span class="comment">  /// @param[in] v A pointer to the array of type `T` to serialize into the</span></div>
-<div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>&#160;<span class="comment">  /// buffer as a `vector`.</span></div>
-<div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>&#160;<span class="comment">  /// @param[in] len The number of elements to serialize.</span></div>
-<div class="line"><a name="l01115"></a><span class="lineno"> 1115</span>&#160;<span class="comment">  /// @return Returns a typed `Offset` into the serialized data indicating</span></div>
-<div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>&#160;<span class="comment">  /// where the vector is stored.</span></div>
-<div class="line"><a name="l01117"></a><span class="lineno"><a class="line" href="classflatbuffers_1_1_flat_buffer_builder.html#a2cca5c89246a53e80e6ad9487f4c36f3"> 1117</a></span>&#160;<span class="comment"></span>  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt; <a class="code" href="structflatbuffers_1_1_offset.html">Offset&lt;Vector&lt;T&gt;</a>&gt; <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#a2cca5c89246a53e80e6ad9487f4c36f3">CreateVector</a>(<span class="keyword">const</span> T *v, <span class="keywordtype">size_t</span> len) {</div>
-<div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>&#160;    <span class="comment">// If this assert hits, you&#39;re specifying a template argument that is</span></div>
-<div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>&#160;    <span class="comment">// causing the wrong overload to be selected, remove it.</span></div>
-<div class="line"><a name="l01120"></a><span class="lineno"> 1120</span>&#160;    AssertScalarT&lt;T&gt;();</div>
-<div class="line"><a name="l01121"></a><span class="lineno"> 1121</span>&#160;    StartVector(len, <span class="keyword">sizeof</span>(T));</div>
-<div class="line"><a name="l01122"></a><span class="lineno"> 1122</span>&#160;<span class="preprocessor">    #if FLATBUFFERS_LITTLEENDIAN</span></div>
-<div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>&#160;      PushBytes(reinterpret_cast&lt;const uint8_t *&gt;(v), len * <span class="keyword">sizeof</span>(T));</div>
-<div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>&#160;<span class="preprocessor">    #else</span></div>
-<div class="line"><a name="l01125"></a><span class="lineno"> 1125</span>&#160;      <span class="keywordflow">if</span> (<span class="keyword">sizeof</span>(T) == 1) {</div>
-<div class="line"><a name="l01126"></a><span class="lineno"> 1126</span>&#160;        PushBytes(reinterpret_cast&lt;const uint8_t *&gt;(v), len);</div>
-<div class="line"><a name="l01127"></a><span class="lineno"> 1127</span>&#160;      } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l01128"></a><span class="lineno"> 1128</span>&#160;        <span class="keywordflow">for</span> (<span class="keyword">auto</span> i = len; i &gt; 0; ) {</div>
-<div class="line"><a name="l01129"></a><span class="lineno"> 1129</span>&#160;          PushElement(v[--i]);</div>
-<div class="line"><a name="l01130"></a><span class="lineno"> 1130</span>&#160;        }</div>
-<div class="line"><a name="l01131"></a><span class="lineno"> 1131</span>&#160;      }</div>
-<div class="line"><a name="l01132"></a><span class="lineno"> 1132</span>&#160;<span class="preprocessor">    #endif</span></div>
-<div class="line"><a name="l01133"></a><span class="lineno"> 1133</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="structflatbuffers_1_1_offset.html">Offset&lt;Vector&lt;T&gt;</a>&gt;(EndVector(len));</div>
-<div class="line"><a name="l01134"></a><span class="lineno"> 1134</span>&#160;  }</div>
-<div class="line"><a name="l01135"></a><span class="lineno"> 1135</span>&#160;</div>
-<div class="line"><a name="l01136"></a><span class="lineno"> 1136</span>&#160;  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt; <a class="code" href="structflatbuffers_1_1_offset.html">Offset&lt;Vector&lt;Offset&lt;T&gt;</a>&gt;&gt; <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#a2cca5c89246a53e80e6ad9487f4c36f3">CreateVector</a>(<span class="keyword">const</span> <a class="code" href="structflatbuffers_1_1_offset.html">Offset&lt;T&gt;</a> *v, <span class="keywordtype">size_t</span> len) {</div>
-<div class="line"><a name="l01137"></a><span class="lineno"> 1137</span>&#160;    StartVector(len, <span class="keyword">sizeof</span>(<a class="code" href="structflatbuffers_1_1_offset.html">Offset&lt;T&gt;</a>));</div>
-<div class="line"><a name="l01138"></a><span class="lineno"> 1138</span>&#160;    <span class="keywordflow">for</span> (<span class="keyword">auto</span> i = len; i &gt; 0; ) {</div>
-<div class="line"><a name="l01139"></a><span class="lineno"> 1139</span>&#160;      PushElement(v[--i]);</div>
-<div class="line"><a name="l01140"></a><span class="lineno"> 1140</span>&#160;    }</div>
-<div class="line"><a name="l01141"></a><span class="lineno"> 1141</span>&#160;    <span class="keywordflow">return</span> Offset&lt;Vector&lt;Offset&lt;T&gt;&gt;&gt;(EndVector(len));</div>
-<div class="line"><a name="l01142"></a><span class="lineno"> 1142</span>&#160;  }</div>
-<div class="line"><a name="l01143"></a><span class="lineno"> 1143</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01144"></a><span class="lineno"> 1144</span>&#160;<span class="comment">  /// @brief Serialize a `std::vector` into a FlatBuffer `vector`.</span></div>
-<div class="line"><a name="l01145"></a><span class="lineno"> 1145</span>&#160;<span class="comment">  /// @tparam T The data type of the `std::vector` elements.</span></div>
-<div class="line"><a name="l01146"></a><span class="lineno"> 1146</span>&#160;<span class="comment">  /// @param v A const reference to the `std::vector` to serialize into the</span></div>
-<div class="line"><a name="l01147"></a><span class="lineno"> 1147</span>&#160;<span class="comment">  /// buffer as a `vector`.</span></div>
-<div class="line"><a name="l01148"></a><span class="lineno"> 1148</span>&#160;<span class="comment">  /// @return Returns a typed `Offset` into the serialized data indicating</span></div>
-<div class="line"><a name="l01149"></a><span class="lineno"> 1149</span>&#160;<span class="comment">  /// where the vector is stored.</span></div>
-<div class="line"><a name="l01150"></a><span class="lineno"><a class="line" href="classflatbuffers_1_1_flat_buffer_builder.html#af715dd24dd37cb0151dc7a980ad0f207"> 1150</a></span>&#160;<span class="comment"></span>  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt; <a class="code" href="structflatbuffers_1_1_offset.html">Offset&lt;Vector&lt;T&gt;</a>&gt; <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#af715dd24dd37cb0151dc7a980ad0f207">CreateVector</a>(<span class="keyword">const</span> std::vector&lt;T&gt; &amp;v) {</div>
-<div class="line"><a name="l01151"></a><span class="lineno"> 1151</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#a2cca5c89246a53e80e6ad9487f4c36f3">CreateVector</a>(data(v), v.size());</div>
-<div class="line"><a name="l01152"></a><span class="lineno"> 1152</span>&#160;  }</div>
-<div class="line"><a name="l01153"></a><span class="lineno"> 1153</span>&#160;</div>
-<div class="line"><a name="l01154"></a><span class="lineno"> 1154</span>&#160;  <span class="comment">// vector&lt;bool&gt; may be implemented using a bit-set, so we can&#39;t access it as</span></div>
-<div class="line"><a name="l01155"></a><span class="lineno"> 1155</span>&#160;  <span class="comment">// an array. Instead, read elements manually.</span></div>
-<div class="line"><a name="l01156"></a><span class="lineno"> 1156</span>&#160;  <span class="comment">// Background: https://isocpp.org/blog/2012/11/on-vectorbool</span></div>
-<div class="line"><a name="l01157"></a><span class="lineno"> 1157</span>&#160;  <a class="code" href="structflatbuffers_1_1_offset.html">Offset&lt;Vector&lt;uint8_t&gt;</a>&gt; <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#a2cca5c89246a53e80e6ad9487f4c36f3">CreateVector</a>(<span class="keyword">const</span> std::vector&lt;bool&gt; &amp;v) {</div>
-<div class="line"><a name="l01158"></a><span class="lineno"> 1158</span>&#160;    StartVector(v.size(), <span class="keyword">sizeof</span>(uint8_t));</div>
-<div class="line"><a name="l01159"></a><span class="lineno"> 1159</span>&#160;    <span class="keywordflow">for</span> (<span class="keyword">auto</span> i = v.size(); i &gt; 0; ) {</div>
-<div class="line"><a name="l01160"></a><span class="lineno"> 1160</span>&#160;      PushElement(static_cast&lt;uint8_t&gt;(v[--i]));</div>
-<div class="line"><a name="l01161"></a><span class="lineno"> 1161</span>&#160;    }</div>
-<div class="line"><a name="l01162"></a><span class="lineno"> 1162</span>&#160;    <span class="keywordflow">return</span> Offset&lt;Vector&lt;uint8_t&gt;&gt;(EndVector(v.size()));</div>
-<div class="line"><a name="l01163"></a><span class="lineno"> 1163</span>&#160;  }</div>
-<div class="line"><a name="l01164"></a><span class="lineno"> 1164</span>&#160;</div>
-<div class="line"><a name="l01165"></a><span class="lineno"> 1165</span>&#160;<span class="preprocessor">  #ifndef FLATBUFFERS_CPP98_STL</span></div>
-<div class="line"><a name="l01166"></a><span class="lineno"> 1166</span>&#160;<span class="comment">  /// @brief Serialize values returned by a function into a FlatBuffer `vector`.</span></div>
-<div class="line"><a name="l01167"></a><span class="lineno"> 1167</span>&#160;<span class="comment"></span><span class="comment">  /// This is a convenience function that takes care of iteration for you.</span></div>
-<div class="line"><a name="l01168"></a><span class="lineno"> 1168</span>&#160;<span class="comment"></span><span class="comment">  /// @tparam T The data type of the `std::vector` elements.</span></div>
-<div class="line"><a name="l01169"></a><span class="lineno"> 1169</span>&#160;<span class="comment"></span><span class="comment">  /// @param f A function that takes the current iteration 0..vector_size-1 and</span></div>
-<div class="line"><a name="l01170"></a><span class="lineno"> 1170</span>&#160;<span class="comment"></span><span class="comment">  /// returns any type that you can construct a FlatBuffers vector out of.</span></div>
-<div class="line"><a name="l01171"></a><span class="lineno"> 1171</span>&#160;<span class="comment"></span><span class="comment">  /// @return Returns a typed `Offset` into the serialized data indicating</span></div>
-<div class="line"><a name="l01172"></a><span class="lineno"> 1172</span>&#160;<span class="comment"></span><span class="comment">  /// where the vector is stored.</span></div>
-<div class="line"><a name="l01173"></a><span class="lineno"><a class="line" href="classflatbuffers_1_1_flat_buffer_builder.html#a1080c9e370e2d9d9d872dadd1131436b"> 1173</a></span>&#160;<span class="comment"></span>  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt; <a class="code" href="structflatbuffers_1_1_offset.html">Offset&lt;Vector&lt;T&gt;</a>&gt; <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#a1080c9e370e2d9d9d872dadd1131436b">CreateVector</a>(<span class="keywordtype">size_t</span> vector_size,</div>
-<div class="line"><a name="l01174"></a><span class="lineno"> 1174</span>&#160;      <span class="keyword">const</span> std::function&lt;T (<span class="keywordtype">size_t</span> i)&gt; &amp;f) {</div>
-<div class="line"><a name="l01175"></a><span class="lineno"> 1175</span>&#160;    std::vector&lt;T&gt; elems(vector_size);</div>
-<div class="line"><a name="l01176"></a><span class="lineno"> 1176</span>&#160;    <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; vector_size; i++) elems[i] = f(i);</div>
-<div class="line"><a name="l01177"></a><span class="lineno"> 1177</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#a2cca5c89246a53e80e6ad9487f4c36f3">CreateVector</a>(elems);</div>
-<div class="line"><a name="l01178"></a><span class="lineno"> 1178</span>&#160;  }</div>
-<div class="line"><a name="l01179"></a><span class="lineno"> 1179</span>&#160;<span class="preprocessor">  #endif</span></div>
-<div class="line"><a name="l01180"></a><span class="lineno"> 1180</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01181"></a><span class="lineno"> 1181</span>&#160;<span class="comment">  /// @brief Serialize values returned by a function into a FlatBuffer `vector`.</span></div>
-<div class="line"><a name="l01182"></a><span class="lineno"> 1182</span>&#160;<span class="comment">  /// This is a convenience function that takes care of iteration for you.</span></div>
-<div class="line"><a name="l01183"></a><span class="lineno"> 1183</span>&#160;<span class="comment">  /// @tparam T The data type of the `std::vector` elements.</span></div>
-<div class="line"><a name="l01184"></a><span class="lineno"> 1184</span>&#160;<span class="comment">  /// @param f A function that takes the current iteration 0..vector_size-1,</span></div>
-<div class="line"><a name="l01185"></a><span class="lineno"> 1185</span>&#160;<span class="comment">  /// and the state parameter returning any type that you can construct a</span></div>
-<div class="line"><a name="l01186"></a><span class="lineno"> 1186</span>&#160;<span class="comment">  /// FlatBuffers vector out of.</span></div>
-<div class="line"><a name="l01187"></a><span class="lineno"> 1187</span>&#160;<span class="comment">  /// @param state State passed to f.</span></div>
-<div class="line"><a name="l01188"></a><span class="lineno"> 1188</span>&#160;<span class="comment">  /// @return Returns a typed `Offset` into the serialized data indicating</span></div>
-<div class="line"><a name="l01189"></a><span class="lineno"> 1189</span>&#160;<span class="comment">  /// where the vector is stored.</span></div>
-<div class="line"><a name="l01190"></a><span class="lineno"><a class="line" href="classflatbuffers_1_1_flat_buffer_builder.html#a53504fc2cab681a7980b03260f8b2f7a"> 1190</a></span>&#160;<span class="comment"></span>  <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> F, <span class="keyword">typename</span> S&gt; <a class="code" href="structflatbuffers_1_1_offset.html">Offset&lt;Vector&lt;T&gt;</a>&gt; <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#a53504fc2cab681a7980b03260f8b2f7a">CreateVector</a>(</div>
-<div class="line"><a name="l01191"></a><span class="lineno"> 1191</span>&#160;      <span class="keywordtype">size_t</span> vector_size, F f, S *state) {</div>
-<div class="line"><a name="l01192"></a><span class="lineno"> 1192</span>&#160;    std::vector&lt;T&gt; elems(vector_size);</div>
-<div class="line"><a name="l01193"></a><span class="lineno"> 1193</span>&#160;    <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; vector_size; i++) elems[i] = f(i, state);</div>
-<div class="line"><a name="l01194"></a><span class="lineno"> 1194</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#a2cca5c89246a53e80e6ad9487f4c36f3">CreateVector</a>(elems);</div>
-<div class="line"><a name="l01195"></a><span class="lineno"> 1195</span>&#160;  }</div>
-<div class="line"><a name="l01196"></a><span class="lineno"> 1196</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01197"></a><span class="lineno"> 1197</span>&#160;<span class="comment">  /// @brief Serialize a `std::vector&lt;std::string&gt;` into a FlatBuffer `vector`.</span></div>
-<div class="line"><a name="l01198"></a><span class="lineno"> 1198</span>&#160;<span class="comment">  /// This is a convenience function for a common case.</span></div>
-<div class="line"><a name="l01199"></a><span class="lineno"> 1199</span>&#160;<span class="comment">  /// @param v A const reference to the `std::vector` to serialize into the</span></div>
-<div class="line"><a name="l01200"></a><span class="lineno"> 1200</span>&#160;<span class="comment">  /// buffer as a `vector`.</span></div>
-<div class="line"><a name="l01201"></a><span class="lineno"> 1201</span>&#160;<span class="comment">  /// @return Returns a typed `Offset` into the serialized data indicating</span></div>
-<div class="line"><a name="l01202"></a><span class="lineno"> 1202</span>&#160;<span class="comment">  /// where the vector is stored.</span></div>
-<div class="line"><a name="l01203"></a><span class="lineno"><a class="line" href="classflatbuffers_1_1_flat_buffer_builder.html#a592110519a6c8db1926f1365bf2a58e6"> 1203</a></span>&#160;<span class="comment"></span>  <a class="code" href="structflatbuffers_1_1_offset.html">Offset&lt;Vector&lt;Offset&lt;String&gt;</a>&gt;&gt; <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#a592110519a6c8db1926f1365bf2a58e6">CreateVectorOfStrings</a>(</div>
-<div class="line"><a name="l01204"></a><span class="lineno"> 1204</span>&#160;      <span class="keyword">const</span> std::vector&lt;std::string&gt; &amp;v) {</div>
-<div class="line"><a name="l01205"></a><span class="lineno"> 1205</span>&#160;    std::vector&lt;Offset&lt;String&gt;&gt; offsets(v.size());</div>
-<div class="line"><a name="l01206"></a><span class="lineno"> 1206</span>&#160;    <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; v.size(); i++) offsets[i] = <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#aec6f9df2a0366b540b24822414d92cbe">CreateString</a>(v[i]);</div>
-<div class="line"><a name="l01207"></a><span class="lineno"> 1207</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#a2cca5c89246a53e80e6ad9487f4c36f3">CreateVector</a>(offsets);</div>
-<div class="line"><a name="l01208"></a><span class="lineno"> 1208</span>&#160;  }</div>
-<div class="line"><a name="l01209"></a><span class="lineno"> 1209</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01210"></a><span class="lineno"> 1210</span>&#160;<span class="comment">  /// @brief Serialize an array of structs into a FlatBuffer `vector`.</span></div>
-<div class="line"><a name="l01211"></a><span class="lineno"> 1211</span>&#160;<span class="comment">  /// @tparam T The data type of the struct array elements.</span></div>
-<div class="line"><a name="l01212"></a><span class="lineno"> 1212</span>&#160;<span class="comment">  /// @param[in] v A pointer to the array of type `T` to serialize into the</span></div>
-<div class="line"><a name="l01213"></a><span class="lineno"> 1213</span>&#160;<span class="comment">  /// buffer as a `vector`.</span></div>
-<div class="line"><a name="l01214"></a><span class="lineno"> 1214</span>&#160;<span class="comment">  /// @param[in] len The number of elements to serialize.</span></div>
-<div class="line"><a name="l01215"></a><span class="lineno"> 1215</span>&#160;<span class="comment">  /// @return Returns a typed `Offset` into the serialized data indicating</span></div>
-<div class="line"><a name="l01216"></a><span class="lineno"> 1216</span>&#160;<span class="comment">  /// where the vector is stored.</span></div>
-<div class="line"><a name="l01217"></a><span class="lineno"><a class="line" href="classflatbuffers_1_1_flat_buffer_builder.html#afede51fd9c32d146cbb1832f57c5e1b7"> 1217</a></span>&#160;<span class="comment"></span>  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt; <a class="code" href="structflatbuffers_1_1_offset.html">Offset&lt;Vector&lt;const T *&gt;</a>&gt; <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#afede51fd9c32d146cbb1832f57c5e1b7">CreateVectorOfStructs</a>(</div>
-<div class="line"><a name="l01218"></a><span class="lineno"> 1218</span>&#160;      <span class="keyword">const</span> T *v, <span class="keywordtype">size_t</span> len) {</div>
-<div class="line"><a name="l01219"></a><span class="lineno"> 1219</span>&#160;    StartVector(len * <span class="keyword">sizeof</span>(T) / AlignOf&lt;T&gt;(), AlignOf&lt;T&gt;());</div>
-<div class="line"><a name="l01220"></a><span class="lineno"> 1220</span>&#160;    PushBytes(reinterpret_cast&lt;const uint8_t *&gt;(v), <span class="keyword">sizeof</span>(T) * len);</div>
-<div class="line"><a name="l01221"></a><span class="lineno"> 1221</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="structflatbuffers_1_1_offset.html">Offset&lt;Vector&lt;const T *&gt;</a>&gt;(EndVector(len));</div>
-<div class="line"><a name="l01222"></a><span class="lineno"> 1222</span>&#160;  }</div>
-<div class="line"><a name="l01223"></a><span class="lineno"> 1223</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01224"></a><span class="lineno"> 1224</span>&#160;<span class="comment">  /// @brief Serialize an array of native structs into a FlatBuffer `vector`.</span></div>
-<div class="line"><a name="l01225"></a><span class="lineno"> 1225</span>&#160;<span class="comment">  /// @tparam T The data type of the struct array elements.</span></div>
-<div class="line"><a name="l01226"></a><span class="lineno"> 1226</span>&#160;<span class="comment">  /// @tparam S The data type of the native struct array elements.</span></div>
-<div class="line"><a name="l01227"></a><span class="lineno"> 1227</span>&#160;<span class="comment">  /// @param[in] v A pointer to the array of type `S` to serialize into the</span></div>
-<div class="line"><a name="l01228"></a><span class="lineno"> 1228</span>&#160;<span class="comment">  /// buffer as a `vector`.</span></div>
-<div class="line"><a name="l01229"></a><span class="lineno"> 1229</span>&#160;<span class="comment">  /// @param[in] len The number of elements to serialize.</span></div>
-<div class="line"><a name="l01230"></a><span class="lineno"> 1230</span>&#160;<span class="comment">  /// @return Returns a typed `Offset` into the serialized data indicating</span></div>
-<div class="line"><a name="l01231"></a><span class="lineno"> 1231</span>&#160;<span class="comment">  /// where the vector is stored.</span></div>
-<div class="line"><a name="l01232"></a><span class="lineno"><a class="line" href="classflatbuffers_1_1_flat_buffer_builder.html#a3d57074082aaab8cdeb8474ff9df0b53"> 1232</a></span>&#160;<span class="comment"></span>  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> S&gt; <a class="code" href="structflatbuffers_1_1_offset.html">Offset&lt;Vector&lt;const T *&gt;</a>&gt; <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#a3d57074082aaab8cdeb8474ff9df0b53">CreateVectorOfNativeStructs</a>(</div>
-<div class="line"><a name="l01233"></a><span class="lineno"> 1233</span>&#160;      <span class="keyword">const</span> S *v, <span class="keywordtype">size_t</span> len) {</div>
-<div class="line"><a name="l01234"></a><span class="lineno"> 1234</span>&#160;    <span class="keyword">extern</span> T Pack(<span class="keyword">const</span> S&amp;);</div>
-<div class="line"><a name="l01235"></a><span class="lineno"> 1235</span>&#160;    <span class="keyword">typedef</span> T (*Pack_t)(<span class="keyword">const</span> S&amp;);</div>
-<div class="line"><a name="l01236"></a><span class="lineno"> 1236</span>&#160;    std::vector&lt;T&gt; vv(len);</div>
-<div class="line"><a name="l01237"></a><span class="lineno"> 1237</span>&#160;    std::transform(v, v+len, vv.begin(), *(Pack_t)&amp;Pack);</div>
-<div class="line"><a name="l01238"></a><span class="lineno"> 1238</span>&#160;    <span class="keywordflow">return</span> CreateVectorOfStructs&lt;T&gt;(vv.data(), vv.size());</div>
-<div class="line"><a name="l01239"></a><span class="lineno"> 1239</span>&#160;  }</div>
-<div class="line"><a name="l01240"></a><span class="lineno"> 1240</span>&#160;</div>
-<div class="line"><a name="l01241"></a><span class="lineno"> 1241</span>&#160;<span class="preprocessor">  #ifndef FLATBUFFERS_CPP98_STL</span></div>
-<div class="line"><a name="l01242"></a><span class="lineno"> 1242</span>&#160;<span class="comment">  /// @brief Serialize an array of structs into a FlatBuffer `vector`.</span></div>
-<div class="line"><a name="l01243"></a><span class="lineno"> 1243</span>&#160;<span class="comment"></span><span class="comment">  /// @tparam T The data type of the struct array elements.</span></div>
-<div class="line"><a name="l01244"></a><span class="lineno"> 1244</span>&#160;<span class="comment"></span><span class="comment">  /// @param[in] f A function that takes the current iteration 0..vector_size-1</span></div>
-<div class="line"><a name="l01245"></a><span class="lineno"> 1245</span>&#160;<span class="comment"></span><span class="comment">  /// and a pointer to the struct that must be filled.</span></div>
-<div class="line"><a name="l01246"></a><span class="lineno"> 1246</span>&#160;<span class="comment"></span><span class="comment">  /// @return Returns a typed `Offset` into the serialized data indicating</span></div>
-<div class="line"><a name="l01247"></a><span class="lineno"> 1247</span>&#160;<span class="comment"></span><span class="comment">  /// where the vector is stored.</span></div>
-<div class="line"><a name="l01248"></a><span class="lineno"> 1248</span>&#160;<span class="comment"></span><span class="comment">  /// This is mostly useful when flatbuffers are generated with mutation</span></div>
-<div class="line"><a name="l01249"></a><span class="lineno"> 1249</span>&#160;<span class="comment"></span><span class="comment">  /// accessors.</span></div>
-<div class="line"><a name="l01250"></a><span class="lineno"><a class="line" href="classflatbuffers_1_1_flat_buffer_builder.html#a6e90ada59d9553636f72ce8e4a892f72"> 1250</a></span>&#160;<span class="comment"></span>  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt; <a class="code" href="structflatbuffers_1_1_offset.html">Offset&lt;Vector&lt;const T *&gt;</a>&gt; <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#a6e90ada59d9553636f72ce8e4a892f72">CreateVectorOfStructs</a>(</div>
-<div class="line"><a name="l01251"></a><span class="lineno"> 1251</span>&#160;      <span class="keywordtype">size_t</span> vector_size, <span class="keyword">const</span> std::function&lt;<span class="keywordtype">void</span>(<span class="keywordtype">size_t</span> i, T *)&gt; &amp;filler) {</div>
-<div class="line"><a name="l01252"></a><span class="lineno"> 1252</span>&#160;    T* structs = StartVectorOfStructs&lt;T&gt;(vector_size);</div>
-<div class="line"><a name="l01253"></a><span class="lineno"> 1253</span>&#160;    <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; vector_size; i++) {</div>
-<div class="line"><a name="l01254"></a><span class="lineno"> 1254</span>&#160;      filler(i, structs);</div>
-<div class="line"><a name="l01255"></a><span class="lineno"> 1255</span>&#160;      structs++;</div>
-<div class="line"><a name="l01256"></a><span class="lineno"> 1256</span>&#160;    }</div>
-<div class="line"><a name="l01257"></a><span class="lineno"> 1257</span>&#160;    <span class="keywordflow">return</span> EndVectorOfStructs&lt;T&gt;(vector_size);</div>
-<div class="line"><a name="l01258"></a><span class="lineno"> 1258</span>&#160;  }</div>
-<div class="line"><a name="l01259"></a><span class="lineno"> 1259</span>&#160;<span class="preprocessor">  #endif</span></div>
-<div class="line"><a name="l01260"></a><span class="lineno"> 1260</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01261"></a><span class="lineno"> 1261</span>&#160;<span class="comment">  /// @brief Serialize an array of structs into a FlatBuffer `vector`.</span></div>
-<div class="line"><a name="l01262"></a><span class="lineno"> 1262</span>&#160;<span class="comment">  /// @tparam T The data type of the struct array elements.</span></div>
-<div class="line"><a name="l01263"></a><span class="lineno"> 1263</span>&#160;<span class="comment">  /// @param[in] f A function that takes the current iteration 0..vector_size-1,</span></div>
-<div class="line"><a name="l01264"></a><span class="lineno"> 1264</span>&#160;<span class="comment">  /// a pointer to the struct that must be filled and the state argument.</span></div>
-<div class="line"><a name="l01265"></a><span class="lineno"> 1265</span>&#160;<span class="comment">  /// @param[in] state Arbitrary state to pass to f.</span></div>
-<div class="line"><a name="l01266"></a><span class="lineno"> 1266</span>&#160;<span class="comment">  /// @return Returns a typed `Offset` into the serialized data indicating</span></div>
-<div class="line"><a name="l01267"></a><span class="lineno"> 1267</span>&#160;<span class="comment">  /// where the vector is stored.</span></div>
-<div class="line"><a name="l01268"></a><span class="lineno"> 1268</span>&#160;<span class="comment">  /// This is mostly useful when flatbuffers are generated with mutation</span></div>
-<div class="line"><a name="l01269"></a><span class="lineno"> 1269</span>&#160;<span class="comment">  /// accessors.</span></div>
-<div class="line"><a name="l01270"></a><span class="lineno"> 1270</span>&#160;<span class="comment"></span>  <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> F, <span class="keyword">typename</span> S&gt; <a class="code" href="structflatbuffers_1_1_offset.html">Offset&lt;Vector&lt;const T *&gt;</a>&gt;</div>
-<div class="line"><a name="l01271"></a><span class="lineno"><a class="line" href="classflatbuffers_1_1_flat_buffer_builder.html#a9cc09fa59ff9732e972877cfe911c8a5"> 1271</a></span>&#160;      <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#a9cc09fa59ff9732e972877cfe911c8a5">CreateVectorOfStructs</a>(<span class="keywordtype">size_t</span> vector_size, F f, S *state) {</div>
-<div class="line"><a name="l01272"></a><span class="lineno"> 1272</span>&#160;    T* structs = StartVectorOfStructs&lt;T&gt;(vector_size);</div>
-<div class="line"><a name="l01273"></a><span class="lineno"> 1273</span>&#160;    <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; vector_size; i++) {</div>
-<div class="line"><a name="l01274"></a><span class="lineno"> 1274</span>&#160;      f(i, structs, state);</div>
-<div class="line"><a name="l01275"></a><span class="lineno"> 1275</span>&#160;      structs++;</div>
-<div class="line"><a name="l01276"></a><span class="lineno"> 1276</span>&#160;    }</div>
-<div class="line"><a name="l01277"></a><span class="lineno"> 1277</span>&#160;    <span class="keywordflow">return</span> EndVectorOfStructs&lt;T&gt;(vector_size);</div>
-<div class="line"><a name="l01278"></a><span class="lineno"> 1278</span>&#160;  }</div>
-<div class="line"><a name="l01279"></a><span class="lineno"> 1279</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01280"></a><span class="lineno"> 1280</span>&#160;<span class="comment">  /// @brief Serialize a `std::vector` of structs into a FlatBuffer `vector`.</span></div>
-<div class="line"><a name="l01281"></a><span class="lineno"> 1281</span>&#160;<span class="comment">  /// @tparam T The data type of the `std::vector` struct elements.</span></div>
-<div class="line"><a name="l01282"></a><span class="lineno"> 1282</span>&#160;<span class="comment">  /// @param[in]] v A const reference to the `std::vector` of structs to</span></div>
-<div class="line"><a name="l01283"></a><span class="lineno"> 1283</span>&#160;<span class="comment">  /// serialize into the buffer as a `vector`.</span></div>
-<div class="line"><a name="l01284"></a><span class="lineno"> 1284</span>&#160;<span class="comment">  /// @return Returns a typed `Offset` into the serialized data indicating</span></div>
-<div class="line"><a name="l01285"></a><span class="lineno"> 1285</span>&#160;<span class="comment">  /// where the vector is stored.</span></div>
-<div class="line"><a name="l01286"></a><span class="lineno"><a class="line" href="classflatbuffers_1_1_flat_buffer_builder.html#a8704709a2e25ad04679212ee4126b1a1"> 1286</a></span>&#160;<span class="comment"></span>  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt; <a class="code" href="structflatbuffers_1_1_offset.html">Offset&lt;Vector&lt;const T *&gt;</a>&gt; <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#a8704709a2e25ad04679212ee4126b1a1">CreateVectorOfStructs</a>(</div>
-<div class="line"><a name="l01287"></a><span class="lineno"> 1287</span>&#160;      <span class="keyword">const</span> std::vector&lt;T&gt; &amp;v) {</div>
-<div class="line"><a name="l01288"></a><span class="lineno"> 1288</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#afede51fd9c32d146cbb1832f57c5e1b7">CreateVectorOfStructs</a>(data(v), v.size());</div>
-<div class="line"><a name="l01289"></a><span class="lineno"> 1289</span>&#160;  }</div>
-<div class="line"><a name="l01290"></a><span class="lineno"> 1290</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01291"></a><span class="lineno"> 1291</span>&#160;<span class="comment">  /// @brief Serialize a `std::vector` of native structs into a FlatBuffer `vector`.</span></div>
-<div class="line"><a name="l01292"></a><span class="lineno"> 1292</span>&#160;<span class="comment">  /// @tparam T The data type of the `std::vector` struct elements.</span></div>
-<div class="line"><a name="l01293"></a><span class="lineno"> 1293</span>&#160;<span class="comment">  /// @tparam S The data type of the `std::vector` native struct elements.</span></div>
-<div class="line"><a name="l01294"></a><span class="lineno"> 1294</span>&#160;<span class="comment">  /// @param[in]] v A const reference to the `std::vector` of structs to</span></div>
-<div class="line"><a name="l01295"></a><span class="lineno"> 1295</span>&#160;<span class="comment">  /// serialize into the buffer as a `vector`.</span></div>
-<div class="line"><a name="l01296"></a><span class="lineno"> 1296</span>&#160;<span class="comment">  /// @return Returns a typed `Offset` into the serialized data indicating</span></div>
-<div class="line"><a name="l01297"></a><span class="lineno"> 1297</span>&#160;<span class="comment">  /// where the vector is stored.</span></div>
-<div class="line"><a name="l01298"></a><span class="lineno"><a class="line" href="classflatbuffers_1_1_flat_buffer_builder.html#a11c291ccd2159604c149600ee6180b95"> 1298</a></span>&#160;<span class="comment"></span>  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> S&gt; <a class="code" href="structflatbuffers_1_1_offset.html">Offset&lt;Vector&lt;const T *&gt;</a>&gt; <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#a11c291ccd2159604c149600ee6180b95">CreateVectorOfNativeStructs</a>(</div>
-<div class="line"><a name="l01299"></a><span class="lineno"> 1299</span>&#160;      <span class="keyword">const</span> std::vector&lt;S&gt; &amp;v) {</div>
-<div class="line"><a name="l01300"></a><span class="lineno"> 1300</span>&#160;    <span class="keywordflow">return</span> CreateVectorOfNativeStructs&lt;T, S&gt;(data(v), v.size());</div>
-<div class="line"><a name="l01301"></a><span class="lineno"> 1301</span>&#160;  }</div>
-<div class="line"><a name="l01302"></a><span class="lineno"> 1302</span>&#160;</div>
-<div class="line"><a name="l01303"></a><span class="lineno"> 1303</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01304"></a><span class="lineno"> 1304</span>&#160;<span class="comment">  /// @cond FLATBUFFERS_INTERNAL</span></div>
-<div class="line"><a name="l01305"></a><span class="lineno"> 1305</span>&#160;<span class="comment"></span>  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l01306"></a><span class="lineno"> 1306</span>&#160;  <span class="keyword">struct </span>StructKeyComparator {</div>
-<div class="line"><a name="l01307"></a><span class="lineno"> 1307</span>&#160;    <span class="keywordtype">bool</span> operator()(<span class="keyword">const</span> T &amp;a, <span class="keyword">const</span> T &amp;b)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l01308"></a><span class="lineno"> 1308</span>&#160;      <span class="keywordflow">return</span> a.KeyCompareLessThan(&amp;b);</div>
-<div class="line"><a name="l01309"></a><span class="lineno"> 1309</span>&#160;    }</div>
-<div class="line"><a name="l01310"></a><span class="lineno"> 1310</span>&#160;</div>
-<div class="line"><a name="l01311"></a><span class="lineno"> 1311</span>&#160;  <span class="keyword">private</span>:</div>
-<div class="line"><a name="l01312"></a><span class="lineno"> 1312</span>&#160;    StructKeyComparator&amp; operator= (<span class="keyword">const</span> StructKeyComparator&amp;);</div>
-<div class="line"><a name="l01313"></a><span class="lineno"> 1313</span>&#160;  };<span class="comment"></span></div>
-<div class="line"><a name="l01314"></a><span class="lineno"> 1314</span>&#160;<span class="comment">  /// @endcond</span></div>
-<div class="line"><a name="l01315"></a><span class="lineno"> 1315</span>&#160;<span class="comment"></span><span class="comment"></span></div>
-<div class="line"><a name="l01316"></a><span class="lineno"> 1316</span>&#160;<span class="comment">  /// @brief Serialize a `std::vector` of structs into a FlatBuffer `vector`</span></div>
-<div class="line"><a name="l01317"></a><span class="lineno"> 1317</span>&#160;<span class="comment">  /// in sorted order.</span></div>
-<div class="line"><a name="l01318"></a><span class="lineno"> 1318</span>&#160;<span class="comment">  /// @tparam T The data type of the `std::vector` struct elements.</span></div>
-<div class="line"><a name="l01319"></a><span class="lineno"> 1319</span>&#160;<span class="comment">  /// @param[in]] v A const reference to the `std::vector` of structs to</span></div>
-<div class="line"><a name="l01320"></a><span class="lineno"> 1320</span>&#160;<span class="comment">  /// serialize into the buffer as a `vector`.</span></div>
-<div class="line"><a name="l01321"></a><span class="lineno"> 1321</span>&#160;<span class="comment">  /// @return Returns a typed `Offset` into the serialized data indicating</span></div>
-<div class="line"><a name="l01322"></a><span class="lineno"> 1322</span>&#160;<span class="comment">  /// where the vector is stored.</span></div>
-<div class="line"><a name="l01323"></a><span class="lineno"><a class="line" href="classflatbuffers_1_1_flat_buffer_builder.html#a7cc10b709dfa3e72083843d1a5e36c15"> 1323</a></span>&#160;<span class="comment"></span>  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt; <a class="code" href="structflatbuffers_1_1_offset.html">Offset&lt;Vector&lt;const T *&gt;</a>&gt; <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#a7cc10b709dfa3e72083843d1a5e36c15">CreateVectorOfSortedStructs</a>(</div>
-<div class="line"><a name="l01324"></a><span class="lineno"> 1324</span>&#160;      std::vector&lt;T&gt; *v) {</div>
-<div class="line"><a name="l01325"></a><span class="lineno"> 1325</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#a7cc10b709dfa3e72083843d1a5e36c15">CreateVectorOfSortedStructs</a>(data(*v), v-&gt;size());</div>
-<div class="line"><a name="l01326"></a><span class="lineno"> 1326</span>&#160;  }</div>
-<div class="line"><a name="l01327"></a><span class="lineno"> 1327</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01328"></a><span class="lineno"> 1328</span>&#160;<span class="comment">  /// @brief Serialize a `std::vector` of native structs into a FlatBuffer `vector`</span></div>
-<div class="line"><a name="l01329"></a><span class="lineno"> 1329</span>&#160;<span class="comment">  /// in sorted order.</span></div>
-<div class="line"><a name="l01330"></a><span class="lineno"> 1330</span>&#160;<span class="comment">  /// @tparam T The data type of the `std::vector` struct elements.</span></div>
-<div class="line"><a name="l01331"></a><span class="lineno"> 1331</span>&#160;<span class="comment">  /// @tparam S The data type of the `std::vector` native struct elements.</span></div>
-<div class="line"><a name="l01332"></a><span class="lineno"> 1332</span>&#160;<span class="comment">  /// @param[in]] v A const reference to the `std::vector` of structs to</span></div>
-<div class="line"><a name="l01333"></a><span class="lineno"> 1333</span>&#160;<span class="comment">  /// serialize into the buffer as a `vector`.</span></div>
-<div class="line"><a name="l01334"></a><span class="lineno"> 1334</span>&#160;<span class="comment">  /// @return Returns a typed `Offset` into the serialized data indicating</span></div>
-<div class="line"><a name="l01335"></a><span class="lineno"> 1335</span>&#160;<span class="comment">  /// where the vector is stored.</span></div>
-<div class="line"><a name="l01336"></a><span class="lineno"><a class="line" href="classflatbuffers_1_1_flat_buffer_builder.html#a23aa4c910e053446cc404bc486012e54"> 1336</a></span>&#160;<span class="comment"></span>  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> S&gt; <a class="code" href="structflatbuffers_1_1_offset.html">Offset&lt;Vector&lt;const T *&gt;</a>&gt; <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#a23aa4c910e053446cc404bc486012e54">CreateVectorOfSortedNativeStructs</a>(</div>
-<div class="line"><a name="l01337"></a><span class="lineno"> 1337</span>&#160;      std::vector&lt;S&gt; *v) {</div>
-<div class="line"><a name="l01338"></a><span class="lineno"> 1338</span>&#160;    <span class="keywordflow">return</span> CreateVectorOfSortedNativeStructs&lt;T, S&gt;(data(*v), v-&gt;size());</div>
-<div class="line"><a name="l01339"></a><span class="lineno"> 1339</span>&#160;  }</div>
-<div class="line"><a name="l01340"></a><span class="lineno"> 1340</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01341"></a><span class="lineno"> 1341</span>&#160;<span class="comment">  /// @brief Serialize an array of structs into a FlatBuffer `vector` in sorted</span></div>
-<div class="line"><a name="l01342"></a><span class="lineno"> 1342</span>&#160;<span class="comment">  /// order.</span></div>
-<div class="line"><a name="l01343"></a><span class="lineno"> 1343</span>&#160;<span class="comment">  /// @tparam T The data type of the struct array elements.</span></div>
-<div class="line"><a name="l01344"></a><span class="lineno"> 1344</span>&#160;<span class="comment">  /// @param[in] v A pointer to the array of type `T` to serialize into the</span></div>
-<div class="line"><a name="l01345"></a><span class="lineno"> 1345</span>&#160;<span class="comment">  /// buffer as a `vector`.</span></div>
-<div class="line"><a name="l01346"></a><span class="lineno"> 1346</span>&#160;<span class="comment">  /// @param[in] len The number of elements to serialize.</span></div>
-<div class="line"><a name="l01347"></a><span class="lineno"> 1347</span>&#160;<span class="comment">  /// @return Returns a typed `Offset` into the serialized data indicating</span></div>
-<div class="line"><a name="l01348"></a><span class="lineno"> 1348</span>&#160;<span class="comment">  /// where the vector is stored.</span></div>
-<div class="line"><a name="l01349"></a><span class="lineno"><a class="line" href="classflatbuffers_1_1_flat_buffer_builder.html#ab1f44cc1b130e13b41e9a80de76e25cf"> 1349</a></span>&#160;<span class="comment"></span>  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt; <a class="code" href="structflatbuffers_1_1_offset.html">Offset&lt;Vector&lt;const T *&gt;</a>&gt; <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#ab1f44cc1b130e13b41e9a80de76e25cf">CreateVectorOfSortedStructs</a>(</div>
-<div class="line"><a name="l01350"></a><span class="lineno"> 1350</span>&#160;      T *v, <span class="keywordtype">size_t</span> len) {</div>
-<div class="line"><a name="l01351"></a><span class="lineno"> 1351</span>&#160;    std::sort(v, v + len, StructKeyComparator&lt;T&gt;());</div>
-<div class="line"><a name="l01352"></a><span class="lineno"> 1352</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#afede51fd9c32d146cbb1832f57c5e1b7">CreateVectorOfStructs</a>(v, len);</div>
-<div class="line"><a name="l01353"></a><span class="lineno"> 1353</span>&#160;  }</div>
-<div class="line"><a name="l01354"></a><span class="lineno"> 1354</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01355"></a><span class="lineno"> 1355</span>&#160;<span class="comment">  /// @brief Serialize an array of native structs into a FlatBuffer `vector` in sorted</span></div>
-<div class="line"><a name="l01356"></a><span class="lineno"> 1356</span>&#160;<span class="comment">  /// order.</span></div>
-<div class="line"><a name="l01357"></a><span class="lineno"> 1357</span>&#160;<span class="comment">  /// @tparam T The data type of the struct array elements.</span></div>
-<div class="line"><a name="l01358"></a><span class="lineno"> 1358</span>&#160;<span class="comment">  /// @tparam S The data type of the native struct array elements.</span></div>
-<div class="line"><a name="l01359"></a><span class="lineno"> 1359</span>&#160;<span class="comment">  /// @param[in] v A pointer to the array of type `S` to serialize into the</span></div>
-<div class="line"><a name="l01360"></a><span class="lineno"> 1360</span>&#160;<span class="comment">  /// buffer as a `vector`.</span></div>
-<div class="line"><a name="l01361"></a><span class="lineno"> 1361</span>&#160;<span class="comment">  /// @param[in] len The number of elements to serialize.</span></div>
-<div class="line"><a name="l01362"></a><span class="lineno"> 1362</span>&#160;<span class="comment">  /// @return Returns a typed `Offset` into the serialized data indicating</span></div>
-<div class="line"><a name="l01363"></a><span class="lineno"> 1363</span>&#160;<span class="comment">  /// where the vector is stored.</span></div>
-<div class="line"><a name="l01364"></a><span class="lineno"><a class="line" href="classflatbuffers_1_1_flat_buffer_builder.html#a799701af34c398d8eb86e049b73bcecf"> 1364</a></span>&#160;<span class="comment"></span>  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> S&gt; <a class="code" href="structflatbuffers_1_1_offset.html">Offset&lt;Vector&lt;const T *&gt;</a>&gt; <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#a799701af34c398d8eb86e049b73bcecf">CreateVectorOfSortedNativeStructs</a>(</div>
-<div class="line"><a name="l01365"></a><span class="lineno"> 1365</span>&#160;      S *v, <span class="keywordtype">size_t</span> len) {</div>
-<div class="line"><a name="l01366"></a><span class="lineno"> 1366</span>&#160;    <span class="keyword">extern</span> T Pack(<span class="keyword">const</span> S&amp;);</div>
-<div class="line"><a name="l01367"></a><span class="lineno"> 1367</span>&#160;    <span class="keyword">typedef</span> T (*Pack_t)(<span class="keyword">const</span> S&amp;);</div>
-<div class="line"><a name="l01368"></a><span class="lineno"> 1368</span>&#160;    std::vector&lt;T&gt; vv(len);</div>
-<div class="line"><a name="l01369"></a><span class="lineno"> 1369</span>&#160;    std::transform(v, v+len, vv.begin(), *(Pack_t)&amp;Pack);</div>
-<div class="line"><a name="l01370"></a><span class="lineno"> 1370</span>&#160;    <span class="keywordflow">return</span> CreateVectorOfSortedStructs&lt;T&gt;(vv, len);</div>
-<div class="line"><a name="l01371"></a><span class="lineno"> 1371</span>&#160;  }</div>
-<div class="line"><a name="l01372"></a><span class="lineno"> 1372</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01373"></a><span class="lineno"> 1373</span>&#160;<span class="comment">  /// @cond FLATBUFFERS_INTERNAL</span></div>
-<div class="line"><a name="l01374"></a><span class="lineno"> 1374</span>&#160;<span class="comment"></span>  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l01375"></a><span class="lineno"> 1375</span>&#160;  <span class="keyword">struct </span>TableKeyComparator {</div>
-<div class="line"><a name="l01376"></a><span class="lineno"> 1376</span>&#160;  TableKeyComparator(<a class="code" href="classflatbuffers_1_1vector__downward.html">vector_downward</a>&amp; buf) : buf_(buf) {}</div>
-<div class="line"><a name="l01377"></a><span class="lineno"> 1377</span>&#160;    <span class="keywordtype">bool</span> operator()(<span class="keyword">const</span> Offset&lt;T&gt; &amp;a, <span class="keyword">const</span> Offset&lt;T&gt; &amp;b)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l01378"></a><span class="lineno"> 1378</span>&#160;      <span class="keyword">auto</span> table_a = <span class="keyword">reinterpret_cast&lt;</span>T *<span class="keyword">&gt;</span>(buf_.data_at(a.o));</div>
-<div class="line"><a name="l01379"></a><span class="lineno"> 1379</span>&#160;      <span class="keyword">auto</span> table_b = <span class="keyword">reinterpret_cast&lt;</span>T *<span class="keyword">&gt;</span>(buf_.data_at(b.o));</div>
-<div class="line"><a name="l01380"></a><span class="lineno"> 1380</span>&#160;      <span class="keywordflow">return</span> table_a-&gt;KeyCompareLessThan(table_b);</div>
-<div class="line"><a name="l01381"></a><span class="lineno"> 1381</span>&#160;    }</div>
-<div class="line"><a name="l01382"></a><span class="lineno"> 1382</span>&#160;    vector_downward&amp; buf_;</div>
-<div class="line"><a name="l01383"></a><span class="lineno"> 1383</span>&#160;</div>
-<div class="line"><a name="l01384"></a><span class="lineno"> 1384</span>&#160;  <span class="keyword">private</span>:</div>
-<div class="line"><a name="l01385"></a><span class="lineno"> 1385</span>&#160;    TableKeyComparator&amp; operator= (<span class="keyword">const</span> TableKeyComparator&amp;);</div>
-<div class="line"><a name="l01386"></a><span class="lineno"> 1386</span>&#160;  };<span class="comment"></span></div>
-<div class="line"><a name="l01387"></a><span class="lineno"> 1387</span>&#160;<span class="comment">  /// @endcond</span></div>
-<div class="line"><a name="l01388"></a><span class="lineno"> 1388</span>&#160;<span class="comment"></span><span class="comment"></span></div>
-<div class="line"><a name="l01389"></a><span class="lineno"> 1389</span>&#160;<span class="comment">  /// @brief Serialize an array of `table` offsets as a `vector` in the buffer</span></div>
-<div class="line"><a name="l01390"></a><span class="lineno"> 1390</span>&#160;<span class="comment">  /// in sorted order.</span></div>
-<div class="line"><a name="l01391"></a><span class="lineno"> 1391</span>&#160;<span class="comment">  /// @tparam T The data type that the offset refers to.</span></div>
-<div class="line"><a name="l01392"></a><span class="lineno"> 1392</span>&#160;<span class="comment">  /// @param[in] v An array of type `Offset&lt;T&gt;` that contains the `table`</span></div>
-<div class="line"><a name="l01393"></a><span class="lineno"> 1393</span>&#160;<span class="comment">  /// offsets to store in the buffer in sorted order.</span></div>
-<div class="line"><a name="l01394"></a><span class="lineno"> 1394</span>&#160;<span class="comment">  /// @param[in] len The number of elements to store in the `vector`.</span></div>
-<div class="line"><a name="l01395"></a><span class="lineno"> 1395</span>&#160;<span class="comment">  /// @return Returns a typed `Offset` into the serialized data indicating</span></div>
-<div class="line"><a name="l01396"></a><span class="lineno"> 1396</span>&#160;<span class="comment">  /// where the vector is stored.</span></div>
-<div class="line"><a name="l01397"></a><span class="lineno"><a class="line" href="classflatbuffers_1_1_flat_buffer_builder.html#a2130ef232ff405eebe2e7f184ecd06e6"> 1397</a></span>&#160;<span class="comment"></span>  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt; <a class="code" href="structflatbuffers_1_1_offset.html">Offset&lt;Vector&lt;Offset&lt;T&gt;</a>&gt;&gt; <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#a2130ef232ff405eebe2e7f184ecd06e6">CreateVectorOfSortedTables</a>(</div>
-<div class="line"><a name="l01398"></a><span class="lineno"> 1398</span>&#160;      <a class="code" href="structflatbuffers_1_1_offset.html">Offset&lt;T&gt;</a> *v, <span class="keywordtype">size_t</span> len) {</div>
-<div class="line"><a name="l01399"></a><span class="lineno"> 1399</span>&#160;    std::sort(v, v + len, TableKeyComparator&lt;T&gt;(buf_));</div>
-<div class="line"><a name="l01400"></a><span class="lineno"> 1400</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#a2cca5c89246a53e80e6ad9487f4c36f3">CreateVector</a>(v, len);</div>
-<div class="line"><a name="l01401"></a><span class="lineno"> 1401</span>&#160;  }</div>
-<div class="line"><a name="l01402"></a><span class="lineno"> 1402</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01403"></a><span class="lineno"> 1403</span>&#160;<span class="comment">  /// @brief Serialize an array of `table` offsets as a `vector` in the buffer</span></div>
-<div class="line"><a name="l01404"></a><span class="lineno"> 1404</span>&#160;<span class="comment">  /// in sorted order.</span></div>
-<div class="line"><a name="l01405"></a><span class="lineno"> 1405</span>&#160;<span class="comment">  /// @tparam T The data type that the offset refers to.</span></div>
-<div class="line"><a name="l01406"></a><span class="lineno"> 1406</span>&#160;<span class="comment">  /// @param[in] v An array of type `Offset&lt;T&gt;` that contains the `table`</span></div>
-<div class="line"><a name="l01407"></a><span class="lineno"> 1407</span>&#160;<span class="comment">  /// offsets to store in the buffer in sorted order.</span></div>
-<div class="line"><a name="l01408"></a><span class="lineno"> 1408</span>&#160;<span class="comment">  /// @return Returns a typed `Offset` into the serialized data indicating</span></div>
-<div class="line"><a name="l01409"></a><span class="lineno"> 1409</span>&#160;<span class="comment">  /// where the vector is stored.</span></div>
-<div class="line"><a name="l01410"></a><span class="lineno"><a class="line" href="classflatbuffers_1_1_flat_buffer_builder.html#ac64d11c219559ea51567eab556e13135"> 1410</a></span>&#160;<span class="comment"></span>  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt; <a class="code" href="structflatbuffers_1_1_offset.html">Offset&lt;Vector&lt;Offset&lt;T&gt;</a>&gt;&gt; <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#ac64d11c219559ea51567eab556e13135">CreateVectorOfSortedTables</a>(</div>
-<div class="line"><a name="l01411"></a><span class="lineno"> 1411</span>&#160;      std::vector&lt;<a class="code" href="structflatbuffers_1_1_offset.html">Offset&lt;T&gt;</a>&gt; *v) {</div>
-<div class="line"><a name="l01412"></a><span class="lineno"> 1412</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#a2130ef232ff405eebe2e7f184ecd06e6">CreateVectorOfSortedTables</a>(data(*v), v-&gt;size());</div>
-<div class="line"><a name="l01413"></a><span class="lineno"> 1413</span>&#160;  }</div>
-<div class="line"><a name="l01414"></a><span class="lineno"> 1414</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01415"></a><span class="lineno"> 1415</span>&#160;<span class="comment">  /// @brief Specialized version of `CreateVector` for non-copying use cases.</span></div>
-<div class="line"><a name="l01416"></a><span class="lineno"> 1416</span>&#160;<span class="comment">  /// Write the data any time later to the returned buffer pointer `buf`.</span></div>
-<div class="line"><a name="l01417"></a><span class="lineno"> 1417</span>&#160;<span class="comment">  /// @param[in] len The number of elements to store in the `vector`.</span></div>
-<div class="line"><a name="l01418"></a><span class="lineno"> 1418</span>&#160;<span class="comment">  /// @param[in] elemsize The size of each element in the `vector`.</span></div>
-<div class="line"><a name="l01419"></a><span class="lineno"> 1419</span>&#160;<span class="comment">  /// @param[out] buf A pointer to a `uint8_t` pointer that can be</span></div>
-<div class="line"><a name="l01420"></a><span class="lineno"> 1420</span>&#160;<span class="comment">  /// written to at a later time to serialize the data into a `vector`</span></div>
-<div class="line"><a name="l01421"></a><span class="lineno"> 1421</span>&#160;<span class="comment">  /// in the buffer.</span></div>
-<div class="line"><a name="l01422"></a><span class="lineno"><a class="line" href="classflatbuffers_1_1_flat_buffer_builder.html#ac2b96292fa0fb1534fe7fd218a094d0c"> 1422</a></span>&#160;<span class="comment"></span>  uoffset_t <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#ac2b96292fa0fb1534fe7fd218a094d0c">CreateUninitializedVector</a>(<span class="keywordtype">size_t</span> len, <span class="keywordtype">size_t</span> elemsize,</div>
-<div class="line"><a name="l01423"></a><span class="lineno"> 1423</span>&#160;                                      uint8_t **buf) {</div>
-<div class="line"><a name="l01424"></a><span class="lineno"> 1424</span>&#160;    NotNested();</div>
-<div class="line"><a name="l01425"></a><span class="lineno"> 1425</span>&#160;    StartVector(len, elemsize);</div>
-<div class="line"><a name="l01426"></a><span class="lineno"> 1426</span>&#160;    buf_.make_space(len * elemsize);</div>
-<div class="line"><a name="l01427"></a><span class="lineno"> 1427</span>&#160;    <span class="keyword">auto</span> vec_start = <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#ac1bfd609f7f736e9a37cedae77448b63">GetSize</a>();</div>
-<div class="line"><a name="l01428"></a><span class="lineno"> 1428</span>&#160;    <span class="keyword">auto</span> vec_end = EndVector(len);</div>
-<div class="line"><a name="l01429"></a><span class="lineno"> 1429</span>&#160;    *buf = buf_.data_at(vec_start);</div>
-<div class="line"><a name="l01430"></a><span class="lineno"> 1430</span>&#160;    <span class="keywordflow">return</span> vec_end;</div>
-<div class="line"><a name="l01431"></a><span class="lineno"> 1431</span>&#160;  }</div>
-<div class="line"><a name="l01432"></a><span class="lineno"> 1432</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01433"></a><span class="lineno"> 1433</span>&#160;<span class="comment">  /// @brief Specialized version of `CreateVector` for non-copying use cases.</span></div>
-<div class="line"><a name="l01434"></a><span class="lineno"> 1434</span>&#160;<span class="comment">  /// Write the data any time later to the returned buffer pointer `buf`.</span></div>
-<div class="line"><a name="l01435"></a><span class="lineno"> 1435</span>&#160;<span class="comment">  /// @tparam T The data type of the data that will be stored in the buffer</span></div>
-<div class="line"><a name="l01436"></a><span class="lineno"> 1436</span>&#160;<span class="comment">  /// as a `vector`.</span></div>
-<div class="line"><a name="l01437"></a><span class="lineno"> 1437</span>&#160;<span class="comment">  /// @param[in] len The number of elements to store in the `vector`.</span></div>
-<div class="line"><a name="l01438"></a><span class="lineno"> 1438</span>&#160;<span class="comment">  /// @param[out] buf A pointer to a pointer of type `T` that can be</span></div>
-<div class="line"><a name="l01439"></a><span class="lineno"> 1439</span>&#160;<span class="comment">  /// written to at a later time to serialize the data into a `vector`</span></div>
-<div class="line"><a name="l01440"></a><span class="lineno"> 1440</span>&#160;<span class="comment">  /// in the buffer.</span></div>
-<div class="line"><a name="l01441"></a><span class="lineno"><a class="line" href="classflatbuffers_1_1_flat_buffer_builder.html#a2305b63d367845972b51669dd995cc50"> 1441</a></span>&#160;<span class="comment"></span>  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt; <a class="code" href="structflatbuffers_1_1_offset.html">Offset&lt;Vector&lt;T&gt;</a>&gt; <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#a2305b63d367845972b51669dd995cc50">CreateUninitializedVector</a>(</div>
-<div class="line"><a name="l01442"></a><span class="lineno"> 1442</span>&#160;      <span class="keywordtype">size_t</span> len, T **buf) {</div>
-<div class="line"><a name="l01443"></a><span class="lineno"> 1443</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#ac2b96292fa0fb1534fe7fd218a094d0c">CreateUninitializedVector</a>(len, <span class="keyword">sizeof</span>(T),</div>
-<div class="line"><a name="l01444"></a><span class="lineno"> 1444</span>&#160;                                     reinterpret_cast&lt;uint8_t **&gt;(buf));</div>
-<div class="line"><a name="l01445"></a><span class="lineno"> 1445</span>&#160;  }</div>
-<div class="line"><a name="l01446"></a><span class="lineno"> 1446</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01447"></a><span class="lineno"> 1447</span>&#160;<span class="comment">  /// @brief Write a struct by itself, typically to be part of a union.</span></div>
-<div class="line"><a name="l01448"></a><span class="lineno"><a class="line" href="classflatbuffers_1_1_flat_buffer_builder.html#a43f51ba9c8f4f24ea2247a3979d095b8"> 1448</a></span>&#160;<span class="comment"></span>  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt; <a class="code" href="structflatbuffers_1_1_offset.html">Offset&lt;const T *&gt;</a> <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#a43f51ba9c8f4f24ea2247a3979d095b8">CreateStruct</a>(<span class="keyword">const</span> T &amp;structobj) {</div>
-<div class="line"><a name="l01449"></a><span class="lineno"> 1449</span>&#160;    Align(AlignOf&lt;T&gt;());</div>
-<div class="line"><a name="l01450"></a><span class="lineno"> 1450</span>&#160;    buf_.push_small(structobj);</div>
-<div class="line"><a name="l01451"></a><span class="lineno"> 1451</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="structflatbuffers_1_1_offset.html">Offset&lt;const T *&gt;</a>(<a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#ac1bfd609f7f736e9a37cedae77448b63">GetSize</a>());</div>
-<div class="line"><a name="l01452"></a><span class="lineno"> 1452</span>&#160;  }</div>
-<div class="line"><a name="l01453"></a><span class="lineno"> 1453</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01454"></a><span class="lineno"> 1454</span>&#160;<span class="comment">  /// @brief The length of a FlatBuffer file header.</span></div>
-<div class="line"><a name="l01455"></a><span class="lineno"><a class="line" href="classflatbuffers_1_1_flat_buffer_builder.html#af8c7583c92e1d1d6f438977da5158d19"> 1455</a></span>&#160;<span class="comment"></span>  <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">size_t</span> <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#af8c7583c92e1d1d6f438977da5158d19">kFileIdentifierLength</a> = 4;</div>
-<div class="line"><a name="l01456"></a><span class="lineno"> 1456</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01457"></a><span class="lineno"> 1457</span>&#160;<span class="comment">  /// @brief Finish serializing a buffer by writing the root offset.</span></div>
-<div class="line"><a name="l01458"></a><span class="lineno"> 1458</span>&#160;<span class="comment">  /// @param[in] file_identifier If a `file_identifier` is given, the buffer</span></div>
-<div class="line"><a name="l01459"></a><span class="lineno"> 1459</span>&#160;<span class="comment">  /// will be prefixed with a standard FlatBuffers file header.</span></div>
-<div class="line"><a name="l01460"></a><span class="lineno"><a class="line" href="classflatbuffers_1_1_flat_buffer_builder.html#a0c9e507b373d598b51052fab4fa34912"> 1460</a></span>&#160;<span class="comment"></span>  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt; <span class="keywordtype">void</span> <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#a0c9e507b373d598b51052fab4fa34912">Finish</a>(<a class="code" href="structflatbuffers_1_1_offset.html">Offset&lt;T&gt;</a> root,</div>
-<div class="line"><a name="l01461"></a><span class="lineno"> 1461</span>&#160;                                   <span class="keyword">const</span> <span class="keywordtype">char</span> *file_identifier = <span class="keyword">nullptr</span>) {</div>
-<div class="line"><a name="l01462"></a><span class="lineno"> 1462</span>&#160;</div>
-<div class="line"><a name="l01463"></a><span class="lineno"> 1463</span>&#160;    <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#a0c9e507b373d598b51052fab4fa34912">Finish</a>(root.o, file_identifier, <span class="keyword">false</span>);</div>
-<div class="line"><a name="l01464"></a><span class="lineno"> 1464</span>&#160;  }</div>
-<div class="line"><a name="l01465"></a><span class="lineno"> 1465</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01466"></a><span class="lineno"> 1466</span>&#160;<span class="comment">  /// @brief Finish a buffer with a 32 bit size field pre-fixed (size of the</span></div>
-<div class="line"><a name="l01467"></a><span class="lineno"> 1467</span>&#160;<span class="comment">  /// buffer following the size field). These buffers are NOT compatible</span></div>
-<div class="line"><a name="l01468"></a><span class="lineno"> 1468</span>&#160;<span class="comment">  /// with standard buffers created by Finish, i.e. you can&#39;t call GetRoot</span></div>
-<div class="line"><a name="l01469"></a><span class="lineno"> 1469</span>&#160;<span class="comment">  /// on them, you have to use GetSizePrefixedRoot instead.</span></div>
-<div class="line"><a name="l01470"></a><span class="lineno"> 1470</span>&#160;<span class="comment">  /// All &gt;32 bit quantities in this buffer will be aligned when the whole</span></div>
-<div class="line"><a name="l01471"></a><span class="lineno"> 1471</span>&#160;<span class="comment">  /// size pre-fixed buffer is aligned.</span></div>
-<div class="line"><a name="l01472"></a><span class="lineno"> 1472</span>&#160;<span class="comment">  /// These kinds of buffers are useful for creating a stream of FlatBuffers.</span></div>
-<div class="line"><a name="l01473"></a><span class="lineno"><a class="line" href="classflatbuffers_1_1_flat_buffer_builder.html#a7ba8462e408431054c99d25120326220"> 1473</a></span>&#160;<span class="comment"></span>  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt; <span class="keywordtype">void</span> <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#a7ba8462e408431054c99d25120326220">FinishSizePrefixed</a>(<a class="code" href="structflatbuffers_1_1_offset.html">Offset&lt;T&gt;</a> root,</div>
-<div class="line"><a name="l01474"></a><span class="lineno"> 1474</span>&#160;                                   <span class="keyword">const</span> <span class="keywordtype">char</span> *file_identifier = <span class="keyword">nullptr</span>) {</div>
-<div class="line"><a name="l01475"></a><span class="lineno"> 1475</span>&#160;    <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#a0c9e507b373d598b51052fab4fa34912">Finish</a>(root.o, file_identifier, <span class="keyword">true</span>);</div>
-<div class="line"><a name="l01476"></a><span class="lineno"> 1476</span>&#160;  }</div>
-<div class="line"><a name="l01477"></a><span class="lineno"> 1477</span>&#160;</div>
-<div class="line"><a name="l01478"></a><span class="lineno"> 1478</span>&#160; <span class="keyword">protected</span>:</div>
-<div class="line"><a name="l01479"></a><span class="lineno"> 1479</span>&#160;  <span class="comment">// You shouldn&#39;t really be copying instances of this class.</span></div>
-<div class="line"><a name="l01480"></a><span class="lineno"> 1480</span>&#160;  <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#ae4ab74f53187e6c3e6041d34e01904c4">FlatBufferBuilder</a>(<span class="keyword">const</span> <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html">FlatBufferBuilder</a> &amp;);</div>
-<div class="line"><a name="l01481"></a><span class="lineno"> 1481</span>&#160;  <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html">FlatBufferBuilder</a> &amp;operator=(<span class="keyword">const</span> <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html">FlatBufferBuilder</a> &amp;);</div>
-<div class="line"><a name="l01482"></a><span class="lineno"> 1482</span>&#160;</div>
-<div class="line"><a name="l01483"></a><span class="lineno"> 1483</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#a0c9e507b373d598b51052fab4fa34912">Finish</a>(uoffset_t root, <span class="keyword">const</span> <span class="keywordtype">char</span> *file_identifier, <span class="keywordtype">bool</span> size_prefix) {</div>
-<div class="line"><a name="l01484"></a><span class="lineno"> 1484</span>&#160;    NotNested();</div>
-<div class="line"><a name="l01485"></a><span class="lineno"> 1485</span>&#160;    <span class="comment">// This will cause the whole buffer to be aligned.</span></div>
-<div class="line"><a name="l01486"></a><span class="lineno"> 1486</span>&#160;    PreAlign((size_prefix ? <span class="keyword">sizeof</span>(uoffset_t) : 0) +</div>
-<div class="line"><a name="l01487"></a><span class="lineno"> 1487</span>&#160;             <span class="keyword">sizeof</span>(uoffset_t) +</div>
-<div class="line"><a name="l01488"></a><span class="lineno"> 1488</span>&#160;             (file_identifier ? <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#af8c7583c92e1d1d6f438977da5158d19">kFileIdentifierLength</a> : 0),</div>
-<div class="line"><a name="l01489"></a><span class="lineno"> 1489</span>&#160;             minalign_);</div>
-<div class="line"><a name="l01490"></a><span class="lineno"> 1490</span>&#160;    <span class="keywordflow">if</span> (file_identifier) {</div>
-<div class="line"><a name="l01491"></a><span class="lineno"> 1491</span>&#160;      assert(strlen(file_identifier) == <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#af8c7583c92e1d1d6f438977da5158d19">kFileIdentifierLength</a>);</div>
-<div class="line"><a name="l01492"></a><span class="lineno"> 1492</span>&#160;      PushBytes(reinterpret_cast&lt;const uint8_t *&gt;(file_identifier),</div>
-<div class="line"><a name="l01493"></a><span class="lineno"> 1493</span>&#160;                <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#af8c7583c92e1d1d6f438977da5158d19">kFileIdentifierLength</a>);</div>
-<div class="line"><a name="l01494"></a><span class="lineno"> 1494</span>&#160;    }</div>
-<div class="line"><a name="l01495"></a><span class="lineno"> 1495</span>&#160;    PushElement(ReferTo(root));  <span class="comment">// Location of root.</span></div>
-<div class="line"><a name="l01496"></a><span class="lineno"> 1496</span>&#160;    <span class="keywordflow">if</span> (size_prefix) {</div>
-<div class="line"><a name="l01497"></a><span class="lineno"> 1497</span>&#160;      PushElement(<a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#ac1bfd609f7f736e9a37cedae77448b63">GetSize</a>());</div>
-<div class="line"><a name="l01498"></a><span class="lineno"> 1498</span>&#160;    }</div>
-<div class="line"><a name="l01499"></a><span class="lineno"> 1499</span>&#160;    finished = <span class="keyword">true</span>;</div>
-<div class="line"><a name="l01500"></a><span class="lineno"> 1500</span>&#160;  }</div>
-<div class="line"><a name="l01501"></a><span class="lineno"> 1501</span>&#160;</div>
-<div class="line"><a name="l01502"></a><span class="lineno"><a class="line" href="structflatbuffers_1_1_flat_buffer_builder_1_1_field_loc.html"> 1502</a></span>&#160;  <span class="keyword">struct </span><a class="code" href="structflatbuffers_1_1_flat_buffer_builder_1_1_field_loc.html">FieldLoc</a> {</div>
-<div class="line"><a name="l01503"></a><span class="lineno"> 1503</span>&#160;    uoffset_t off;</div>
-<div class="line"><a name="l01504"></a><span class="lineno"> 1504</span>&#160;    voffset_t id;</div>
-<div class="line"><a name="l01505"></a><span class="lineno"> 1505</span>&#160;  };</div>
-<div class="line"><a name="l01506"></a><span class="lineno"> 1506</span>&#160;</div>
-<div class="line"><a name="l01507"></a><span class="lineno"> 1507</span>&#160;  <a class="code" href="classflatbuffers_1_1vector__downward.html">vector_downward</a> buf_;</div>
-<div class="line"><a name="l01508"></a><span class="lineno"> 1508</span>&#160;</div>
-<div class="line"><a name="l01509"></a><span class="lineno"> 1509</span>&#160;  <span class="comment">// Accumulating offsets of table members while it is being built.</span></div>
-<div class="line"><a name="l01510"></a><span class="lineno"> 1510</span>&#160;  std::vector&lt;FieldLoc&gt; offsetbuf_;</div>
-<div class="line"><a name="l01511"></a><span class="lineno"> 1511</span>&#160;  <span class="comment">// Track how much of the vtable is in use, so we can output the most compact</span></div>
-<div class="line"><a name="l01512"></a><span class="lineno"> 1512</span>&#160;  <span class="comment">// possible vtable.</span></div>
-<div class="line"><a name="l01513"></a><span class="lineno"> 1513</span>&#160;  voffset_t max_voffset_;</div>
-<div class="line"><a name="l01514"></a><span class="lineno"> 1514</span>&#160;</div>
-<div class="line"><a name="l01515"></a><span class="lineno"> 1515</span>&#160;  <span class="comment">// Ensure objects are not nested.</span></div>
-<div class="line"><a name="l01516"></a><span class="lineno"> 1516</span>&#160;  <span class="keywordtype">bool</span> nested;</div>
-<div class="line"><a name="l01517"></a><span class="lineno"> 1517</span>&#160;</div>
-<div class="line"><a name="l01518"></a><span class="lineno"> 1518</span>&#160;  <span class="comment">// Ensure the buffer is finished before it is being accessed.</span></div>
-<div class="line"><a name="l01519"></a><span class="lineno"> 1519</span>&#160;  <span class="keywordtype">bool</span> finished;</div>
-<div class="line"><a name="l01520"></a><span class="lineno"> 1520</span>&#160;</div>
-<div class="line"><a name="l01521"></a><span class="lineno"> 1521</span>&#160;  std::vector&lt;uoffset_t&gt; vtables_;  <span class="comment">// todo: Could make this into a map?</span></div>
-<div class="line"><a name="l01522"></a><span class="lineno"> 1522</span>&#160;</div>
-<div class="line"><a name="l01523"></a><span class="lineno"> 1523</span>&#160;  <span class="keywordtype">size_t</span> minalign_;</div>
-<div class="line"><a name="l01524"></a><span class="lineno"> 1524</span>&#160;</div>
-<div class="line"><a name="l01525"></a><span class="lineno"> 1525</span>&#160;  <span class="keywordtype">bool</span> force_defaults_;  <span class="comment">// Serialize values equal to their defaults anyway.</span></div>
-<div class="line"><a name="l01526"></a><span class="lineno"> 1526</span>&#160;</div>
-<div class="line"><a name="l01527"></a><span class="lineno"> 1527</span>&#160;  <span class="keywordtype">bool</span> dedup_vtables_;</div>
-<div class="line"><a name="l01528"></a><span class="lineno"> 1528</span>&#160;</div>
-<div class="line"><a name="l01529"></a><span class="lineno"><a class="line" href="structflatbuffers_1_1_flat_buffer_builder_1_1_string_offset_compare.html"> 1529</a></span>&#160;  <span class="keyword">struct </span><a class="code" href="structflatbuffers_1_1_flat_buffer_builder_1_1_string_offset_compare.html">StringOffsetCompare</a> {</div>
-<div class="line"><a name="l01530"></a><span class="lineno"> 1530</span>&#160;    <a class="code" href="structflatbuffers_1_1_flat_buffer_builder_1_1_string_offset_compare.html">StringOffsetCompare</a>(<span class="keyword">const</span> <a class="code" href="classflatbuffers_1_1vector__downward.html">vector_downward</a> &amp;buf) : buf_(&amp;buf) {}</div>
-<div class="line"><a name="l01531"></a><span class="lineno"> 1531</span>&#160;    <span class="keywordtype">bool</span> operator() (<span class="keyword">const</span> <a class="code" href="structflatbuffers_1_1_offset.html">Offset&lt;String&gt;</a> &amp;a, <span class="keyword">const</span> <a class="code" href="structflatbuffers_1_1_offset.html">Offset&lt;String&gt;</a> &amp;b)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l01532"></a><span class="lineno"> 1532</span>&#160;      <span class="keyword">auto</span> stra = <span class="keyword">reinterpret_cast&lt;</span><span class="keyword">const </span><a class="code" href="structflatbuffers_1_1_string.html">String</a> *<span class="keyword">&gt;</span>(buf_-&gt;data_at(a.o));</div>
-<div class="line"><a name="l01533"></a><span class="lineno"> 1533</span>&#160;      <span class="keyword">auto</span> strb = <span class="keyword">reinterpret_cast&lt;</span><span class="keyword">const </span><a class="code" href="structflatbuffers_1_1_string.html">String</a> *<span class="keyword">&gt;</span>(buf_-&gt;data_at(b.o));</div>
-<div class="line"><a name="l01534"></a><span class="lineno"> 1534</span>&#160;      <span class="keywordflow">return</span> strncmp(stra-&gt;c_str(), strb-&gt;c_str(),</div>
-<div class="line"><a name="l01535"></a><span class="lineno"> 1535</span>&#160;                     (std::min)(stra-&gt;size(), strb-&gt;size()) + 1) &lt; 0;</div>
-<div class="line"><a name="l01536"></a><span class="lineno"> 1536</span>&#160;    }</div>
-<div class="line"><a name="l01537"></a><span class="lineno"> 1537</span>&#160;    <span class="keyword">const</span> <a class="code" href="classflatbuffers_1_1vector__downward.html">vector_downward</a> *buf_;</div>
-<div class="line"><a name="l01538"></a><span class="lineno"> 1538</span>&#160;  };</div>
-<div class="line"><a name="l01539"></a><span class="lineno"> 1539</span>&#160;</div>
-<div class="line"><a name="l01540"></a><span class="lineno"> 1540</span>&#160;  <span class="comment">// For use with CreateSharedString. Instantiated on first use only.</span></div>
-<div class="line"><a name="l01541"></a><span class="lineno"> 1541</span>&#160;  <span class="keyword">typedef</span> std::set&lt;Offset&lt;String&gt;, <a class="code" href="structflatbuffers_1_1_flat_buffer_builder_1_1_string_offset_compare.html">StringOffsetCompare</a>&gt; StringOffsetMap;</div>
-<div class="line"><a name="l01542"></a><span class="lineno"> 1542</span>&#160;  StringOffsetMap *string_pool;</div>
-<div class="line"><a name="l01543"></a><span class="lineno"> 1543</span>&#160;</div>
-<div class="line"><a name="l01544"></a><span class="lineno"> 1544</span>&#160; <span class="keyword">private</span>:</div>
-<div class="line"><a name="l01545"></a><span class="lineno"> 1545</span>&#160;  <span class="comment">// Allocates space for a vector of structures.</span></div>
-<div class="line"><a name="l01546"></a><span class="lineno"> 1546</span>&#160;  <span class="comment">// Must be completed with EndVectorOfStructs().</span></div>
-<div class="line"><a name="l01547"></a><span class="lineno"> 1547</span>&#160;  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt; T* StartVectorOfStructs(<span class="keywordtype">size_t</span> vector_size) {</div>
-<div class="line"><a name="l01548"></a><span class="lineno"> 1548</span>&#160;    StartVector(vector_size * <span class="keyword">sizeof</span>(T) / AlignOf&lt;T&gt;(), AlignOf&lt;T&gt;());</div>
-<div class="line"><a name="l01549"></a><span class="lineno"> 1549</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">reinterpret_cast&lt;</span>T *<span class="keyword">&gt;</span>(buf_.make_space(vector_size * <span class="keyword">sizeof</span>(T)));</div>
-<div class="line"><a name="l01550"></a><span class="lineno"> 1550</span>&#160;  }</div>
-<div class="line"><a name="l01551"></a><span class="lineno"> 1551</span>&#160;</div>
-<div class="line"><a name="l01552"></a><span class="lineno"> 1552</span>&#160;  <span class="comment">// End the vector of structues in the flatbuffers.</span></div>
-<div class="line"><a name="l01553"></a><span class="lineno"> 1553</span>&#160;  <span class="comment">// Vector should have previously be started with StartVectorOfStructs().</span></div>
-<div class="line"><a name="l01554"></a><span class="lineno"> 1554</span>&#160;  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt; <a class="code" href="structflatbuffers_1_1_offset.html">Offset&lt;Vector&lt;const T *&gt;</a>&gt; EndVectorOfStructs(</div>
-<div class="line"><a name="l01555"></a><span class="lineno"> 1555</span>&#160;      <span class="keywordtype">size_t</span> vector_size) {</div>
-<div class="line"><a name="l01556"></a><span class="lineno"> 1556</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="structflatbuffers_1_1_offset.html">Offset&lt;Vector&lt;const T *&gt;</a>&gt;(EndVector(vector_size));</div>
-<div class="line"><a name="l01557"></a><span class="lineno"> 1557</span>&#160;  }</div>
-<div class="line"><a name="l01558"></a><span class="lineno"> 1558</span>&#160;};<span class="comment"></span></div>
-<div class="line"><a name="l01559"></a><span class="lineno"> 1559</span>&#160;<span class="comment">/// @}</span></div>
-<div class="line"><a name="l01560"></a><span class="lineno"> 1560</span>&#160;<span class="comment"></span><span class="comment"></span></div>
-<div class="line"><a name="l01561"></a><span class="lineno"> 1561</span>&#160;<span class="comment">/// @cond FLATBUFFERS_INTERNAL</span></div>
-<div class="line"><a name="l01562"></a><span class="lineno"> 1562</span>&#160;<span class="comment"></span><span class="comment">// Helpers to get a typed pointer to the root object contained in the buffer.</span></div>
-<div class="line"><a name="l01563"></a><span class="lineno"> 1563</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt; T *GetMutableRoot(<span class="keywordtype">void</span> *buf) {</div>
-<div class="line"><a name="l01564"></a><span class="lineno"> 1564</span>&#160;  EndianCheck();</div>
-<div class="line"><a name="l01565"></a><span class="lineno"> 1565</span>&#160;  <span class="keywordflow">return</span> <span class="keyword">reinterpret_cast&lt;</span>T *<span class="keyword">&gt;</span>(<span class="keyword">reinterpret_cast&lt;</span>uint8_t *<span class="keyword">&gt;</span>(buf) +</div>
-<div class="line"><a name="l01566"></a><span class="lineno"> 1566</span>&#160;    EndianScalar(*reinterpret_cast&lt;uoffset_t *&gt;(buf)));</div>
-<div class="line"><a name="l01567"></a><span class="lineno"> 1567</span>&#160;}</div>
-<div class="line"><a name="l01568"></a><span class="lineno"> 1568</span>&#160;</div>
-<div class="line"><a name="l01569"></a><span class="lineno"> 1569</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt; <span class="keyword">const</span> T *GetRoot(<span class="keyword">const</span> <span class="keywordtype">void</span> *buf) {</div>
-<div class="line"><a name="l01570"></a><span class="lineno"> 1570</span>&#160;  <span class="keywordflow">return</span> GetMutableRoot&lt;T&gt;(<span class="keyword">const_cast&lt;</span><span class="keywordtype">void</span> *<span class="keyword">&gt;</span>(buf));</div>
-<div class="line"><a name="l01571"></a><span class="lineno"> 1571</span>&#160;}</div>
-<div class="line"><a name="l01572"></a><span class="lineno"> 1572</span>&#160;</div>
-<div class="line"><a name="l01573"></a><span class="lineno"> 1573</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt; <span class="keyword">const</span> T *GetSizePrefixedRoot(<span class="keyword">const</span> <span class="keywordtype">void</span> *buf) {</div>
-<div class="line"><a name="l01574"></a><span class="lineno"> 1574</span>&#160;  <span class="keywordflow">return</span> GetRoot&lt;T&gt;(<span class="keyword">reinterpret_cast&lt;</span><span class="keyword">const </span>uint8_t *<span class="keyword">&gt;</span>(buf) + <span class="keyword">sizeof</span>(uoffset_t));</div>
-<div class="line"><a name="l01575"></a><span class="lineno"> 1575</span>&#160;}</div>
-<div class="line"><a name="l01576"></a><span class="lineno"> 1576</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01577"></a><span class="lineno"> 1577</span>&#160;<span class="comment">/// Helpers to get a typed pointer to objects that are currently being built.</span></div>
-<div class="line"><a name="l01578"></a><span class="lineno"> 1578</span>&#160;<span class="comment">/// @warning Creating new objects will lead to reallocations and invalidates</span></div>
-<div class="line"><a name="l01579"></a><span class="lineno"> 1579</span>&#160;<span class="comment">/// the pointer!</span></div>
-<div class="line"><a name="l01580"></a><span class="lineno"> 1580</span>&#160;<span class="comment"></span><span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt; T *GetMutableTemporaryPointer(FlatBufferBuilder &amp;fbb,</div>
-<div class="line"><a name="l01581"></a><span class="lineno"> 1581</span>&#160;                                                   Offset&lt;T&gt; offset) {</div>
-<div class="line"><a name="l01582"></a><span class="lineno"> 1582</span>&#160;  <span class="keywordflow">return</span> <span class="keyword">reinterpret_cast&lt;</span>T *<span class="keyword">&gt;</span>(fbb.GetCurrentBufferPointer() +</div>
-<div class="line"><a name="l01583"></a><span class="lineno"> 1583</span>&#160;    fbb.GetSize() - offset.o);</div>
-<div class="line"><a name="l01584"></a><span class="lineno"> 1584</span>&#160;}</div>
-<div class="line"><a name="l01585"></a><span class="lineno"> 1585</span>&#160;</div>
-<div class="line"><a name="l01586"></a><span class="lineno"> 1586</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt; <span class="keyword">const</span> T *GetTemporaryPointer(FlatBufferBuilder &amp;fbb,</div>
-<div class="line"><a name="l01587"></a><span class="lineno"> 1587</span>&#160;                                                  Offset&lt;T&gt; offset) {</div>
-<div class="line"><a name="l01588"></a><span class="lineno"> 1588</span>&#160;  <span class="keywordflow">return</span> GetMutableTemporaryPointer&lt;T&gt;(fbb, offset);</div>
-<div class="line"><a name="l01589"></a><span class="lineno"> 1589</span>&#160;}</div>
-<div class="line"><a name="l01590"></a><span class="lineno"> 1590</span>&#160;</div>
-<div class="line"><a name="l01591"></a><span class="lineno"> 1591</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01592"></a><span class="lineno"> 1592</span>&#160;<span class="comment">/// @brief Get a pointer to the the file_identifier section of the buffer.</span></div>
-<div class="line"><a name="l01593"></a><span class="lineno"> 1593</span>&#160;<span class="comment">/// @return Returns a const char pointer to the start of the file_identifier</span></div>
-<div class="line"><a name="l01594"></a><span class="lineno"> 1594</span>&#160;<span class="comment">/// characters in the buffer.  The returned char * has length</span></div>
-<div class="line"><a name="l01595"></a><span class="lineno"> 1595</span>&#160;<span class="comment">/// &#39;flatbuffers::FlatBufferBuilder::kFileIdentifierLength&#39;.</span></div>
-<div class="line"><a name="l01596"></a><span class="lineno"> 1596</span>&#160;<span class="comment">/// This function is UNDEFINED for FlatBuffers whose schema does not include</span></div>
-<div class="line"><a name="l01597"></a><span class="lineno"> 1597</span>&#160;<span class="comment">/// a file_identifier (likely points at padding or the start of a the root</span></div>
-<div class="line"><a name="l01598"></a><span class="lineno"> 1598</span>&#160;<span class="comment">/// vtable).</span></div>
-<div class="line"><a name="l01599"></a><span class="lineno"> 1599</span>&#160;<span class="comment"></span><span class="keyword">inline</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *GetBufferIdentifier(<span class="keyword">const</span> <span class="keywordtype">void</span> *buf) {</div>
-<div class="line"><a name="l01600"></a><span class="lineno"> 1600</span>&#160;  <span class="keywordflow">return</span> <span class="keyword">reinterpret_cast&lt;</span><span class="keyword">const </span><span class="keywordtype">char</span> *<span class="keyword">&gt;</span>(buf) + <span class="keyword">sizeof</span>(uoffset_t);</div>
-<div class="line"><a name="l01601"></a><span class="lineno"> 1601</span>&#160;}</div>
-<div class="line"><a name="l01602"></a><span class="lineno"> 1602</span>&#160;</div>
-<div class="line"><a name="l01603"></a><span class="lineno"> 1603</span>&#160;<span class="comment">// Helper to see if the identifier in a buffer has the expected value.</span></div>
-<div class="line"><a name="l01604"></a><span class="lineno"> 1604</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> BufferHasIdentifier(<span class="keyword">const</span> <span class="keywordtype">void</span> *buf, <span class="keyword">const</span> <span class="keywordtype">char</span> *identifier) {</div>
-<div class="line"><a name="l01605"></a><span class="lineno"> 1605</span>&#160;  <span class="keywordflow">return</span> strncmp(GetBufferIdentifier(buf),</div>
-<div class="line"><a name="l01606"></a><span class="lineno"> 1606</span>&#160;                 identifier, <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#af8c7583c92e1d1d6f438977da5158d19">FlatBufferBuilder::kFileIdentifierLength</a>) == 0;</div>
-<div class="line"><a name="l01607"></a><span class="lineno"> 1607</span>&#160;}</div>
-<div class="line"><a name="l01608"></a><span class="lineno"> 1608</span>&#160;</div>
-<div class="line"><a name="l01609"></a><span class="lineno"> 1609</span>&#160;<span class="comment">// Helper class to verify the integrity of a FlatBuffer</span></div>
-<div class="line"><a name="l01610"></a><span class="lineno"> 1610</span>&#160;<span class="keyword">class </span>Verifier FLATBUFFERS_FINAL_CLASS {</div>
-<div class="line"><a name="l01611"></a><span class="lineno"> 1611</span>&#160; <span class="keyword">public</span>:</div>
-<div class="line"><a name="l01612"></a><span class="lineno"> 1612</span>&#160;  Verifier(<span class="keyword">const</span> uint8_t *buf, <span class="keywordtype">size_t</span> buf_len, uoffset_t _max_depth = 64,</div>
-<div class="line"><a name="l01613"></a><span class="lineno"> 1613</span>&#160;           uoffset_t _max_tables = 1000000)</div>
-<div class="line"><a name="l01614"></a><span class="lineno"> 1614</span>&#160;    : buf_(buf), end_(buf + buf_len), depth_(0), max_depth_(_max_depth),</div>
-<div class="line"><a name="l01615"></a><span class="lineno"> 1615</span>&#160;      num_tables_(0), max_tables_(_max_tables)</div>
-<div class="line"><a name="l01616"></a><span class="lineno"> 1616</span>&#160;    #ifdef FLATBUFFERS_TRACK_VERIFIER_BUFFER_SIZE</div>
-<div class="line"><a name="l01617"></a><span class="lineno"> 1617</span>&#160;        , upper_bound_(buf)</div>
-<div class="line"><a name="l01618"></a><span class="lineno"> 1618</span>&#160;    #endif</div>
-<div class="line"><a name="l01619"></a><span class="lineno"> 1619</span>&#160;    {}</div>
-<div class="line"><a name="l01620"></a><span class="lineno"> 1620</span>&#160;</div>
-<div class="line"><a name="l01621"></a><span class="lineno"> 1621</span>&#160;  <span class="comment">// Central location where any verification failures register.</span></div>
-<div class="line"><a name="l01622"></a><span class="lineno"> 1622</span>&#160;  <span class="keywordtype">bool</span> Check(<span class="keywordtype">bool</span> ok)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l01623"></a><span class="lineno"> 1623</span>&#160;<span class="preprocessor">    #ifdef FLATBUFFERS_DEBUG_VERIFICATION_FAILURE</span></div>
-<div class="line"><a name="l01624"></a><span class="lineno"> 1624</span>&#160;      assert(ok);</div>
-<div class="line"><a name="l01625"></a><span class="lineno"> 1625</span>&#160;<span class="preprocessor">    #endif</span></div>
-<div class="line"><a name="l01626"></a><span class="lineno"> 1626</span>&#160;<span class="preprocessor">    #ifdef FLATBUFFERS_TRACK_VERIFIER_BUFFER_SIZE</span></div>
-<div class="line"><a name="l01627"></a><span class="lineno"> 1627</span>&#160;      <span class="keywordflow">if</span> (!ok)</div>
-<div class="line"><a name="l01628"></a><span class="lineno"> 1628</span>&#160;        upper_bound_ = buf_;</div>
-<div class="line"><a name="l01629"></a><span class="lineno"> 1629</span>&#160;<span class="preprocessor">    #endif</span></div>
-<div class="line"><a name="l01630"></a><span class="lineno"> 1630</span>&#160;    <span class="keywordflow">return</span> ok;</div>
-<div class="line"><a name="l01631"></a><span class="lineno"> 1631</span>&#160;  }</div>
-<div class="line"><a name="l01632"></a><span class="lineno"> 1632</span>&#160;</div>
-<div class="line"><a name="l01633"></a><span class="lineno"> 1633</span>&#160;  <span class="comment">// Verify any range within the buffer.</span></div>
-<div class="line"><a name="l01634"></a><span class="lineno"> 1634</span>&#160;  <span class="keywordtype">bool</span> Verify(<span class="keyword">const</span> <span class="keywordtype">void</span> *elem, <span class="keywordtype">size_t</span> elem_len)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l01635"></a><span class="lineno"> 1635</span>&#160;<span class="preprocessor">    #ifdef FLATBUFFERS_TRACK_VERIFIER_BUFFER_SIZE</span></div>
-<div class="line"><a name="l01636"></a><span class="lineno"> 1636</span>&#160;      <span class="keyword">auto</span> upper_bound = <span class="keyword">reinterpret_cast&lt;</span><span class="keyword">const </span>uint8_t *<span class="keyword">&gt;</span>(elem) + elem_len;</div>
-<div class="line"><a name="l01637"></a><span class="lineno"> 1637</span>&#160;      <span class="keywordflow">if</span> (upper_bound_ &lt; upper_bound)</div>
-<div class="line"><a name="l01638"></a><span class="lineno"> 1638</span>&#160;        upper_bound_ =  upper_bound;</div>
-<div class="line"><a name="l01639"></a><span class="lineno"> 1639</span>&#160;<span class="preprocessor">    #endif</span></div>
-<div class="line"><a name="l01640"></a><span class="lineno"> 1640</span>&#160;    <span class="keywordflow">return</span> Check(elem_len &lt;= (<span class="keywordtype">size_t</span>) (end_ - buf_) &amp;&amp;</div>
-<div class="line"><a name="l01641"></a><span class="lineno"> 1641</span>&#160;                 elem &gt;= buf_ &amp;&amp;</div>
-<div class="line"><a name="l01642"></a><span class="lineno"> 1642</span>&#160;                 elem &lt;= end_ - elem_len);</div>
-<div class="line"><a name="l01643"></a><span class="lineno"> 1643</span>&#160;  }</div>
-<div class="line"><a name="l01644"></a><span class="lineno"> 1644</span>&#160;</div>
-<div class="line"><a name="l01645"></a><span class="lineno"> 1645</span>&#160;  <span class="comment">// Verify a range indicated by sizeof(T).</span></div>
-<div class="line"><a name="l01646"></a><span class="lineno"> 1646</span>&#160;  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt; <span class="keywordtype">bool</span> Verify(<span class="keyword">const</span> <span class="keywordtype">void</span> *elem)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l01647"></a><span class="lineno"> 1647</span>&#160;    <span class="keywordflow">return</span> Verify(elem, <span class="keyword">sizeof</span>(T));</div>
-<div class="line"><a name="l01648"></a><span class="lineno"> 1648</span>&#160;  }</div>
-<div class="line"><a name="l01649"></a><span class="lineno"> 1649</span>&#160;</div>
-<div class="line"><a name="l01650"></a><span class="lineno"> 1650</span>&#160;  <span class="comment">// Verify a pointer (may be NULL) of a table type.</span></div>
-<div class="line"><a name="l01651"></a><span class="lineno"> 1651</span>&#160;  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt; <span class="keywordtype">bool</span> VerifyTable(<span class="keyword">const</span> T *table) {</div>
-<div class="line"><a name="l01652"></a><span class="lineno"> 1652</span>&#160;    <span class="keywordflow">return</span> !table || table-&gt;Verify(*<span class="keyword">this</span>);</div>
-<div class="line"><a name="l01653"></a><span class="lineno"> 1653</span>&#160;  }</div>
-<div class="line"><a name="l01654"></a><span class="lineno"> 1654</span>&#160;</div>
-<div class="line"><a name="l01655"></a><span class="lineno"> 1655</span>&#160;  <span class="comment">// Verify a pointer (may be NULL) of any vector type.</span></div>
-<div class="line"><a name="l01656"></a><span class="lineno"> 1656</span>&#160;  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt; <span class="keywordtype">bool</span> Verify(<span class="keyword">const</span> Vector&lt;T&gt; *vec)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l01657"></a><span class="lineno"> 1657</span>&#160;    <span class="keyword">const</span> uint8_t *end;</div>
-<div class="line"><a name="l01658"></a><span class="lineno"> 1658</span>&#160;    <span class="keywordflow">return</span> !vec ||</div>
-<div class="line"><a name="l01659"></a><span class="lineno"> 1659</span>&#160;           VerifyVector(reinterpret_cast&lt;const uint8_t *&gt;(vec), <span class="keyword">sizeof</span>(T),</div>
-<div class="line"><a name="l01660"></a><span class="lineno"> 1660</span>&#160;                        &amp;end);</div>
-<div class="line"><a name="l01661"></a><span class="lineno"> 1661</span>&#160;  }</div>
-<div class="line"><a name="l01662"></a><span class="lineno"> 1662</span>&#160;</div>
-<div class="line"><a name="l01663"></a><span class="lineno"> 1663</span>&#160;  <span class="comment">// Verify a pointer (may be NULL) of a vector to struct.</span></div>
-<div class="line"><a name="l01664"></a><span class="lineno"> 1664</span>&#160;  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt; <span class="keywordtype">bool</span> Verify(<span class="keyword">const</span> Vector&lt;const T *&gt; *vec)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l01665"></a><span class="lineno"> 1665</span>&#160;    <span class="keywordflow">return</span> Verify(<span class="keyword">reinterpret_cast&lt;</span><span class="keyword">const </span>Vector&lt;T&gt; *<span class="keyword">&gt;</span>(vec));</div>
-<div class="line"><a name="l01666"></a><span class="lineno"> 1666</span>&#160;  }</div>
-<div class="line"><a name="l01667"></a><span class="lineno"> 1667</span>&#160;</div>
-<div class="line"><a name="l01668"></a><span class="lineno"> 1668</span>&#160;  <span class="comment">// Verify a pointer (may be NULL) to string.</span></div>
-<div class="line"><a name="l01669"></a><span class="lineno"> 1669</span>&#160;  <span class="keywordtype">bool</span> Verify(<span class="keyword">const</span> String *str)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l01670"></a><span class="lineno"> 1670</span>&#160;    <span class="keyword">const</span> uint8_t *end;</div>
-<div class="line"><a name="l01671"></a><span class="lineno"> 1671</span>&#160;    <span class="keywordflow">return</span> !str ||</div>
-<div class="line"><a name="l01672"></a><span class="lineno"> 1672</span>&#160;           (VerifyVector(reinterpret_cast&lt;const uint8_t *&gt;(str), 1, &amp;end) &amp;&amp;</div>
-<div class="line"><a name="l01673"></a><span class="lineno"> 1673</span>&#160;            Verify(end, 1) &amp;&amp;      <span class="comment">// Must have terminator</span></div>
-<div class="line"><a name="l01674"></a><span class="lineno"> 1674</span>&#160;            Check(*end == <span class="charliteral">&#39;\0&#39;</span>));  <span class="comment">// Terminating byte must be 0.</span></div>
-<div class="line"><a name="l01675"></a><span class="lineno"> 1675</span>&#160;  }</div>
-<div class="line"><a name="l01676"></a><span class="lineno"> 1676</span>&#160;</div>
-<div class="line"><a name="l01677"></a><span class="lineno"> 1677</span>&#160;  <span class="comment">// Common code between vectors and strings.</span></div>
-<div class="line"><a name="l01678"></a><span class="lineno"> 1678</span>&#160;  <span class="keywordtype">bool</span> VerifyVector(<span class="keyword">const</span> uint8_t *vec, <span class="keywordtype">size_t</span> elem_size,</div>
-<div class="line"><a name="l01679"></a><span class="lineno"> 1679</span>&#160;                    <span class="keyword">const</span> uint8_t **end)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l01680"></a><span class="lineno"> 1680</span>&#160;    <span class="comment">// Check we can read the size field.</span></div>
-<div class="line"><a name="l01681"></a><span class="lineno"> 1681</span>&#160;    <span class="keywordflow">if</span> (!Verify&lt;uoffset_t&gt;(vec)) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
-<div class="line"><a name="l01682"></a><span class="lineno"> 1682</span>&#160;    <span class="comment">// Check the whole array. If this is a string, the byte past the array</span></div>
-<div class="line"><a name="l01683"></a><span class="lineno"> 1683</span>&#160;    <span class="comment">// must be 0.</span></div>
-<div class="line"><a name="l01684"></a><span class="lineno"> 1684</span>&#160;    <span class="keyword">auto</span> size = ReadScalar&lt;uoffset_t&gt;(vec);</div>
-<div class="line"><a name="l01685"></a><span class="lineno"> 1685</span>&#160;    <span class="keyword">auto</span> max_elems = FLATBUFFERS_MAX_BUFFER_SIZE / elem_size;</div>
-<div class="line"><a name="l01686"></a><span class="lineno"> 1686</span>&#160;    <span class="keywordflow">if</span> (!Check(size &lt; max_elems))</div>
-<div class="line"><a name="l01687"></a><span class="lineno"> 1687</span>&#160;      <span class="keywordflow">return</span> <span class="keyword">false</span>;  <span class="comment">// Protect against byte_size overflowing.</span></div>
-<div class="line"><a name="l01688"></a><span class="lineno"> 1688</span>&#160;    <span class="keyword">auto</span> byte_size = <span class="keyword">sizeof</span>(size) + elem_size * size;</div>
-<div class="line"><a name="l01689"></a><span class="lineno"> 1689</span>&#160;    *end = vec + byte_size;</div>
-<div class="line"><a name="l01690"></a><span class="lineno"> 1690</span>&#160;    <span class="keywordflow">return</span> Verify(vec, byte_size);</div>
-<div class="line"><a name="l01691"></a><span class="lineno"> 1691</span>&#160;  }</div>
-<div class="line"><a name="l01692"></a><span class="lineno"> 1692</span>&#160;</div>
-<div class="line"><a name="l01693"></a><span class="lineno"> 1693</span>&#160;  <span class="comment">// Special case for string contents, after the above has been called.</span></div>
-<div class="line"><a name="l01694"></a><span class="lineno"> 1694</span>&#160;  <span class="keywordtype">bool</span> VerifyVectorOfStrings(<span class="keyword">const</span> Vector&lt;Offset&lt;String&gt;&gt; *vec)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l01695"></a><span class="lineno"> 1695</span>&#160;      <span class="keywordflow">if</span> (vec) {</div>
-<div class="line"><a name="l01696"></a><span class="lineno"> 1696</span>&#160;        <span class="keywordflow">for</span> (uoffset_t i = 0; i &lt; vec-&gt;size(); i++) {</div>
-<div class="line"><a name="l01697"></a><span class="lineno"> 1697</span>&#160;          <span class="keywordflow">if</span> (!Verify(vec-&gt;Get(i))) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
-<div class="line"><a name="l01698"></a><span class="lineno"> 1698</span>&#160;        }</div>
-<div class="line"><a name="l01699"></a><span class="lineno"> 1699</span>&#160;      }</div>
-<div class="line"><a name="l01700"></a><span class="lineno"> 1700</span>&#160;      <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
-<div class="line"><a name="l01701"></a><span class="lineno"> 1701</span>&#160;  }</div>
-<div class="line"><a name="l01702"></a><span class="lineno"> 1702</span>&#160;</div>
-<div class="line"><a name="l01703"></a><span class="lineno"> 1703</span>&#160;  <span class="comment">// Special case for table contents, after the above has been called.</span></div>
-<div class="line"><a name="l01704"></a><span class="lineno"> 1704</span>&#160;  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt; <span class="keywordtype">bool</span> VerifyVectorOfTables(<span class="keyword">const</span> Vector&lt;Offset&lt;T&gt;&gt; *vec) {</div>
-<div class="line"><a name="l01705"></a><span class="lineno"> 1705</span>&#160;    <span class="keywordflow">if</span> (vec) {</div>
-<div class="line"><a name="l01706"></a><span class="lineno"> 1706</span>&#160;      <span class="keywordflow">for</span> (uoffset_t i = 0; i &lt; vec-&gt;size(); i++) {</div>
-<div class="line"><a name="l01707"></a><span class="lineno"> 1707</span>&#160;        <span class="keywordflow">if</span> (!vec-&gt;Get(i)-&gt;Verify(*<span class="keyword">this</span>)) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
-<div class="line"><a name="l01708"></a><span class="lineno"> 1708</span>&#160;      }</div>
-<div class="line"><a name="l01709"></a><span class="lineno"> 1709</span>&#160;    }</div>
-<div class="line"><a name="l01710"></a><span class="lineno"> 1710</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
-<div class="line"><a name="l01711"></a><span class="lineno"> 1711</span>&#160;  }</div>
-<div class="line"><a name="l01712"></a><span class="lineno"> 1712</span>&#160;</div>
-<div class="line"><a name="l01713"></a><span class="lineno"> 1713</span>&#160;  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt; <span class="keywordtype">bool</span> VerifyBufferFromStart(<span class="keyword">const</span> <span class="keywordtype">char</span> *identifier,</div>
-<div class="line"><a name="l01714"></a><span class="lineno"> 1714</span>&#160;                                                  <span class="keyword">const</span> uint8_t *start) {</div>
-<div class="line"><a name="l01715"></a><span class="lineno"> 1715</span>&#160;    <span class="keywordflow">if</span> (identifier &amp;&amp;</div>
-<div class="line"><a name="l01716"></a><span class="lineno"> 1716</span>&#160;        (<span class="keywordtype">size_t</span>(end_ - start) &lt; 2 * <span class="keyword">sizeof</span>(flatbuffers::uoffset_t) ||</div>
-<div class="line"><a name="l01717"></a><span class="lineno"> 1717</span>&#160;         !BufferHasIdentifier(start, identifier))) {</div>
-<div class="line"><a name="l01718"></a><span class="lineno"> 1718</span>&#160;      <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
-<div class="line"><a name="l01719"></a><span class="lineno"> 1719</span>&#160;    }</div>
-<div class="line"><a name="l01720"></a><span class="lineno"> 1720</span>&#160;</div>
-<div class="line"><a name="l01721"></a><span class="lineno"> 1721</span>&#160;    <span class="comment">// Call T::Verify, which must be in the generated code for this type.</span></div>
-<div class="line"><a name="l01722"></a><span class="lineno"> 1722</span>&#160;    <span class="keyword">auto</span> o = VerifyOffset(start);</div>
-<div class="line"><a name="l01723"></a><span class="lineno"> 1723</span>&#160;    <span class="keywordflow">return</span> o &amp;&amp;</div>
-<div class="line"><a name="l01724"></a><span class="lineno"> 1724</span>&#160;      <span class="keyword">reinterpret_cast&lt;</span><span class="keyword">const </span>T *<span class="keyword">&gt;</span>(start + o)-&gt;</div>
-<div class="line"><a name="l01725"></a><span class="lineno"> 1725</span>&#160;        Verify(*<span class="keyword">this</span>)</div>
-<div class="line"><a name="l01726"></a><span class="lineno"> 1726</span>&#160;        <span class="preprocessor">#ifdef FLATBUFFERS_TRACK_VERIFIER_BUFFER_SIZE</span></div>
-<div class="line"><a name="l01727"></a><span class="lineno"> 1727</span>&#160;          &amp;&amp; GetComputedSize()</div>
-<div class="line"><a name="l01728"></a><span class="lineno"> 1728</span>&#160;        <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l01729"></a><span class="lineno"> 1729</span>&#160;            ;</div>
-<div class="line"><a name="l01730"></a><span class="lineno"> 1730</span>&#160;  }</div>
-<div class="line"><a name="l01731"></a><span class="lineno"> 1731</span>&#160;</div>
-<div class="line"><a name="l01732"></a><span class="lineno"> 1732</span>&#160;  <span class="comment">// Verify this whole buffer, starting with root type T.</span></div>
-<div class="line"><a name="l01733"></a><span class="lineno"> 1733</span>&#160;  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt; <span class="keywordtype">bool</span> VerifyBuffer() {</div>
-<div class="line"><a name="l01734"></a><span class="lineno"> 1734</span>&#160;    <span class="keywordflow">return</span> VerifyBuffer&lt;T&gt;(<span class="keyword">nullptr</span>);</div>
-<div class="line"><a name="l01735"></a><span class="lineno"> 1735</span>&#160;  }</div>
-<div class="line"><a name="l01736"></a><span class="lineno"> 1736</span>&#160;</div>
-<div class="line"><a name="l01737"></a><span class="lineno"> 1737</span>&#160;  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt; <span class="keywordtype">bool</span> VerifyBuffer(<span class="keyword">const</span> <span class="keywordtype">char</span> *identifier) {</div>
-<div class="line"><a name="l01738"></a><span class="lineno"> 1738</span>&#160;    <span class="keywordflow">return</span> VerifyBufferFromStart&lt;T&gt;(identifier, buf_);</div>
-<div class="line"><a name="l01739"></a><span class="lineno"> 1739</span>&#160;  }</div>
-<div class="line"><a name="l01740"></a><span class="lineno"> 1740</span>&#160;</div>
-<div class="line"><a name="l01741"></a><span class="lineno"> 1741</span>&#160;  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt; <span class="keywordtype">bool</span> VerifySizePrefixedBuffer(<span class="keyword">const</span> <span class="keywordtype">char</span> *identifier) {</div>
-<div class="line"><a name="l01742"></a><span class="lineno"> 1742</span>&#160;    <span class="keywordflow">return</span> Verify&lt;uoffset_t&gt;(buf_) &amp;&amp;</div>
-<div class="line"><a name="l01743"></a><span class="lineno"> 1743</span>&#160;           ReadScalar&lt;uoffset_t&gt;(buf_) == end_ - buf_ - <span class="keyword">sizeof</span>(uoffset_t) &amp;&amp;</div>
-<div class="line"><a name="l01744"></a><span class="lineno"> 1744</span>&#160;           VerifyBufferFromStart&lt;T&gt;(identifier, buf_ + <span class="keyword">sizeof</span>(uoffset_t));</div>
-<div class="line"><a name="l01745"></a><span class="lineno"> 1745</span>&#160;  }</div>
-<div class="line"><a name="l01746"></a><span class="lineno"> 1746</span>&#160;</div>
-<div class="line"><a name="l01747"></a><span class="lineno"> 1747</span>&#160;  uoffset_t VerifyOffset(<span class="keyword">const</span> uint8_t *start)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l01748"></a><span class="lineno"> 1748</span>&#160;    <span class="keywordflow">if</span> (!Verify&lt;uoffset_t&gt;(start)) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
-<div class="line"><a name="l01749"></a><span class="lineno"> 1749</span>&#160;    <span class="keyword">auto</span> o = ReadScalar&lt;uoffset_t&gt;(start);</div>
-<div class="line"><a name="l01750"></a><span class="lineno"> 1750</span>&#160;    Check(o != 0);</div>
-<div class="line"><a name="l01751"></a><span class="lineno"> 1751</span>&#160;    <span class="keywordflow">return</span> o;</div>
-<div class="line"><a name="l01752"></a><span class="lineno"> 1752</span>&#160;  }</div>
-<div class="line"><a name="l01753"></a><span class="lineno"> 1753</span>&#160;</div>
-<div class="line"><a name="l01754"></a><span class="lineno"> 1754</span>&#160;  <span class="comment">// Called at the start of a table to increase counters measuring data</span></div>
-<div class="line"><a name="l01755"></a><span class="lineno"> 1755</span>&#160;  <span class="comment">// structure depth and amount, and possibly bails out with false if</span></div>
-<div class="line"><a name="l01756"></a><span class="lineno"> 1756</span>&#160;  <span class="comment">// limits set by the constructor have been hit. Needs to be balanced</span></div>
-<div class="line"><a name="l01757"></a><span class="lineno"> 1757</span>&#160;  <span class="comment">// with EndTable().</span></div>
-<div class="line"><a name="l01758"></a><span class="lineno"> 1758</span>&#160;  <span class="keywordtype">bool</span> VerifyComplexity() {</div>
-<div class="line"><a name="l01759"></a><span class="lineno"> 1759</span>&#160;    depth_++;</div>
-<div class="line"><a name="l01760"></a><span class="lineno"> 1760</span>&#160;    num_tables_++;</div>
-<div class="line"><a name="l01761"></a><span class="lineno"> 1761</span>&#160;    <span class="keywordflow">return</span> Check(depth_ &lt;= max_depth_ &amp;&amp; num_tables_ &lt;= max_tables_);</div>
-<div class="line"><a name="l01762"></a><span class="lineno"> 1762</span>&#160;  }</div>
-<div class="line"><a name="l01763"></a><span class="lineno"> 1763</span>&#160;</div>
-<div class="line"><a name="l01764"></a><span class="lineno"> 1764</span>&#160;  <span class="comment">// Called at the end of a table to pop the depth count.</span></div>
-<div class="line"><a name="l01765"></a><span class="lineno"> 1765</span>&#160;  <span class="keywordtype">bool</span> EndTable() {</div>
-<div class="line"><a name="l01766"></a><span class="lineno"> 1766</span>&#160;    depth_--;</div>
-<div class="line"><a name="l01767"></a><span class="lineno"> 1767</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
-<div class="line"><a name="l01768"></a><span class="lineno"> 1768</span>&#160;  }</div>
-<div class="line"><a name="l01769"></a><span class="lineno"> 1769</span>&#160;</div>
-<div class="line"><a name="l01770"></a><span class="lineno"> 1770</span>&#160;<span class="preprocessor">  #ifdef FLATBUFFERS_TRACK_VERIFIER_BUFFER_SIZE</span></div>
-<div class="line"><a name="l01771"></a><span class="lineno"> 1771</span>&#160;  <span class="comment">// Returns the message size in bytes</span></div>
-<div class="line"><a name="l01772"></a><span class="lineno"> 1772</span>&#160;  <span class="keywordtype">size_t</span> GetComputedSize()<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l01773"></a><span class="lineno"> 1773</span>&#160;    uintptr_t size = upper_bound_ - buf_;</div>
-<div class="line"><a name="l01774"></a><span class="lineno"> 1774</span>&#160;    <span class="comment">// Align the size to uoffset_t</span></div>
-<div class="line"><a name="l01775"></a><span class="lineno"> 1775</span>&#160;    size = (size - 1 + <span class="keyword">sizeof</span>(uoffset_t)) &amp; ~(<span class="keyword">sizeof</span>(uoffset_t) - 1);</div>
-<div class="line"><a name="l01776"></a><span class="lineno"> 1776</span>&#160;    <span class="keywordflow">return</span> (buf_  + size &gt; end_) ?  0 : size;</div>
-<div class="line"><a name="l01777"></a><span class="lineno"> 1777</span>&#160;  }</div>
-<div class="line"><a name="l01778"></a><span class="lineno"> 1778</span>&#160;<span class="preprocessor">  #endif</span></div>
-<div class="line"><a name="l01779"></a><span class="lineno"> 1779</span>&#160;</div>
-<div class="line"><a name="l01780"></a><span class="lineno"> 1780</span>&#160; <span class="keyword">private</span>:</div>
-<div class="line"><a name="l01781"></a><span class="lineno"> 1781</span>&#160;  <span class="keyword">const</span> uint8_t *buf_;</div>
-<div class="line"><a name="l01782"></a><span class="lineno"> 1782</span>&#160;  <span class="keyword">const</span> uint8_t *end_;</div>
-<div class="line"><a name="l01783"></a><span class="lineno"> 1783</span>&#160;  uoffset_t depth_;</div>
-<div class="line"><a name="l01784"></a><span class="lineno"> 1784</span>&#160;  uoffset_t max_depth_;</div>
-<div class="line"><a name="l01785"></a><span class="lineno"> 1785</span>&#160;  uoffset_t num_tables_;</div>
-<div class="line"><a name="l01786"></a><span class="lineno"> 1786</span>&#160;  uoffset_t max_tables_;</div>
-<div class="line"><a name="l01787"></a><span class="lineno"> 1787</span>&#160;<span class="preprocessor">#ifdef FLATBUFFERS_TRACK_VERIFIER_BUFFER_SIZE</span></div>
-<div class="line"><a name="l01788"></a><span class="lineno"> 1788</span>&#160;  <span class="keyword">mutable</span> <span class="keyword">const</span> uint8_t *upper_bound_;</div>
-<div class="line"><a name="l01789"></a><span class="lineno"> 1789</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l01790"></a><span class="lineno"> 1790</span>&#160;};</div>
-<div class="line"><a name="l01791"></a><span class="lineno"> 1791</span>&#160;</div>
-<div class="line"><a name="l01792"></a><span class="lineno"> 1792</span>&#160;<span class="comment">// Convenient way to bundle a buffer and its length, to pass it around</span></div>
-<div class="line"><a name="l01793"></a><span class="lineno"> 1793</span>&#160;<span class="comment">// typed by its root.</span></div>
-<div class="line"><a name="l01794"></a><span class="lineno"> 1794</span>&#160;<span class="comment">// A BufferRef does not own its buffer.</span></div>
-<div class="line"><a name="l01795"></a><span class="lineno"> 1795</span>&#160;<span class="keyword">struct </span>BufferRefBase {};  <span class="comment">// for std::is_base_of</span></div>
-<div class="line"><a name="l01796"></a><span class="lineno"> 1796</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>BufferRef : BufferRefBase {</div>
-<div class="line"><a name="l01797"></a><span class="lineno"> 1797</span>&#160;  BufferRef() : buf(nullptr), len(0), must_free(false) {}</div>
-<div class="line"><a name="l01798"></a><span class="lineno"> 1798</span>&#160;  BufferRef(uint8_t *_buf, uoffset_t _len)</div>
-<div class="line"><a name="l01799"></a><span class="lineno"> 1799</span>&#160;    : buf(_buf), len(_len), must_free(false) {}</div>
-<div class="line"><a name="l01800"></a><span class="lineno"> 1800</span>&#160;</div>
-<div class="line"><a name="l01801"></a><span class="lineno"> 1801</span>&#160;  ~BufferRef() { <span class="keywordflow">if</span> (must_free) free(buf); }</div>
-<div class="line"><a name="l01802"></a><span class="lineno"> 1802</span>&#160;</div>
-<div class="line"><a name="l01803"></a><span class="lineno"> 1803</span>&#160;  <span class="keyword">const</span> T *GetRoot()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> flatbuffers::GetRoot&lt;T&gt;(buf); }</div>
-<div class="line"><a name="l01804"></a><span class="lineno"> 1804</span>&#160;</div>
-<div class="line"><a name="l01805"></a><span class="lineno"> 1805</span>&#160;  <span class="keywordtype">bool</span> Verify() {</div>
-<div class="line"><a name="l01806"></a><span class="lineno"> 1806</span>&#160;    Verifier verifier(buf, len);</div>
-<div class="line"><a name="l01807"></a><span class="lineno"> 1807</span>&#160;    <span class="keywordflow">return</span> verifier.VerifyBuffer&lt;T&gt;(<span class="keyword">nullptr</span>);</div>
-<div class="line"><a name="l01808"></a><span class="lineno"> 1808</span>&#160;  }</div>
-<div class="line"><a name="l01809"></a><span class="lineno"> 1809</span>&#160;</div>
-<div class="line"><a name="l01810"></a><span class="lineno"> 1810</span>&#160;  uint8_t *buf;</div>
-<div class="line"><a name="l01811"></a><span class="lineno"> 1811</span>&#160;  uoffset_t len;</div>
-<div class="line"><a name="l01812"></a><span class="lineno"> 1812</span>&#160;  <span class="keywordtype">bool</span> must_free;</div>
-<div class="line"><a name="l01813"></a><span class="lineno"> 1813</span>&#160;};</div>
-<div class="line"><a name="l01814"></a><span class="lineno"> 1814</span>&#160;</div>
-<div class="line"><a name="l01815"></a><span class="lineno"> 1815</span>&#160;<span class="comment">// &quot;structs&quot; are flat structures that do not have an offset table, thus</span></div>
-<div class="line"><a name="l01816"></a><span class="lineno"> 1816</span>&#160;<span class="comment">// always have all members present and do not support forwards/backwards</span></div>
-<div class="line"><a name="l01817"></a><span class="lineno"> 1817</span>&#160;<span class="comment">// compatible extensions.</span></div>
-<div class="line"><a name="l01818"></a><span class="lineno"> 1818</span>&#160;</div>
-<div class="line"><a name="l01819"></a><span class="lineno"> 1819</span>&#160;<span class="keyword">class </span>Struct FLATBUFFERS_FINAL_CLASS {</div>
-<div class="line"><a name="l01820"></a><span class="lineno"> 1820</span>&#160; <span class="keyword">public</span>:</div>
-<div class="line"><a name="l01821"></a><span class="lineno"> 1821</span>&#160;  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt; T GetField(uoffset_t o)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l01822"></a><span class="lineno"> 1822</span>&#160;    <span class="keywordflow">return</span> ReadScalar&lt;T&gt;(&amp;data_[o]);</div>
-<div class="line"><a name="l01823"></a><span class="lineno"> 1823</span>&#160;  }</div>
-<div class="line"><a name="l01824"></a><span class="lineno"> 1824</span>&#160;</div>
-<div class="line"><a name="l01825"></a><span class="lineno"> 1825</span>&#160;  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt; T GetStruct(uoffset_t o)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l01826"></a><span class="lineno"> 1826</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">reinterpret_cast&lt;</span>T<span class="keyword">&gt;</span>(&amp;data_[o]);</div>
-<div class="line"><a name="l01827"></a><span class="lineno"> 1827</span>&#160;  }</div>
-<div class="line"><a name="l01828"></a><span class="lineno"> 1828</span>&#160;</div>
-<div class="line"><a name="l01829"></a><span class="lineno"> 1829</span>&#160;  <span class="keyword">const</span> uint8_t *GetAddressOf(uoffset_t o)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> &amp;data_[o]; }</div>
-<div class="line"><a name="l01830"></a><span class="lineno"> 1830</span>&#160;  uint8_t *GetAddressOf(uoffset_t o) { <span class="keywordflow">return</span> &amp;data_[o]; }</div>
-<div class="line"><a name="l01831"></a><span class="lineno"> 1831</span>&#160;</div>
-<div class="line"><a name="l01832"></a><span class="lineno"> 1832</span>&#160; <span class="keyword">private</span>:</div>
-<div class="line"><a name="l01833"></a><span class="lineno"> 1833</span>&#160;  uint8_t data_[1];</div>
-<div class="line"><a name="l01834"></a><span class="lineno"> 1834</span>&#160;};</div>
-<div class="line"><a name="l01835"></a><span class="lineno"> 1835</span>&#160;</div>
-<div class="line"><a name="l01836"></a><span class="lineno"> 1836</span>&#160;<span class="comment">// &quot;tables&quot; use an offset table (possibly shared) that allows fields to be</span></div>
-<div class="line"><a name="l01837"></a><span class="lineno"> 1837</span>&#160;<span class="comment">// omitted and added at will, but uses an extra indirection to read.</span></div>
-<div class="line"><a name="l01838"></a><span class="lineno"> 1838</span>&#160;<span class="keyword">class </span>Table {</div>
-<div class="line"><a name="l01839"></a><span class="lineno"> 1839</span>&#160; <span class="keyword">public</span>:</div>
-<div class="line"><a name="l01840"></a><span class="lineno"> 1840</span>&#160;  <span class="keyword">const</span> uint8_t *GetVTable()<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l01841"></a><span class="lineno"> 1841</span>&#160;    <span class="keywordflow">return</span> data_ - ReadScalar&lt;soffset_t&gt;(data_);</div>
-<div class="line"><a name="l01842"></a><span class="lineno"> 1842</span>&#160;  }</div>
-<div class="line"><a name="l01843"></a><span class="lineno"> 1843</span>&#160;</div>
-<div class="line"><a name="l01844"></a><span class="lineno"> 1844</span>&#160;  <span class="comment">// This gets the field offset for any of the functions below it, or 0</span></div>
-<div class="line"><a name="l01845"></a><span class="lineno"> 1845</span>&#160;  <span class="comment">// if the field was not present.</span></div>
-<div class="line"><a name="l01846"></a><span class="lineno"> 1846</span>&#160;  voffset_t GetOptionalFieldOffset(voffset_t field)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l01847"></a><span class="lineno"> 1847</span>&#160;    <span class="comment">// The vtable offset is always at the start.</span></div>
-<div class="line"><a name="l01848"></a><span class="lineno"> 1848</span>&#160;    <span class="keyword">auto</span> vtable = GetVTable();</div>
-<div class="line"><a name="l01849"></a><span class="lineno"> 1849</span>&#160;    <span class="comment">// The first element is the size of the vtable (fields + type id + itself).</span></div>
-<div class="line"><a name="l01850"></a><span class="lineno"> 1850</span>&#160;    <span class="keyword">auto</span> vtsize = ReadScalar&lt;voffset_t&gt;(vtable);</div>
-<div class="line"><a name="l01851"></a><span class="lineno"> 1851</span>&#160;    <span class="comment">// If the field we&#39;re accessing is outside the vtable, we&#39;re reading older</span></div>
-<div class="line"><a name="l01852"></a><span class="lineno"> 1852</span>&#160;    <span class="comment">// data, so it&#39;s the same as if the offset was 0 (not present).</span></div>
-<div class="line"><a name="l01853"></a><span class="lineno"> 1853</span>&#160;    <span class="keywordflow">return</span> field &lt; vtsize ? ReadScalar&lt;voffset_t&gt;(vtable + field) : 0;</div>
-<div class="line"><a name="l01854"></a><span class="lineno"> 1854</span>&#160;  }</div>
-<div class="line"><a name="l01855"></a><span class="lineno"> 1855</span>&#160;</div>
-<div class="line"><a name="l01856"></a><span class="lineno"> 1856</span>&#160;  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt; T GetField(voffset_t field, T defaultval)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l01857"></a><span class="lineno"> 1857</span>&#160;    <span class="keyword">auto</span> field_offset = GetOptionalFieldOffset(field);</div>
-<div class="line"><a name="l01858"></a><span class="lineno"> 1858</span>&#160;    <span class="keywordflow">return</span> field_offset ? ReadScalar&lt;T&gt;(data_ + field_offset) : defaultval;</div>
-<div class="line"><a name="l01859"></a><span class="lineno"> 1859</span>&#160;  }</div>
-<div class="line"><a name="l01860"></a><span class="lineno"> 1860</span>&#160;</div>
-<div class="line"><a name="l01861"></a><span class="lineno"> 1861</span>&#160;  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> P&gt; P GetPointer(voffset_t field) {</div>
-<div class="line"><a name="l01862"></a><span class="lineno"> 1862</span>&#160;    <span class="keyword">auto</span> field_offset = GetOptionalFieldOffset(field);</div>
-<div class="line"><a name="l01863"></a><span class="lineno"> 1863</span>&#160;    <span class="keyword">auto</span> p = data_ + field_offset;</div>
-<div class="line"><a name="l01864"></a><span class="lineno"> 1864</span>&#160;    <span class="keywordflow">return</span> field_offset</div>
-<div class="line"><a name="l01865"></a><span class="lineno"> 1865</span>&#160;      ? <span class="keyword">reinterpret_cast&lt;</span>P<span class="keyword">&gt;</span>(p + ReadScalar&lt;uoffset_t&gt;(p))</div>
-<div class="line"><a name="l01866"></a><span class="lineno"> 1866</span>&#160;      : nullptr;</div>
-<div class="line"><a name="l01867"></a><span class="lineno"> 1867</span>&#160;  }</div>
-<div class="line"><a name="l01868"></a><span class="lineno"> 1868</span>&#160;  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> P&gt; P GetPointer(voffset_t field)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l01869"></a><span class="lineno"> 1869</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">const_cast&lt;</span>Table *<span class="keyword">&gt;</span>(<span class="keyword">this</span>)-&gt;GetPointer&lt;P&gt;(field);</div>
-<div class="line"><a name="l01870"></a><span class="lineno"> 1870</span>&#160;  }</div>
-<div class="line"><a name="l01871"></a><span class="lineno"> 1871</span>&#160;</div>
-<div class="line"><a name="l01872"></a><span class="lineno"> 1872</span>&#160;  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> P&gt; P GetStruct(voffset_t field)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l01873"></a><span class="lineno"> 1873</span>&#160;    <span class="keyword">auto</span> field_offset = GetOptionalFieldOffset(field);</div>
-<div class="line"><a name="l01874"></a><span class="lineno"> 1874</span>&#160;    <span class="keyword">auto</span> p = <span class="keyword">const_cast&lt;</span>uint8_t *<span class="keyword">&gt;</span>(data_ + field_offset);</div>
-<div class="line"><a name="l01875"></a><span class="lineno"> 1875</span>&#160;    <span class="keywordflow">return</span> field_offset ? <span class="keyword">reinterpret_cast&lt;</span>P<span class="keyword">&gt;</span>(p) : <span class="keyword">nullptr</span>;</div>
-<div class="line"><a name="l01876"></a><span class="lineno"> 1876</span>&#160;  }</div>
-<div class="line"><a name="l01877"></a><span class="lineno"> 1877</span>&#160;</div>
-<div class="line"><a name="l01878"></a><span class="lineno"> 1878</span>&#160;  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt; <span class="keywordtype">bool</span> SetField(voffset_t field, T val, T def) {</div>
-<div class="line"><a name="l01879"></a><span class="lineno"> 1879</span>&#160;    <span class="keyword">auto</span> field_offset = GetOptionalFieldOffset(field);</div>
-<div class="line"><a name="l01880"></a><span class="lineno"> 1880</span>&#160;    <span class="keywordflow">if</span> (!field_offset) <span class="keywordflow">return</span> val == def;</div>
-<div class="line"><a name="l01881"></a><span class="lineno"> 1881</span>&#160;    WriteScalar(data_ + field_offset, val);</div>
-<div class="line"><a name="l01882"></a><span class="lineno"> 1882</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
-<div class="line"><a name="l01883"></a><span class="lineno"> 1883</span>&#160;  }</div>
-<div class="line"><a name="l01884"></a><span class="lineno"> 1884</span>&#160;</div>
-<div class="line"><a name="l01885"></a><span class="lineno"> 1885</span>&#160;  <span class="keywordtype">bool</span> SetPointer(voffset_t field, <span class="keyword">const</span> uint8_t *val) {</div>
-<div class="line"><a name="l01886"></a><span class="lineno"> 1886</span>&#160;    <span class="keyword">auto</span> field_offset = GetOptionalFieldOffset(field);</div>
-<div class="line"><a name="l01887"></a><span class="lineno"> 1887</span>&#160;    <span class="keywordflow">if</span> (!field_offset) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
-<div class="line"><a name="l01888"></a><span class="lineno"> 1888</span>&#160;    WriteScalar(data_ + field_offset,</div>
-<div class="line"><a name="l01889"></a><span class="lineno"> 1889</span>&#160;                static_cast&lt;uoffset_t&gt;(val - (data_ + field_offset)));</div>
-<div class="line"><a name="l01890"></a><span class="lineno"> 1890</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
-<div class="line"><a name="l01891"></a><span class="lineno"> 1891</span>&#160;  }</div>
-<div class="line"><a name="l01892"></a><span class="lineno"> 1892</span>&#160;</div>
-<div class="line"><a name="l01893"></a><span class="lineno"> 1893</span>&#160;  uint8_t *GetAddressOf(voffset_t field) {</div>
-<div class="line"><a name="l01894"></a><span class="lineno"> 1894</span>&#160;    <span class="keyword">auto</span> field_offset = GetOptionalFieldOffset(field);</div>
-<div class="line"><a name="l01895"></a><span class="lineno"> 1895</span>&#160;    <span class="keywordflow">return</span> field_offset ? data_ + field_offset : <span class="keyword">nullptr</span>;</div>
-<div class="line"><a name="l01896"></a><span class="lineno"> 1896</span>&#160;  }</div>
-<div class="line"><a name="l01897"></a><span class="lineno"> 1897</span>&#160;  <span class="keyword">const</span> uint8_t *GetAddressOf(voffset_t field)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l01898"></a><span class="lineno"> 1898</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">const_cast&lt;</span>Table *<span class="keyword">&gt;</span>(<span class="keyword">this</span>)-&gt;GetAddressOf(field);</div>
-<div class="line"><a name="l01899"></a><span class="lineno"> 1899</span>&#160;  }</div>
-<div class="line"><a name="l01900"></a><span class="lineno"> 1900</span>&#160;</div>
-<div class="line"><a name="l01901"></a><span class="lineno"> 1901</span>&#160;  <span class="keywordtype">bool</span> CheckField(voffset_t field)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l01902"></a><span class="lineno"> 1902</span>&#160;    <span class="keywordflow">return</span> GetOptionalFieldOffset(field) != 0;</div>
-<div class="line"><a name="l01903"></a><span class="lineno"> 1903</span>&#160;  }</div>
-<div class="line"><a name="l01904"></a><span class="lineno"> 1904</span>&#160;</div>
-<div class="line"><a name="l01905"></a><span class="lineno"> 1905</span>&#160;  <span class="comment">// Verify the vtable of this table.</span></div>
-<div class="line"><a name="l01906"></a><span class="lineno"> 1906</span>&#160;  <span class="comment">// Call this once per table, followed by VerifyField once per field.</span></div>
-<div class="line"><a name="l01907"></a><span class="lineno"> 1907</span>&#160;  <span class="keywordtype">bool</span> VerifyTableStart(Verifier &amp;verifier)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l01908"></a><span class="lineno"> 1908</span>&#160;    <span class="comment">// Check the vtable offset.</span></div>
-<div class="line"><a name="l01909"></a><span class="lineno"> 1909</span>&#160;    <span class="keywordflow">if</span> (!verifier.Verify&lt;soffset_t&gt;(data_)) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
-<div class="line"><a name="l01910"></a><span class="lineno"> 1910</span>&#160;    <span class="keyword">auto</span> vtable = GetVTable();</div>
-<div class="line"><a name="l01911"></a><span class="lineno"> 1911</span>&#160;    <span class="comment">// Check the vtable size field, then check vtable fits in its entirety.</span></div>
-<div class="line"><a name="l01912"></a><span class="lineno"> 1912</span>&#160;    <span class="keywordflow">return</span> verifier.VerifyComplexity() &amp;&amp;</div>
-<div class="line"><a name="l01913"></a><span class="lineno"> 1913</span>&#160;           verifier.Verify&lt;voffset_t&gt;(vtable) &amp;&amp;</div>
-<div class="line"><a name="l01914"></a><span class="lineno"> 1914</span>&#160;           (ReadScalar&lt;voffset_t&gt;(vtable) &amp; (<span class="keyword">sizeof</span>(voffset_t) - 1)) == 0 &amp;&amp;</div>
-<div class="line"><a name="l01915"></a><span class="lineno"> 1915</span>&#160;           verifier.Verify(vtable, ReadScalar&lt;voffset_t&gt;(vtable));</div>
-<div class="line"><a name="l01916"></a><span class="lineno"> 1916</span>&#160;  }</div>
-<div class="line"><a name="l01917"></a><span class="lineno"> 1917</span>&#160;</div>
-<div class="line"><a name="l01918"></a><span class="lineno"> 1918</span>&#160;  <span class="comment">// Verify a particular field.</span></div>
-<div class="line"><a name="l01919"></a><span class="lineno"> 1919</span>&#160;  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt; <span class="keywordtype">bool</span> VerifyField(<span class="keyword">const</span> Verifier &amp;verifier,</div>
-<div class="line"><a name="l01920"></a><span class="lineno"> 1920</span>&#160;                                        voffset_t field)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l01921"></a><span class="lineno"> 1921</span>&#160;    <span class="comment">// Calling GetOptionalFieldOffset should be safe now thanks to</span></div>
-<div class="line"><a name="l01922"></a><span class="lineno"> 1922</span>&#160;    <span class="comment">// VerifyTable().</span></div>
-<div class="line"><a name="l01923"></a><span class="lineno"> 1923</span>&#160;    <span class="keyword">auto</span> field_offset = GetOptionalFieldOffset(field);</div>
-<div class="line"><a name="l01924"></a><span class="lineno"> 1924</span>&#160;    <span class="comment">// Check the actual field.</span></div>
-<div class="line"><a name="l01925"></a><span class="lineno"> 1925</span>&#160;    <span class="keywordflow">return</span> !field_offset || verifier.Verify&lt;T&gt;(data_ + field_offset);</div>
-<div class="line"><a name="l01926"></a><span class="lineno"> 1926</span>&#160;  }</div>
-<div class="line"><a name="l01927"></a><span class="lineno"> 1927</span>&#160;</div>
-<div class="line"><a name="l01928"></a><span class="lineno"> 1928</span>&#160;  <span class="comment">// VerifyField for required fields.</span></div>
-<div class="line"><a name="l01929"></a><span class="lineno"> 1929</span>&#160;  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt; <span class="keywordtype">bool</span> VerifyFieldRequired(<span class="keyword">const</span> Verifier &amp;verifier,</div>
-<div class="line"><a name="l01930"></a><span class="lineno"> 1930</span>&#160;                                                voffset_t field)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l01931"></a><span class="lineno"> 1931</span>&#160;    <span class="keyword">auto</span> field_offset = GetOptionalFieldOffset(field);</div>
-<div class="line"><a name="l01932"></a><span class="lineno"> 1932</span>&#160;    <span class="keywordflow">return</span> verifier.Check(field_offset != 0) &amp;&amp;</div>
-<div class="line"><a name="l01933"></a><span class="lineno"> 1933</span>&#160;           verifier.Verify&lt;T&gt;(data_ + field_offset);</div>
-<div class="line"><a name="l01934"></a><span class="lineno"> 1934</span>&#160;  }</div>
-<div class="line"><a name="l01935"></a><span class="lineno"> 1935</span>&#160;</div>
-<div class="line"><a name="l01936"></a><span class="lineno"> 1936</span>&#160;  <span class="comment">// Versions for offsets.</span></div>
-<div class="line"><a name="l01937"></a><span class="lineno"> 1937</span>&#160;  <span class="keywordtype">bool</span> VerifyOffset(<span class="keyword">const</span> Verifier &amp;verifier, voffset_t field)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l01938"></a><span class="lineno"> 1938</span>&#160;    <span class="keyword">auto</span> field_offset = GetOptionalFieldOffset(field);</div>
-<div class="line"><a name="l01939"></a><span class="lineno"> 1939</span>&#160;    <span class="keywordflow">return</span> !field_offset || verifier.VerifyOffset(data_ + field_offset);</div>
-<div class="line"><a name="l01940"></a><span class="lineno"> 1940</span>&#160;  }</div>
-<div class="line"><a name="l01941"></a><span class="lineno"> 1941</span>&#160;</div>
-<div class="line"><a name="l01942"></a><span class="lineno"> 1942</span>&#160;  <span class="keywordtype">bool</span> VerifyOffsetRequired(<span class="keyword">const</span> Verifier &amp;verifier, voffset_t field)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l01943"></a><span class="lineno"> 1943</span>&#160;    <span class="keyword">auto</span> field_offset = GetOptionalFieldOffset(field);</div>
-<div class="line"><a name="l01944"></a><span class="lineno"> 1944</span>&#160;    <span class="keywordflow">return</span> verifier.Check(field_offset != 0) &amp;&amp;</div>
-<div class="line"><a name="l01945"></a><span class="lineno"> 1945</span>&#160;           verifier.VerifyOffset(data_ + field_offset);</div>
-<div class="line"><a name="l01946"></a><span class="lineno"> 1946</span>&#160;  }</div>
-<div class="line"><a name="l01947"></a><span class="lineno"> 1947</span>&#160;</div>
-<div class="line"><a name="l01948"></a><span class="lineno"> 1948</span>&#160; <span class="keyword">private</span>:</div>
-<div class="line"><a name="l01949"></a><span class="lineno"> 1949</span>&#160;  <span class="comment">// private constructor &amp; copy constructor: you obtain instances of this</span></div>
-<div class="line"><a name="l01950"></a><span class="lineno"> 1950</span>&#160;  <span class="comment">// class by pointing to existing data only</span></div>
-<div class="line"><a name="l01951"></a><span class="lineno"> 1951</span>&#160;  Table();</div>
-<div class="line"><a name="l01952"></a><span class="lineno"> 1952</span>&#160;  Table(<span class="keyword">const</span> Table &amp;other);</div>
-<div class="line"><a name="l01953"></a><span class="lineno"> 1953</span>&#160;</div>
-<div class="line"><a name="l01954"></a><span class="lineno"> 1954</span>&#160;  uint8_t data_[1];</div>
-<div class="line"><a name="l01955"></a><span class="lineno"> 1955</span>&#160;};</div>
-<div class="line"><a name="l01956"></a><span class="lineno"> 1956</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l01957"></a><span class="lineno"> 1957</span>&#160;<span class="comment">/// @brief This can compute the start of a FlatBuffer from a root pointer, i.e.</span></div>
-<div class="line"><a name="l01958"></a><span class="lineno"> 1958</span>&#160;<span class="comment">/// it is the opposite transformation of GetRoot().</span></div>
-<div class="line"><a name="l01959"></a><span class="lineno"> 1959</span>&#160;<span class="comment">/// This may be useful if you want to pass on a root and have the recipient</span></div>
-<div class="line"><a name="l01960"></a><span class="lineno"> 1960</span>&#160;<span class="comment">/// delete the buffer afterwards.</span></div>
-<div class="line"><a name="l01961"></a><span class="lineno"> 1961</span>&#160;<span class="comment"></span><span class="keyword">inline</span> <span class="keyword">const</span> uint8_t *GetBufferStartFromRootPointer(<span class="keyword">const</span> <span class="keywordtype">void</span> *root) {</div>
-<div class="line"><a name="l01962"></a><span class="lineno"> 1962</span>&#160;  <span class="keyword">auto</span> table = <span class="keyword">reinterpret_cast&lt;</span><span class="keyword">const </span>Table *<span class="keyword">&gt;</span>(root);</div>
-<div class="line"><a name="l01963"></a><span class="lineno"> 1963</span>&#160;  <span class="keyword">auto</span> vtable = table-&gt;GetVTable();</div>
-<div class="line"><a name="l01964"></a><span class="lineno"> 1964</span>&#160;  <span class="comment">// Either the vtable is before the root or after the root.</span></div>
-<div class="line"><a name="l01965"></a><span class="lineno"> 1965</span>&#160;  <span class="keyword">auto</span> start = (std::min)(vtable, reinterpret_cast&lt;const uint8_t *&gt;(root));</div>
-<div class="line"><a name="l01966"></a><span class="lineno"> 1966</span>&#160;  <span class="comment">// Align to at least sizeof(uoffset_t).</span></div>
-<div class="line"><a name="l01967"></a><span class="lineno"> 1967</span>&#160;  start = <span class="keyword">reinterpret_cast&lt;</span><span class="keyword">const </span>uint8_t *<span class="keyword">&gt;</span>(</div>
-<div class="line"><a name="l01968"></a><span class="lineno"> 1968</span>&#160;            <span class="keyword">reinterpret_cast&lt;</span>uintptr_t<span class="keyword">&gt;</span>(start) &amp; ~(<span class="keyword">sizeof</span>(uoffset_t) - 1));</div>
-<div class="line"><a name="l01969"></a><span class="lineno"> 1969</span>&#160;  <span class="comment">// Additionally, there may be a file_identifier in the buffer, and the root</span></div>
-<div class="line"><a name="l01970"></a><span class="lineno"> 1970</span>&#160;  <span class="comment">// offset. The buffer may have been aligned to any size between</span></div>
-<div class="line"><a name="l01971"></a><span class="lineno"> 1971</span>&#160;  <span class="comment">// sizeof(uoffset_t) and FLATBUFFERS_MAX_ALIGNMENT (see &quot;force_align&quot;).</span></div>
-<div class="line"><a name="l01972"></a><span class="lineno"> 1972</span>&#160;  <span class="comment">// Sadly, the exact alignment is only known when constructing the buffer,</span></div>
-<div class="line"><a name="l01973"></a><span class="lineno"> 1973</span>&#160;  <span class="comment">// since it depends on the presence of values with said alignment properties.</span></div>
-<div class="line"><a name="l01974"></a><span class="lineno"> 1974</span>&#160;  <span class="comment">// So instead, we simply look at the next uoffset_t values (root,</span></div>
-<div class="line"><a name="l01975"></a><span class="lineno"> 1975</span>&#160;  <span class="comment">// file_identifier, and alignment padding) to see which points to the root.</span></div>
-<div class="line"><a name="l01976"></a><span class="lineno"> 1976</span>&#160;  <span class="comment">// None of the other values can &quot;impersonate&quot; the root since they will either</span></div>
-<div class="line"><a name="l01977"></a><span class="lineno"> 1977</span>&#160;  <span class="comment">// be 0 or four ASCII characters.</span></div>
-<div class="line"><a name="l01978"></a><span class="lineno"> 1978</span>&#160;  static_assert(<a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#af8c7583c92e1d1d6f438977da5158d19">FlatBufferBuilder::kFileIdentifierLength</a> == <span class="keyword">sizeof</span>(uoffset_t),</div>
-<div class="line"><a name="l01979"></a><span class="lineno"> 1979</span>&#160;                <span class="stringliteral">&quot;file_identifier is assumed to be the same size as uoffset_t&quot;</span>);</div>
-<div class="line"><a name="l01980"></a><span class="lineno"> 1980</span>&#160;  <span class="keywordflow">for</span> (<span class="keyword">auto</span> possible_roots = FLATBUFFERS_MAX_ALIGNMENT / <span class="keyword">sizeof</span>(uoffset_t) + 1;</div>
-<div class="line"><a name="l01981"></a><span class="lineno"> 1981</span>&#160;       possible_roots;</div>
-<div class="line"><a name="l01982"></a><span class="lineno"> 1982</span>&#160;       possible_roots--) {</div>
-<div class="line"><a name="l01983"></a><span class="lineno"> 1983</span>&#160;      start -= <span class="keyword">sizeof</span>(uoffset_t);</div>
-<div class="line"><a name="l01984"></a><span class="lineno"> 1984</span>&#160;      <span class="keywordflow">if</span> (ReadScalar&lt;uoffset_t&gt;(start) + start ==</div>
-<div class="line"><a name="l01985"></a><span class="lineno"> 1985</span>&#160;          <span class="keyword">reinterpret_cast&lt;</span><span class="keyword">const </span>uint8_t *<span class="keyword">&gt;</span>(root)) <span class="keywordflow">return</span> start;</div>
-<div class="line"><a name="l01986"></a><span class="lineno"> 1986</span>&#160;  }</div>
-<div class="line"><a name="l01987"></a><span class="lineno"> 1987</span>&#160;  <span class="comment">// We didn&#39;t find the root, either the &quot;root&quot; passed isn&#39;t really a root,</span></div>
-<div class="line"><a name="l01988"></a><span class="lineno"> 1988</span>&#160;  <span class="comment">// or the buffer is corrupt.</span></div>
-<div class="line"><a name="l01989"></a><span class="lineno"> 1989</span>&#160;  <span class="comment">// Assert, because calling this function with bad data may cause reads</span></div>
-<div class="line"><a name="l01990"></a><span class="lineno"> 1990</span>&#160;  <span class="comment">// outside of buffer boundaries.</span></div>
-<div class="line"><a name="l01991"></a><span class="lineno"> 1991</span>&#160;  assert(<span class="keyword">false</span>);</div>
-<div class="line"><a name="l01992"></a><span class="lineno"> 1992</span>&#160;  <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
-<div class="line"><a name="l01993"></a><span class="lineno"> 1993</span>&#160;}</div>
-<div class="line"><a name="l01994"></a><span class="lineno"> 1994</span>&#160;</div>
-<div class="line"><a name="l01995"></a><span class="lineno"> 1995</span>&#160;<span class="comment">// Base class for native objects (FlatBuffer data de-serialized into native</span></div>
-<div class="line"><a name="l01996"></a><span class="lineno"> 1996</span>&#160;<span class="comment">// C++ data structures).</span></div>
-<div class="line"><a name="l01997"></a><span class="lineno"> 1997</span>&#160;<span class="comment">// Contains no functionality, purely documentative.</span></div>
-<div class="line"><a name="l01998"></a><span class="lineno"> 1998</span>&#160;<span class="keyword">struct </span>NativeTable {</div>
-<div class="line"><a name="l01999"></a><span class="lineno"> 1999</span>&#160;};</div>
-<div class="line"><a name="l02000"></a><span class="lineno"> 2000</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l02001"></a><span class="lineno"> 2001</span>&#160;<span class="comment">/// @brief Function types to be used with resolving hashes into objects and</span></div>
-<div class="line"><a name="l02002"></a><span class="lineno"> 2002</span>&#160;<span class="comment">/// back again. The resolver gets a pointer to a field inside an object API</span></div>
-<div class="line"><a name="l02003"></a><span class="lineno"> 2003</span>&#160;<span class="comment">/// object that is of the type specified in the schema using the attribute</span></div>
-<div class="line"><a name="l02004"></a><span class="lineno"> 2004</span>&#160;<span class="comment">/// `cpp_type` (it is thus important whatever you write to this address</span></div>
-<div class="line"><a name="l02005"></a><span class="lineno"> 2005</span>&#160;<span class="comment">/// matches that type). The value of this field is initially null, so you</span></div>
-<div class="line"><a name="l02006"></a><span class="lineno"> 2006</span>&#160;<span class="comment">/// may choose to implement a delayed binding lookup using this function</span></div>
-<div class="line"><a name="l02007"></a><span class="lineno"> 2007</span>&#160;<span class="comment">/// if you wish. The resolver does the opposite lookup, for when the object</span></div>
-<div class="line"><a name="l02008"></a><span class="lineno"> 2008</span>&#160;<span class="comment">/// is being serialized again.</span></div>
-<div class="line"><a name="l02009"></a><span class="lineno"> 2009</span>&#160;<span class="comment"></span><span class="keyword">typedef</span> uint64_t hash_value_t;</div>
-<div class="line"><a name="l02010"></a><span class="lineno"> 2010</span>&#160;<span class="preprocessor">#ifdef FLATBUFFERS_CPP98_STL</span></div>
-<div class="line"><a name="l02011"></a><span class="lineno"> 2011</span>&#160;  <span class="keyword">typedef</span> void (*resolver_function_t)(<span class="keywordtype">void</span> **pointer_adr, hash_value_t hash);</div>
-<div class="line"><a name="l02012"></a><span class="lineno"> 2012</span>&#160;  <span class="keyword">typedef</span> hash_value_t (*rehasher_function_t)(<span class="keywordtype">void</span> *pointer);</div>
-<div class="line"><a name="l02013"></a><span class="lineno"> 2013</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l02014"></a><span class="lineno"> 2014</span>&#160;  <span class="keyword">typedef</span> std::function&lt;void (void **pointer_adr, hash_value_t hash)&gt;</div>
-<div class="line"><a name="l02015"></a><span class="lineno"> 2015</span>&#160;          resolver_function_t;</div>
-<div class="line"><a name="l02016"></a><span class="lineno"> 2016</span>&#160;  <span class="keyword">typedef</span> std::function&lt;hash_value_t (void *pointer)&gt; rehasher_function_t;</div>
-<div class="line"><a name="l02017"></a><span class="lineno"> 2017</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l02018"></a><span class="lineno"> 2018</span>&#160;</div>
-<div class="line"><a name="l02019"></a><span class="lineno"> 2019</span>&#160;<span class="comment">// Helper function to test if a field is present, using any of the field</span></div>
-<div class="line"><a name="l02020"></a><span class="lineno"> 2020</span>&#160;<span class="comment">// enums in the generated code.</span></div>
-<div class="line"><a name="l02021"></a><span class="lineno"> 2021</span>&#160;<span class="comment">// `table` must be a generated table type. Since this is a template parameter,</span></div>
-<div class="line"><a name="l02022"></a><span class="lineno"> 2022</span>&#160;<span class="comment">// this is not typechecked to be a subclass of Table, so beware!</span></div>
-<div class="line"><a name="l02023"></a><span class="lineno"> 2023</span>&#160;<span class="comment">// Note: this function will return false for fields equal to the default</span></div>
-<div class="line"><a name="l02024"></a><span class="lineno"> 2024</span>&#160;<span class="comment">// value, since they&#39;re not stored in the buffer (unless force_defaults was</span></div>
-<div class="line"><a name="l02025"></a><span class="lineno"> 2025</span>&#160;<span class="comment">// used).</span></div>
-<div class="line"><a name="l02026"></a><span class="lineno"> 2026</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt; <span class="keywordtype">bool</span> IsFieldPresent(<span class="keyword">const</span> T *table, voffset_t field) {</div>
-<div class="line"><a name="l02027"></a><span class="lineno"> 2027</span>&#160;  <span class="comment">// Cast, since Table is a private baseclass of any table types.</span></div>
-<div class="line"><a name="l02028"></a><span class="lineno"> 2028</span>&#160;  <span class="keywordflow">return</span> <span class="keyword">reinterpret_cast&lt;</span><span class="keyword">const </span>Table *<span class="keyword">&gt;</span>(table)-&gt;CheckField(field);</div>
-<div class="line"><a name="l02029"></a><span class="lineno"> 2029</span>&#160;}</div>
-<div class="line"><a name="l02030"></a><span class="lineno"> 2030</span>&#160;</div>
-<div class="line"><a name="l02031"></a><span class="lineno"> 2031</span>&#160;<span class="comment">// Utility function for reverse lookups on the EnumNames*() functions</span></div>
-<div class="line"><a name="l02032"></a><span class="lineno"> 2032</span>&#160;<span class="comment">// (in the generated C++ code)</span></div>
-<div class="line"><a name="l02033"></a><span class="lineno"> 2033</span>&#160;<span class="comment">// names must be NULL terminated.</span></div>
-<div class="line"><a name="l02034"></a><span class="lineno"> 2034</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">int</span> LookupEnum(<span class="keyword">const</span> <span class="keywordtype">char</span> **names, <span class="keyword">const</span> <span class="keywordtype">char</span> *name) {</div>
-<div class="line"><a name="l02035"></a><span class="lineno"> 2035</span>&#160;  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keywordtype">char</span> **p = names; *p; p++)</div>
-<div class="line"><a name="l02036"></a><span class="lineno"> 2036</span>&#160;    <span class="keywordflow">if</span> (!strcmp(*p, name))</div>
-<div class="line"><a name="l02037"></a><span class="lineno"> 2037</span>&#160;      <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span>(p - names);</div>
-<div class="line"><a name="l02038"></a><span class="lineno"> 2038</span>&#160;  <span class="keywordflow">return</span> -1;</div>
-<div class="line"><a name="l02039"></a><span class="lineno"> 2039</span>&#160;}</div>
-<div class="line"><a name="l02040"></a><span class="lineno"> 2040</span>&#160;</div>
-<div class="line"><a name="l02041"></a><span class="lineno"> 2041</span>&#160;<span class="comment">// These macros allow us to layout a struct with a guarantee that they&#39;ll end</span></div>
-<div class="line"><a name="l02042"></a><span class="lineno"> 2042</span>&#160;<span class="comment">// up looking the same on different compilers and platforms.</span></div>
-<div class="line"><a name="l02043"></a><span class="lineno"> 2043</span>&#160;<span class="comment">// It does this by disallowing the compiler to do any padding, and then</span></div>
-<div class="line"><a name="l02044"></a><span class="lineno"> 2044</span>&#160;<span class="comment">// does padding itself by inserting extra padding fields that make every</span></div>
-<div class="line"><a name="l02045"></a><span class="lineno"> 2045</span>&#160;<span class="comment">// element aligned to its own size.</span></div>
-<div class="line"><a name="l02046"></a><span class="lineno"> 2046</span>&#160;<span class="comment">// Additionally, it manually sets the alignment of the struct as a whole,</span></div>
-<div class="line"><a name="l02047"></a><span class="lineno"> 2047</span>&#160;<span class="comment">// which is typically its largest element, or a custom size set in the schema</span></div>
-<div class="line"><a name="l02048"></a><span class="lineno"> 2048</span>&#160;<span class="comment">// by the force_align attribute.</span></div>
-<div class="line"><a name="l02049"></a><span class="lineno"> 2049</span>&#160;<span class="comment">// These are used in the generated code only.</span></div>
-<div class="line"><a name="l02050"></a><span class="lineno"> 2050</span>&#160;</div>
-<div class="line"><a name="l02051"></a><span class="lineno"> 2051</span>&#160;<span class="preprocessor">#if defined(_MSC_VER)</span></div>
-<div class="line"><a name="l02052"></a><span class="lineno"> 2052</span>&#160;<span class="preprocessor">  #define MANUALLY_ALIGNED_STRUCT(alignment) \</span></div>
-<div class="line"><a name="l02053"></a><span class="lineno"> 2053</span>&#160;<span class="preprocessor">    __pragma(pack(1)); \</span></div>
-<div class="line"><a name="l02054"></a><span class="lineno"> 2054</span>&#160;<span class="preprocessor">    struct __declspec(align(alignment))</span></div>
-<div class="line"><a name="l02055"></a><span class="lineno"> 2055</span>&#160;<span class="preprocessor">  #define STRUCT_END(name, size) \</span></div>
-<div class="line"><a name="l02056"></a><span class="lineno"> 2056</span>&#160;<span class="preprocessor">    __pragma(pack()); \</span></div>
-<div class="line"><a name="l02057"></a><span class="lineno"> 2057</span>&#160;<span class="preprocessor">    static_assert(sizeof(name) == size, &quot;compiler breaks packing rules&quot;)</span></div>
-<div class="line"><a name="l02058"></a><span class="lineno"> 2058</span>&#160;<span class="preprocessor">#elif defined(__GNUC__) || defined(__clang__)</span></div>
-<div class="line"><a name="l02059"></a><span class="lineno"> 2059</span>&#160;<span class="preprocessor">  #define MANUALLY_ALIGNED_STRUCT(alignment) \</span></div>
-<div class="line"><a name="l02060"></a><span class="lineno"> 2060</span>&#160;<span class="preprocessor">    _Pragma(&quot;pack(1)&quot;) \</span></div>
-<div class="line"><a name="l02061"></a><span class="lineno"> 2061</span>&#160;<span class="preprocessor">    struct __attribute__((aligned(alignment)))</span></div>
-<div class="line"><a name="l02062"></a><span class="lineno"> 2062</span>&#160;<span class="preprocessor">  #define STRUCT_END(name, size) \</span></div>
-<div class="line"><a name="l02063"></a><span class="lineno"> 2063</span>&#160;<span class="preprocessor">    _Pragma(&quot;pack()&quot;) \</span></div>
-<div class="line"><a name="l02064"></a><span class="lineno"> 2064</span>&#160;<span class="preprocessor">    static_assert(sizeof(name) == size, &quot;compiler breaks packing rules&quot;)</span></div>
-<div class="line"><a name="l02065"></a><span class="lineno"> 2065</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l02066"></a><span class="lineno"> 2066</span>&#160;<span class="preprocessor">  #error Unknown compiler, please define structure alignment macros</span></div>
-<div class="line"><a name="l02067"></a><span class="lineno"> 2067</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l02068"></a><span class="lineno"> 2068</span>&#160;</div>
-<div class="line"><a name="l02069"></a><span class="lineno"> 2069</span>&#160;<span class="comment">// Minimal reflection via code generation.</span></div>
-<div class="line"><a name="l02070"></a><span class="lineno"> 2070</span>&#160;<span class="comment">// Besides full-fat reflection (see reflection.h) and parsing/printing by</span></div>
-<div class="line"><a name="l02071"></a><span class="lineno"> 2071</span>&#160;<span class="comment">// loading schemas (see idl.h), we can also have code generation for mimimal</span></div>
-<div class="line"><a name="l02072"></a><span class="lineno"> 2072</span>&#160;<span class="comment">// reflection data which allows pretty-printing and other uses without needing</span></div>
-<div class="line"><a name="l02073"></a><span class="lineno"> 2073</span>&#160;<span class="comment">// a schema or a parser.</span></div>
-<div class="line"><a name="l02074"></a><span class="lineno"> 2074</span>&#160;<span class="comment">// Generate code with --reflect-types (types only) or --reflect-names (names</span></div>
-<div class="line"><a name="l02075"></a><span class="lineno"> 2075</span>&#160;<span class="comment">// also) to enable.</span></div>
-<div class="line"><a name="l02076"></a><span class="lineno"> 2076</span>&#160;<span class="comment">// See minireflect.h for utilities using this functionality.</span></div>
-<div class="line"><a name="l02077"></a><span class="lineno"> 2077</span>&#160;</div>
-<div class="line"><a name="l02078"></a><span class="lineno"> 2078</span>&#160;<span class="comment">// These types are organized slightly differently as the ones in idl.h.</span></div>
-<div class="line"><a name="l02079"></a><span class="lineno"> 2079</span>&#160;<span class="keyword">enum</span> SequenceType { ST_TABLE, ST_STRUCT, ST_UNION, ST_ENUM };</div>
-<div class="line"><a name="l02080"></a><span class="lineno"> 2080</span>&#160;</div>
-<div class="line"><a name="l02081"></a><span class="lineno"> 2081</span>&#160;<span class="comment">// Scalars have the same order as in idl.h</span></div>
-<div class="line"><a name="l02082"></a><span class="lineno"> 2082</span>&#160;<span class="preprocessor">#define FLATBUFFERS_GEN_ELEMENTARY_TYPES(ET) \</span></div>
-<div class="line"><a name="l02083"></a><span class="lineno"> 2083</span>&#160;<span class="preprocessor">  ET(ET_UTYPE) \</span></div>
-<div class="line"><a name="l02084"></a><span class="lineno"> 2084</span>&#160;<span class="preprocessor">  ET(ET_BOOL) \</span></div>
-<div class="line"><a name="l02085"></a><span class="lineno"> 2085</span>&#160;<span class="preprocessor">  ET(ET_CHAR) \</span></div>
-<div class="line"><a name="l02086"></a><span class="lineno"> 2086</span>&#160;<span class="preprocessor">  ET(ET_UCHAR) \</span></div>
-<div class="line"><a name="l02087"></a><span class="lineno"> 2087</span>&#160;<span class="preprocessor">  ET(ET_SHORT) \</span></div>
-<div class="line"><a name="l02088"></a><span class="lineno"> 2088</span>&#160;<span class="preprocessor">  ET(ET_USHORT) \</span></div>
-<div class="line"><a name="l02089"></a><span class="lineno"> 2089</span>&#160;<span class="preprocessor">  ET(ET_INT) \</span></div>
-<div class="line"><a name="l02090"></a><span class="lineno"> 2090</span>&#160;<span class="preprocessor">  ET(ET_UINT) \</span></div>
-<div class="line"><a name="l02091"></a><span class="lineno"> 2091</span>&#160;<span class="preprocessor">  ET(ET_LONG) \</span></div>
-<div class="line"><a name="l02092"></a><span class="lineno"> 2092</span>&#160;<span class="preprocessor">  ET(ET_ULONG) \</span></div>
-<div class="line"><a name="l02093"></a><span class="lineno"> 2093</span>&#160;<span class="preprocessor">  ET(ET_FLOAT) \</span></div>
-<div class="line"><a name="l02094"></a><span class="lineno"> 2094</span>&#160;<span class="preprocessor">  ET(ET_DOUBLE) \</span></div>
-<div class="line"><a name="l02095"></a><span class="lineno"> 2095</span>&#160;<span class="preprocessor">  ET(ET_STRING) \</span></div>
-<div class="line"><a name="l02096"></a><span class="lineno"> 2096</span>&#160;<span class="preprocessor">  ET(ET_SEQUENCE)  // See SequenceType.</span></div>
-<div class="line"><a name="l02097"></a><span class="lineno"> 2097</span>&#160;</div>
-<div class="line"><a name="l02098"></a><span class="lineno"> 2098</span>&#160;<span class="keyword">enum</span> ElementaryType {</div>
-<div class="line"><a name="l02099"></a><span class="lineno"> 2099</span>&#160;<span class="preprocessor">  #define FLATBUFFERS_ET(E) E,</span></div>
-<div class="line"><a name="l02100"></a><span class="lineno"> 2100</span>&#160;    FLATBUFFERS_GEN_ELEMENTARY_TYPES(FLATBUFFERS_ET)</div>
-<div class="line"><a name="l02101"></a><span class="lineno"> 2101</span>&#160;  <span class="preprocessor">#undef FLATBUFFERS_ET</span></div>
-<div class="line"><a name="l02102"></a><span class="lineno"> 2102</span>&#160;};</div>
-<div class="line"><a name="l02103"></a><span class="lineno"> 2103</span>&#160;</div>
-<div class="line"><a name="l02104"></a><span class="lineno"> 2104</span>&#160;<span class="keyword">inline</span> <span class="keyword">const</span> <span class="keywordtype">char</span> **ElementaryTypeNames() {</div>
-<div class="line"><a name="l02105"></a><span class="lineno"> 2105</span>&#160;  <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *names[] = {</div>
-<div class="line"><a name="l02106"></a><span class="lineno"> 2106</span>&#160;<span class="preprocessor">    #define FLATBUFFERS_ET(E) #E,</span></div>
-<div class="line"><a name="l02107"></a><span class="lineno"> 2107</span>&#160;      FLATBUFFERS_GEN_ELEMENTARY_TYPES(FLATBUFFERS_ET)</div>
-<div class="line"><a name="l02108"></a><span class="lineno"> 2108</span>&#160;    <span class="preprocessor">#undef FLATBUFFERS_ET</span></div>
-<div class="line"><a name="l02109"></a><span class="lineno"> 2109</span>&#160;  };</div>
-<div class="line"><a name="l02110"></a><span class="lineno"> 2110</span>&#160;  <span class="keywordflow">return</span> names;</div>
-<div class="line"><a name="l02111"></a><span class="lineno"> 2111</span>&#160;}</div>
-<div class="line"><a name="l02112"></a><span class="lineno"> 2112</span>&#160;</div>
-<div class="line"><a name="l02113"></a><span class="lineno"> 2113</span>&#160;<span class="comment">// Basic type info cost just 16bits per field!</span></div>
-<div class="line"><a name="l02114"></a><span class="lineno"> 2114</span>&#160;<span class="keyword">struct </span>TypeCode {</div>
-<div class="line"><a name="l02115"></a><span class="lineno"> 2115</span>&#160;  uint16_t base_type : 4;      <span class="comment">// ElementaryType</span></div>
-<div class="line"><a name="l02116"></a><span class="lineno"> 2116</span>&#160;  uint16_t is_vector : 1;</div>
-<div class="line"><a name="l02117"></a><span class="lineno"> 2117</span>&#160;  int16_t sequence_ref : 11;   <span class="comment">// Index into type_refs below, or -1 for none.</span></div>
-<div class="line"><a name="l02118"></a><span class="lineno"> 2118</span>&#160;};</div>
-<div class="line"><a name="l02119"></a><span class="lineno"> 2119</span>&#160;</div>
-<div class="line"><a name="l02120"></a><span class="lineno"> 2120</span>&#160;static_assert(<span class="keyword">sizeof</span>(TypeCode) == 2, <span class="stringliteral">&quot;TypeCode&quot;</span>);</div>
-<div class="line"><a name="l02121"></a><span class="lineno"> 2121</span>&#160;</div>
-<div class="line"><a name="l02122"></a><span class="lineno"> 2122</span>&#160;<span class="keyword">struct </span>TypeTable;</div>
-<div class="line"><a name="l02123"></a><span class="lineno"> 2123</span>&#160;</div>
-<div class="line"><a name="l02124"></a><span class="lineno"> 2124</span>&#160;<span class="comment">// Signature of the static method present in each type.</span></div>
-<div class="line"><a name="l02125"></a><span class="lineno"> 2125</span>&#160;<span class="keyword">typedef</span> TypeTable *(*TypeFunction)();</div>
-<div class="line"><a name="l02126"></a><span class="lineno"> 2126</span>&#160;</div>
-<div class="line"><a name="l02127"></a><span class="lineno"> 2127</span>&#160;<span class="keyword">struct </span>TypeTable {</div>
-<div class="line"><a name="l02128"></a><span class="lineno"> 2128</span>&#160;  SequenceType st;</div>
-<div class="line"><a name="l02129"></a><span class="lineno"> 2129</span>&#160;  <span class="keywordtype">size_t</span> num_elems;  <span class="comment">// of each of the arrays below.</span></div>
-<div class="line"><a name="l02130"></a><span class="lineno"> 2130</span>&#160;  <span class="keyword">const</span> TypeCode *type_codes;</div>
-<div class="line"><a name="l02131"></a><span class="lineno"> 2131</span>&#160;  <span class="keyword">const</span> TypeFunction *type_refs;</div>
-<div class="line"><a name="l02132"></a><span class="lineno"> 2132</span>&#160;  <span class="keyword">const</span> int32_t *values;  <span class="comment">// Only set for non-consecutive enum/union or structs.</span></div>
-<div class="line"><a name="l02133"></a><span class="lineno"> 2133</span>&#160;  <span class="keyword">const</span> <span class="keywordtype">char</span> **names;  <span class="comment">// Only set if compiled with --reflect-names.</span></div>
-<div class="line"><a name="l02134"></a><span class="lineno"> 2134</span>&#160;};</div>
-<div class="line"><a name="l02135"></a><span class="lineno"> 2135</span>&#160;</div>
-<div class="line"><a name="l02136"></a><span class="lineno"> 2136</span>&#160;<span class="comment">// String which identifies the current version of FlatBuffers.</span></div>
-<div class="line"><a name="l02137"></a><span class="lineno"> 2137</span>&#160;<span class="comment">// flatbuffer_version_string is used by Google developers to identify which</span></div>
-<div class="line"><a name="l02138"></a><span class="lineno"> 2138</span>&#160;<span class="comment">// applications uploaded to Google Play are using this library.  This allows</span></div>
-<div class="line"><a name="l02139"></a><span class="lineno"> 2139</span>&#160;<span class="comment">// the development team at Google to determine the popularity of the library.</span></div>
-<div class="line"><a name="l02140"></a><span class="lineno"> 2140</span>&#160;<span class="comment">// How it works: Applications that are uploaded to the Google Play Store are</span></div>
-<div class="line"><a name="l02141"></a><span class="lineno"> 2141</span>&#160;<span class="comment">// scanned for this version string.  We track which applications are using it</span></div>
-<div class="line"><a name="l02142"></a><span class="lineno"> 2142</span>&#160;<span class="comment">// to measure popularity.  You are free to remove it (of course) but we would</span></div>
-<div class="line"><a name="l02143"></a><span class="lineno"> 2143</span>&#160;<span class="comment">// appreciate if you left it in.</span></div>
-<div class="line"><a name="l02144"></a><span class="lineno"> 2144</span>&#160;</div>
-<div class="line"><a name="l02145"></a><span class="lineno"> 2145</span>&#160;<span class="comment">// Weak linkage is culled by VS &amp; doesn&#39;t work on cygwin.</span></div>
-<div class="line"><a name="l02146"></a><span class="lineno"> 2146</span>&#160;<span class="preprocessor">#if !defined(_WIN32) &amp;&amp; !defined(__CYGWIN__)</span></div>
-<div class="line"><a name="l02147"></a><span class="lineno"> 2147</span>&#160;</div>
-<div class="line"><a name="l02148"></a><span class="lineno"> 2148</span>&#160;<span class="keyword">extern</span> <span class="keyword">volatile</span> __attribute__((weak)) const <span class="keywordtype">char</span> *flatbuffer_version_string;</div>
-<div class="line"><a name="l02149"></a><span class="lineno"> 2149</span>&#160;volatile __attribute__((weak)) const <span class="keywordtype">char</span> *flatbuffer_version_string =</div>
-<div class="line"><a name="l02150"></a><span class="lineno"> 2150</span>&#160;  &quot;FlatBuffers &quot;</div>
-<div class="line"><a name="l02151"></a><span class="lineno"> 2151</span>&#160;  FLATBUFFERS_STRING(FLATBUFFERS_VERSION_MAJOR) &quot;.&quot;</div>
-<div class="line"><a name="l02152"></a><span class="lineno"> 2152</span>&#160;  FLATBUFFERS_STRING(FLATBUFFERS_VERSION_MINOR) &quot;.&quot;</div>
-<div class="line"><a name="l02153"></a><span class="lineno"> 2153</span>&#160;  FLATBUFFERS_STRING(FLATBUFFERS_VERSION_REVISION);</div>
-<div class="line"><a name="l02154"></a><span class="lineno"> 2154</span>&#160;</div>
-<div class="line"><a name="l02155"></a><span class="lineno"> 2155</span>&#160;<span class="preprocessor">#endif  // !defined(_WIN32) &amp;&amp; !defined(__CYGWIN__)</span></div>
-<div class="line"><a name="l02156"></a><span class="lineno"> 2156</span>&#160;</div>
-<div class="line"><a name="l02157"></a><span class="lineno"> 2157</span>&#160;<span class="preprocessor">#define DEFINE_BITMASK_OPERATORS(E, T)\</span></div>
-<div class="line"><a name="l02158"></a><span class="lineno"> 2158</span>&#160;<span class="preprocessor">    inline E operator | (E lhs, E rhs){\</span></div>
-<div class="line"><a name="l02159"></a><span class="lineno"> 2159</span>&#160;<span class="preprocessor">        return E(T(lhs) | T(rhs));\</span></div>
-<div class="line"><a name="l02160"></a><span class="lineno"> 2160</span>&#160;<span class="preprocessor">    }\</span></div>
-<div class="line"><a name="l02161"></a><span class="lineno"> 2161</span>&#160;<span class="preprocessor">    inline E operator &amp; (E lhs, E rhs){\</span></div>
-<div class="line"><a name="l02162"></a><span class="lineno"> 2162</span>&#160;<span class="preprocessor">        return E(T(lhs) &amp; T(rhs));\</span></div>
-<div class="line"><a name="l02163"></a><span class="lineno"> 2163</span>&#160;<span class="preprocessor">    }\</span></div>
-<div class="line"><a name="l02164"></a><span class="lineno"> 2164</span>&#160;<span class="preprocessor">    inline E operator ^ (E lhs, E rhs){\</span></div>
-<div class="line"><a name="l02165"></a><span class="lineno"> 2165</span>&#160;<span class="preprocessor">        return E(T(lhs) ^ T(rhs));\</span></div>
-<div class="line"><a name="l02166"></a><span class="lineno"> 2166</span>&#160;<span class="preprocessor">    }\</span></div>
-<div class="line"><a name="l02167"></a><span class="lineno"> 2167</span>&#160;<span class="preprocessor">    inline E operator ~ (E lhs){\</span></div>
-<div class="line"><a name="l02168"></a><span class="lineno"> 2168</span>&#160;<span class="preprocessor">        return E(~T(lhs));\</span></div>
-<div class="line"><a name="l02169"></a><span class="lineno"> 2169</span>&#160;<span class="preprocessor">    }\</span></div>
-<div class="line"><a name="l02170"></a><span class="lineno"> 2170</span>&#160;<span class="preprocessor">    inline E operator |= (E &amp;lhs, E rhs){\</span></div>
-<div class="line"><a name="l02171"></a><span class="lineno"> 2171</span>&#160;<span class="preprocessor">        lhs = lhs | rhs;\</span></div>
-<div class="line"><a name="l02172"></a><span class="lineno"> 2172</span>&#160;<span class="preprocessor">        return lhs;\</span></div>
-<div class="line"><a name="l02173"></a><span class="lineno"> 2173</span>&#160;<span class="preprocessor">    }\</span></div>
-<div class="line"><a name="l02174"></a><span class="lineno"> 2174</span>&#160;<span class="preprocessor">    inline E operator &amp;= (E &amp;lhs, E rhs){\</span></div>
-<div class="line"><a name="l02175"></a><span class="lineno"> 2175</span>&#160;<span class="preprocessor">        lhs = lhs &amp; rhs;\</span></div>
-<div class="line"><a name="l02176"></a><span class="lineno"> 2176</span>&#160;<span class="preprocessor">        return lhs;\</span></div>
-<div class="line"><a name="l02177"></a><span class="lineno"> 2177</span>&#160;<span class="preprocessor">    }\</span></div>
-<div class="line"><a name="l02178"></a><span class="lineno"> 2178</span>&#160;<span class="preprocessor">    inline E operator ^= (E &amp;lhs, E rhs){\</span></div>
-<div class="line"><a name="l02179"></a><span class="lineno"> 2179</span>&#160;<span class="preprocessor">        lhs = lhs ^ rhs;\</span></div>
-<div class="line"><a name="l02180"></a><span class="lineno"> 2180</span>&#160;<span class="preprocessor">        return lhs;\</span></div>
-<div class="line"><a name="l02181"></a><span class="lineno"> 2181</span>&#160;<span class="preprocessor">    }\</span></div>
-<div class="line"><a name="l02182"></a><span class="lineno"> 2182</span>&#160;<span class="preprocessor">    inline bool operator !(E rhs) \</span></div>
-<div class="line"><a name="l02183"></a><span class="lineno"> 2183</span>&#160;<span class="preprocessor">    {\</span></div>
-<div class="line"><a name="l02184"></a><span class="lineno"> 2184</span>&#160;<span class="preprocessor">        return !bool(T(rhs)); \</span></div>
-<div class="line"><a name="l02185"></a><span class="lineno"> 2185</span>&#160;<span class="preprocessor">    }</span></div>
-<div class="line"><a name="l02186"></a><span class="lineno"> 2186</span>&#160;<span class="comment">/// @endcond</span></div>
-<div class="line"><a name="l02187"></a><span class="lineno"> 2187</span>&#160;<span class="comment"></span>}  <span class="comment">// namespace flatbuffers</span></div>
-<div class="line"><a name="l02188"></a><span class="lineno"> 2188</span>&#160;</div>
-<div class="line"><a name="l02189"></a><span class="lineno"> 2189</span>&#160;<span class="preprocessor">#if defined(_MSC_VER)</span></div>
-<div class="line"><a name="l02190"></a><span class="lineno"> 2190</span>&#160;<span class="preprocessor">#pragma warning(pop)</span></div>
-<div class="line"><a name="l02191"></a><span class="lineno"> 2191</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l02192"></a><span class="lineno"> 2192</span>&#160;</div>
-<div class="line"><a name="l02193"></a><span class="lineno"> 2193</span>&#160;<span class="preprocessor">#endif  // FLATBUFFERS_H_</span></div>
-<div class="ttc" id="structflatbuffers_1_1_offset_html"><div class="ttname"><a href="structflatbuffers_1_1_offset.html">flatbuffers::Offset</a></div><div class="ttdef"><b>Definition:</b> flatbuffers.h:25</div></div>
-<div class="ttc" id="classflatbuffers_1_1_flat_buffer_builder_html_a1080c9e370e2d9d9d872dadd1131436b"><div class="ttname"><a href="classflatbuffers_1_1_flat_buffer_builder.html#a1080c9e370e2d9d9d872dadd1131436b">flatbuffers::FlatBufferBuilder::CreateVector</a></div><div class="ttdeci">Offset&lt; Vector&lt; T &gt; &gt; CreateVector(size_t vector_size, const std::function&lt; T(size_t i)&gt; &amp;f)</div><div class="ttdoc">Serialize values returned by a function into a FlatBuffer vector. </div><div class="ttdef"><b>Definition:</b> flatbuffers.h:1173</div></div>
-<div class="ttc" id="classflatbuffers_1_1_flat_buffer_builder_html_ac2b96292fa0fb1534fe7fd218a094d0c"><div class="ttname"><a href="classflatbuffers_1_1_flat_buffer_builder.html#ac2b96292fa0fb1534fe7fd218a094d0c">flatbuffers::FlatBufferBuilder::CreateUninitializedVector</a></div><div class="ttdeci">uoffset_t CreateUninitializedVector(size_t len, size_t elemsize, uint8_t **buf)</div><div class="ttdoc">Specialized version of CreateVector for non-copying use cases. </div><div class="ttdef"><b>Definition:</b> flatbuffers.h:1422</div></div>
-<div class="ttc" id="classflatbuffers_1_1_flat_buffer_builder_html_a6e90ada59d9553636f72ce8e4a892f72"><div class="ttname"><a href="classflatbuffers_1_1_flat_buffer_builder.html#a6e90ada59d9553636f72ce8e4a892f72">flatbuffers::FlatBufferBuilder::CreateVectorOfStructs</a></div><div class="ttdeci">Offset&lt; Vector&lt; const T * &gt; &gt; CreateVectorOfStructs(size_t vector_size, const std::function&lt; void(size_t i, T *)&gt; &amp;filler)</div><div class="ttdoc">Serialize an array of structs into a FlatBuffer vector. </div><div class="ttdef"><b>Definition:</b> flatbuffers.h:1250</div></div>
-<div class="ttc" id="classflatbuffers_1_1_flat_buffer_builder_html_ab1f44cc1b130e13b41e9a80de76e25cf"><div class="ttname"><a href="classflatbuffers_1_1_flat_buffer_builder.html#ab1f44cc1b130e13b41e9a80de76e25cf">flatbuffers::FlatBufferBuilder::CreateVectorOfSortedStructs</a></div><div class="ttdeci">Offset&lt; Vector&lt; const T * &gt; &gt; CreateVectorOfSortedStructs(T *v, size_t len)</div><div class="ttdoc">Serialize an array of structs into a FlatBuffer vector in sorted order. </div><div class="ttdef"><b>Definition:</b> flatbuffers.h:1349</div></div>
-<div class="ttc" id="classflatbuffers_1_1_flat_buffer_builder_html_a23aa4c910e053446cc404bc486012e54"><div class="ttname"><a href="classflatbuffers_1_1_flat_buffer_builder.html#a23aa4c910e053446cc404bc486012e54">flatbuffers::FlatBufferBuilder::CreateVectorOfSortedNativeStructs</a></div><div class="ttdeci">Offset&lt; Vector&lt; const T * &gt; &gt; CreateVectorOfSortedNativeStructs(std::vector&lt; S &gt; *v)</div><div class="ttdoc">Serialize a std::vector of native structs into a FlatBuffer vector in sorted order. </div><div class="ttdef"><b>Definition:</b> flatbuffers.h:1336</div></div>
-<div class="ttc" id="classflatbuffers_1_1_flat_buffer_builder_html_ac64d11c219559ea51567eab556e13135"><div class="ttname"><a href="classflatbuffers_1_1_flat_buffer_builder.html#ac64d11c219559ea51567eab556e13135">flatbuffers::FlatBufferBuilder::CreateVectorOfSortedTables</a></div><div class="ttdeci">Offset&lt; Vector&lt; Offset&lt; T &gt; &gt; &gt; CreateVectorOfSortedTables(std::vector&lt; Offset&lt; T &gt;&gt; *v)</div><div class="ttdoc">Serialize an array of table offsets as a vector in the buffer in sorted order. </div><div class="ttdef"><b>Definition:</b> flatbuffers.h:1410</div></div>
-<div class="ttc" id="structflatbuffers_1_1_vector_iterator_html"><div class="ttname"><a href="structflatbuffers_1_1_vector_iterator.html">flatbuffers::VectorIterator</a></div><div class="ttdef"><b>Definition:</b> flatbuffers.h:89</div></div>
-<div class="ttc" id="classflatbuffers_1_1_flat_buffer_builder_html"><div class="ttname"><a href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a></div><div class="ttdoc">Helper class to hold data needed in creation of a FlatBuffer. </div><div class="ttdef"><b>Definition:</b> flatbuffers.h:677</div></div>
-<div class="ttc" id="classflatbuffers_1_1_flat_buffer_builder_html_ac1bfd609f7f736e9a37cedae77448b63"><div class="ttname"><a href="classflatbuffers_1_1_flat_buffer_builder.html#ac1bfd609f7f736e9a37cedae77448b63">flatbuffers::FlatBufferBuilder::GetSize</a></div><div class="ttdeci">uoffset_t GetSize() const </div><div class="ttdoc">The current size of the serialized buffer, counting from the end. </div><div class="ttdef"><b>Definition:</b> flatbuffers.h:721</div></div>
-<div class="ttc" id="classflatbuffers_1_1_flat_buffer_builder_html_ae94b94ba71ea0aeb2d9a98c43b713412"><div class="ttname"><a href="classflatbuffers_1_1_flat_buffer_builder.html#ae94b94ba71ea0aeb2d9a98c43b713412">flatbuffers::FlatBufferBuilder::Clear</a></div><div class="ttdeci">void Clear()</div><div class="ttdoc">Reset all the state in this FlatBufferBuilder so it can be reused to construct another buffer...</div><div class="ttdef"><b>Definition:</b> flatbuffers.h:709</div></div>
-<div class="ttc" id="classflatbuffers_1_1_flat_buffer_builder_html_a9cc09fa59ff9732e972877cfe911c8a5"><div class="ttname"><a href="classflatbuffers_1_1_flat_buffer_builder.html#a9cc09fa59ff9732e972877cfe911c8a5">flatbuffers::FlatBufferBuilder::CreateVectorOfStructs</a></div><div class="ttdeci">Offset&lt; Vector&lt; const T * &gt; &gt; CreateVectorOfStructs(size_t vector_size, F f, S *state)</div><div class="ttdoc">Serialize an array of structs into a FlatBuffer vector. </div><div class="ttdef"><b>Definition:</b> flatbuffers.h:1271</div></div>
-<div class="ttc" id="classflatbuffers_1_1_flat_buffer_builder_html_a3d57074082aaab8cdeb8474ff9df0b53"><div class="ttname"><a href="classflatbuffers_1_1_flat_buffer_builder.html#a3d57074082aaab8cdeb8474ff9df0b53">flatbuffers::FlatBufferBuilder::CreateVectorOfNativeStructs</a></div><div class="ttdeci">Offset&lt; Vector&lt; const T * &gt; &gt; CreateVectorOfNativeStructs(const S *v, size_t len)</div><div class="ttdoc">Serialize an array of native structs into a FlatBuffer vector. </div><div class="ttdef"><b>Definition:</b> flatbuffers.h:1232</div></div>
-<div class="ttc" id="classflatbuffers_1_1_flat_buffer_builder_html_a43f51ba9c8f4f24ea2247a3979d095b8"><div class="ttname"><a href="classflatbuffers_1_1_flat_buffer_builder.html#a43f51ba9c8f4f24ea2247a3979d095b8">flatbuffers::FlatBufferBuilder::CreateStruct</a></div><div class="ttdeci">Offset&lt; const T * &gt; CreateStruct(const T &amp;structobj)</div><div class="ttdoc">Write a struct by itself, typically to be part of a union. </div><div class="ttdef"><b>Definition:</b> flatbuffers.h:1448</div></div>
-<div class="ttc" id="classflatbuffers_1_1_flat_buffer_builder_html_a7ba8462e408431054c99d25120326220"><div class="ttname"><a href="classflatbuffers_1_1_flat_buffer_builder.html#a7ba8462e408431054c99d25120326220">flatbuffers::FlatBufferBuilder::FinishSizePrefixed</a></div><div class="ttdeci">void FinishSizePrefixed(Offset&lt; T &gt; root, const char *file_identifier=nullptr)</div><div class="ttdoc">Finish a buffer with a 32 bit size field pre-fixed (size of the buffer following the size field)...</div><div class="ttdef"><b>Definition:</b> flatbuffers.h:1473</div></div>
-<div class="ttc" id="classflatbuffers_1_1_detached_buffer_html"><div class="ttname"><a href="classflatbuffers_1_1_detached_buffer.html">flatbuffers::DetachedBuffer</a></div><div class="ttdef"><b>Definition:</b> flatbuffers.h:400</div></div>
-<div class="ttc" id="classflatbuffers_1_1_flat_buffer_builder_html_a3eb68613e5883dc4b8fff6cf7d1223d7"><div class="ttname"><a href="classflatbuffers_1_1_flat_buffer_builder.html#a3eb68613e5883dc4b8fff6cf7d1223d7">flatbuffers::FlatBufferBuilder::CreateSharedString</a></div><div class="ttdeci">Offset&lt; String &gt; CreateSharedString(const char *str)</div><div class="ttdoc">Store a string in the buffer, which null-terminated. </div><div class="ttdef"><b>Definition:</b> flatbuffers.h:1060</div></div>
-<div class="ttc" id="classflatbuffers_1_1_vector_of_any_html"><div class="ttname"><a href="classflatbuffers_1_1_vector_of_any.html">flatbuffers::VectorOfAny</a></div><div class="ttdef"><b>Definition:</b> flatbuffers.h:307</div></div>
-<div class="ttc" id="structflatbuffers_1_1_indirect_helper_html"><div class="ttname"><a href="structflatbuffers_1_1_indirect_helper.html">flatbuffers::IndirectHelper</a></div><div class="ttdef"><b>Definition:</b> flatbuffers.h:60</div></div>
-<div class="ttc" id="classflatbuffers_1_1_flat_buffer_builder_html_aec6f9df2a0366b540b24822414d92cbe"><div class="ttname"><a href="classflatbuffers_1_1_flat_buffer_builder.html#aec6f9df2a0366b540b24822414d92cbe">flatbuffers::FlatBufferBuilder::CreateString</a></div><div class="ttdeci">Offset&lt; String &gt; CreateString(const char *str, size_t len)</div><div class="ttdoc">Store a string in the buffer, which can contain any binary data. </div><div class="ttdef"><b>Definition:</b> flatbuffers.h:991</div></div>
-<div class="ttc" id="classflatbuffers_1_1_flat_buffer_builder_html_a16a8fd46b34ad7727406c37b65b6b27a"><div class="ttname"><a href="classflatbuffers_1_1_flat_buffer_builder.html#a16a8fd46b34ad7727406c37b65b6b27a">flatbuffers::FlatBufferBuilder::ForceDefaults</a></div><div class="ttdeci">void ForceDefaults(bool fd)</div><div class="ttdoc">In order to save space, fields that are set to their default value don&#39;t get serialized into the buff...</div><div class="ttdef"><b>Definition:</b> flatbuffers.h:776</div></div>
-<div class="ttc" id="classflatbuffers_1_1_default_allocator_html"><div class="ttname"><a href="classflatbuffers_1_1_default_allocator.html">flatbuffers::DefaultAllocator</a></div><div class="ttdef"><b>Definition:</b> flatbuffers.h:381</div></div>
-<div class="ttc" id="classflatbuffers_1_1_flat_buffer_builder_html_aa905b29dce19a1795c7bce375cf29961"><div class="ttname"><a href="classflatbuffers_1_1_flat_buffer_builder.html#aa905b29dce19a1795c7bce375cf29961">flatbuffers::FlatBufferBuilder::DedupVtables</a></div><div class="ttdeci">void DedupVtables(bool dedup)</div><div class="ttdoc">By default vtables are deduped in order to save space. </div><div class="ttdef"><b>Definition:</b> flatbuffers.h:780</div></div>
-<div class="ttc" id="classflatbuffers_1_1_flat_buffer_builder_html_af8c7583c92e1d1d6f438977da5158d19"><div class="ttname"><a href="classflatbuffers_1_1_flat_buffer_builder.html#af8c7583c92e1d1d6f438977da5158d19">flatbuffers::FlatBufferBuilder::kFileIdentifierLength</a></div><div class="ttdeci">static const size_t kFileIdentifierLength</div><div class="ttdoc">The length of a FlatBuffer file header. </div><div class="ttdef"><b>Definition:</b> flatbuffers.h:1455</div></div>
-<div class="ttc" id="classflatbuffers_1_1_flat_buffer_builder_html_ac0b6a1c5d949f20ad84367fc0f9e1506"><div class="ttname"><a href="classflatbuffers_1_1_flat_buffer_builder.html#ac0b6a1c5d949f20ad84367fc0f9e1506">flatbuffers::FlatBufferBuilder::CreateString</a></div><div class="ttdeci">Offset&lt; String &gt; CreateString(const String *str)</div><div class="ttdoc">Store a string in the buffer, which can contain any binary data. </div><div class="ttdef"><b>Definition:</b> flatbuffers.h:1017</div></div>
-<div class="ttc" id="classflatbuffers_1_1vector__downward_html"><div class="ttname"><a href="classflatbuffers_1_1vector__downward.html">flatbuffers::vector_downward</a></div><div class="ttdef"><b>Definition:</b> flatbuffers.h:506</div></div>
-<div class="ttc" id="classflatbuffers_1_1_flat_buffer_builder_html_a799701af34c398d8eb86e049b73bcecf"><div class="ttname"><a href="classflatbuffers_1_1_flat_buffer_builder.html#a799701af34c398d8eb86e049b73bcecf">flatbuffers::FlatBufferBuilder::CreateVectorOfSortedNativeStructs</a></div><div class="ttdeci">Offset&lt; Vector&lt; const T * &gt; &gt; CreateVectorOfSortedNativeStructs(S *v, size_t len)</div><div class="ttdoc">Serialize an array of native structs into a FlatBuffer vector in sorted order. </div><div class="ttdef"><b>Definition:</b> flatbuffers.h:1364</div></div>
-<div class="ttc" id="classflatbuffers_1_1_flat_buffer_builder_html_a840b769fbb4148f97d3eed266e4690c3"><div class="ttname"><a href="classflatbuffers_1_1_flat_buffer_builder.html#a840b769fbb4148f97d3eed266e4690c3">flatbuffers::FlatBufferBuilder::CreateSharedString</a></div><div class="ttdeci">Offset&lt; String &gt; CreateSharedString(const String *str)</div><div class="ttdoc">Store a string in the buffer, which can contain any binary data. </div><div class="ttdef"><b>Definition:</b> flatbuffers.h:1078</div></div>
-<div class="ttc" id="classflatbuffers_1_1_flat_buffer_builder_html_ab77d800e77fa76bc758a6c399fd37685"><div class="ttname"><a href="classflatbuffers_1_1_flat_buffer_builder.html#ab77d800e77fa76bc758a6c399fd37685">flatbuffers::FlatBufferBuilder::CreateString</a></div><div class="ttdeci">Offset&lt; String &gt; CreateString(const T &amp;str)</div><div class="ttdoc">Store a string in the buffer, which can contain any binary data. </div><div class="ttdef"><b>Definition:</b> flatbuffers.h:1026</div></div>
-<div class="ttc" id="classflatbuffers_1_1_flat_buffer_builder_html_a7cc10b709dfa3e72083843d1a5e36c15"><div class="ttname"><a href="classflatbuffers_1_1_flat_buffer_builder.html#a7cc10b709dfa3e72083843d1a5e36c15">flatbuffers::FlatBufferBuilder::CreateVectorOfSortedStructs</a></div><div class="ttdeci">Offset&lt; Vector&lt; const T * &gt; &gt; CreateVectorOfSortedStructs(std::vector&lt; T &gt; *v)</div><div class="ttdoc">Serialize a std::vector of structs into a FlatBuffer vector in sorted order. </div><div class="ttdef"><b>Definition:</b> flatbuffers.h:1323</div></div>
-<div class="ttc" id="classflatbuffers_1_1_flat_buffer_builder_html_a592110519a6c8db1926f1365bf2a58e6"><div class="ttname"><a href="classflatbuffers_1_1_flat_buffer_builder.html#a592110519a6c8db1926f1365bf2a58e6">flatbuffers::FlatBufferBuilder::CreateVectorOfStrings</a></div><div class="ttdeci">Offset&lt; Vector&lt; Offset&lt; String &gt; &gt; &gt; CreateVectorOfStrings(const std::vector&lt; std::string &gt; &amp;v)</div><div class="ttdoc">Serialize a std::vector<std::string> into a FlatBuffer vector. </div><div class="ttdef"><b>Definition:</b> flatbuffers.h:1203</div></div>
-<div class="ttc" id="classflatbuffers_1_1_flat_buffer_builder_html_a53504fc2cab681a7980b03260f8b2f7a"><div class="ttname"><a href="classflatbuffers_1_1_flat_buffer_builder.html#a53504fc2cab681a7980b03260f8b2f7a">flatbuffers::FlatBufferBuilder::CreateVector</a></div><div class="ttdeci">Offset&lt; Vector&lt; T &gt; &gt; CreateVector(size_t vector_size, F f, S *state)</div><div class="ttdoc">Serialize values returned by a function into a FlatBuffer vector. </div><div class="ttdef"><b>Definition:</b> flatbuffers.h:1190</div></div>
-<div class="ttc" id="classflatbuffers_1_1_flat_buffer_builder_html_ae4ab74f53187e6c3e6041d34e01904c4"><div class="ttname"><a href="classflatbuffers_1_1_flat_buffer_builder.html#ae4ab74f53187e6c3e6041d34e01904c4">flatbuffers::FlatBufferBuilder::FlatBufferBuilder</a></div><div class="ttdeci">FlatBufferBuilder(size_t initial_size=1024, Allocator *allocator=nullptr, bool own_allocator=false)</div><div class="ttdoc">Default constructor for FlatBufferBuilder. </div><div class="ttdef"><b>Definition:</b> flatbuffers.h:687</div></div>
-<div class="ttc" id="classflatbuffers_1_1_flat_buffer_builder_html_aa1ebce1f3f46832946a95952af1e9c2b"><div class="ttname"><a href="classflatbuffers_1_1_flat_buffer_builder.html#aa1ebce1f3f46832946a95952af1e9c2b">flatbuffers::FlatBufferBuilder::GetBufferMinAlignment</a></div><div class="ttdeci">size_t GetBufferMinAlignment()</div><div class="ttdoc">get the minimum alignment this buffer needs to be accessed properly. </div><div class="ttdef"><b>Definition:</b> flatbuffers.h:757</div></div>
-<div class="ttc" id="classflatbuffers_1_1_flat_buffer_builder_html_afede51fd9c32d146cbb1832f57c5e1b7"><div class="ttname"><a href="classflatbuffers_1_1_flat_buffer_builder.html#afede51fd9c32d146cbb1832f57c5e1b7">flatbuffers::FlatBufferBuilder::CreateVectorOfStructs</a></div><div class="ttdeci">Offset&lt; Vector&lt; const T * &gt; &gt; CreateVectorOfStructs(const T *v, size_t len)</div><div class="ttdoc">Serialize an array of structs into a FlatBuffer vector. </div><div class="ttdef"><b>Definition:</b> flatbuffers.h:1217</div></div>
-<div class="ttc" id="classflatbuffers_1_1_flat_buffer_builder_html_a11c291ccd2159604c149600ee6180b95"><div class="ttname"><a href="classflatbuffers_1_1_flat_buffer_builder.html#a11c291ccd2159604c149600ee6180b95">flatbuffers::FlatBufferBuilder::CreateVectorOfNativeStructs</a></div><div class="ttdeci">Offset&lt; Vector&lt; const T * &gt; &gt; CreateVectorOfNativeStructs(const std::vector&lt; S &gt; &amp;v)</div><div class="ttdoc">Serialize a std::vector of native structs into a FlatBuffer vector. </div><div class="ttdef"><b>Definition:</b> flatbuffers.h:1298</div></div>
-<div class="ttc" id="classflatbuffers_1_1_flat_buffer_builder_html_aad93d113ac24e86ed04b5236b3f4c0c5"><div class="ttname"><a href="classflatbuffers_1_1_flat_buffer_builder.html#aad93d113ac24e86ed04b5236b3f4c0c5">flatbuffers::FlatBufferBuilder::CreateString</a></div><div class="ttdeci">Offset&lt; String &gt; CreateString(const char *str)</div><div class="ttdoc">Store a string in the buffer, which is null-terminated. </div><div class="ttdef"><b>Definition:</b> flatbuffers.h:1003</div></div>
-<div class="ttc" id="classflatbuffers_1_1_allocator_html"><div class="ttname"><a href="classflatbuffers_1_1_allocator.html">flatbuffers::Allocator</a></div><div class="ttdef"><b>Definition:</b> flatbuffers.h:357</div></div>
-<div class="ttc" id="structflatbuffers_1_1_string_html"><div class="ttname"><a href="structflatbuffers_1_1_string.html">flatbuffers::String</a></div><div class="ttdef"><b>Definition:</b> flatbuffers.h:346</div></div>
-<div class="ttc" id="structflatbuffers_1_1_flat_buffer_builder_1_1_field_loc_html"><div class="ttname"><a href="structflatbuffers_1_1_flat_buffer_builder_1_1_field_loc.html">flatbuffers::FlatBufferBuilder::FieldLoc</a></div><div class="ttdef"><b>Definition:</b> flatbuffers.h:1502</div></div>
-<div class="ttc" id="classflatbuffers_1_1_flat_buffer_builder_html_a8c3af55e64f5cda9aefa38ac5287ef9f"><div class="ttname"><a href="classflatbuffers_1_1_flat_buffer_builder.html#a8c3af55e64f5cda9aefa38ac5287ef9f">flatbuffers::FlatBufferBuilder::CreateString</a></div><div class="ttdeci">Offset&lt; String &gt; CreateString(const std::string &amp;str)</div><div class="ttdoc">Store a string in the buffer, which can contain any binary data. </div><div class="ttdef"><b>Definition:</b> flatbuffers.h:1010</div></div>
-<div class="ttc" id="classflatbuffers_1_1_flat_buffer_builder_html_af715dd24dd37cb0151dc7a980ad0f207"><div class="ttname"><a href="classflatbuffers_1_1_flat_buffer_builder.html#af715dd24dd37cb0151dc7a980ad0f207">flatbuffers::FlatBufferBuilder::CreateVector</a></div><div class="ttdeci">Offset&lt; Vector&lt; T &gt; &gt; CreateVector(const std::vector&lt; T &gt; &amp;v)</div><div class="ttdoc">Serialize a std::vector into a FlatBuffer vector. </div><div class="ttdef"><b>Definition:</b> flatbuffers.h:1150</div></div>
-<div class="ttc" id="classflatbuffers_1_1_flat_buffer_builder_html_a2305b63d367845972b51669dd995cc50"><div class="ttname"><a href="classflatbuffers_1_1_flat_buffer_builder.html#a2305b63d367845972b51669dd995cc50">flatbuffers::FlatBufferBuilder::CreateUninitializedVector</a></div><div class="ttdeci">Offset&lt; Vector&lt; T &gt; &gt; CreateUninitializedVector(size_t len, T **buf)</div><div class="ttdoc">Specialized version of CreateVector for non-copying use cases. </div><div class="ttdef"><b>Definition:</b> flatbuffers.h:1441</div></div>
-<div class="ttc" id="classflatbuffers_1_1_flat_buffer_builder_html_a3f4252e9bc005ba6c700469544fdccc9"><div class="ttname"><a href="classflatbuffers_1_1_flat_buffer_builder.html#a3f4252e9bc005ba6c700469544fdccc9">flatbuffers::FlatBufferBuilder::GetCurrentBufferPointer</a></div><div class="ttdeci">uint8_t * GetCurrentBufferPointer() const </div><div class="ttdoc">Get a pointer to an unfinished buffer. </div><div class="ttdef"><b>Definition:</b> flatbuffers.h:733</div></div>
-<div class="ttc" id="classflatbuffers_1_1_flat_buffer_builder_html_a2cca5c89246a53e80e6ad9487f4c36f3"><div class="ttname"><a href="classflatbuffers_1_1_flat_buffer_builder.html#a2cca5c89246a53e80e6ad9487f4c36f3">flatbuffers::FlatBufferBuilder::CreateVector</a></div><div class="ttdeci">Offset&lt; Vector&lt; T &gt; &gt; CreateVector(const T *v, size_t len)</div><div class="ttdoc">Serialize an array into a FlatBuffer vector. </div><div class="ttdef"><b>Definition:</b> flatbuffers.h:1117</div></div>
-<div class="ttc" id="classflatbuffers_1_1_flat_buffer_builder_html_a10e8ec7d1c8fbdc21b1c7047bbbe38d9"><div class="ttname"><a href="classflatbuffers_1_1_flat_buffer_builder.html#a10e8ec7d1c8fbdc21b1c7047bbbe38d9">flatbuffers::FlatBufferBuilder::CreateSharedString</a></div><div class="ttdeci">Offset&lt; String &gt; CreateSharedString(const std::string &amp;str)</div><div class="ttdoc">Store a string in the buffer, which can contain any binary data. </div><div class="ttdef"><b>Definition:</b> flatbuffers.h:1069</div></div>
-<div class="ttc" id="classflatbuffers_1_1_flat_buffer_builder_html_a2130ef232ff405eebe2e7f184ecd06e6"><div class="ttname"><a href="classflatbuffers_1_1_flat_buffer_builder.html#a2130ef232ff405eebe2e7f184ecd06e6">flatbuffers::FlatBufferBuilder::CreateVectorOfSortedTables</a></div><div class="ttdeci">Offset&lt; Vector&lt; Offset&lt; T &gt; &gt; &gt; CreateVectorOfSortedTables(Offset&lt; T &gt; *v, size_t len)</div><div class="ttdoc">Serialize an array of table offsets as a vector in the buffer in sorted order. </div><div class="ttdef"><b>Definition:</b> flatbuffers.h:1397</div></div>
-<div class="ttc" id="classflatbuffers_1_1_flat_buffer_builder_html_a5e2c3a1e47f0ab4a3a3f07a07a52fb45"><div class="ttname"><a href="classflatbuffers_1_1_flat_buffer_builder.html#a5e2c3a1e47f0ab4a3a3f07a07a52fb45">flatbuffers::FlatBufferBuilder::Release</a></div><div class="ttdeci">DetachedBuffer Release()</div><div class="ttdoc">Get the released DetachedBuffer. </div><div class="ttdef"><b>Definition:</b> flatbuffers.h:747</div></div>
-<div class="ttc" id="classflatbuffers_1_1_flat_buffer_builder_html_ab478a645216d2d613fc7b7c29b0ff9d1"><div class="ttname"><a href="classflatbuffers_1_1_flat_buffer_builder.html#ab478a645216d2d613fc7b7c29b0ff9d1">flatbuffers::FlatBufferBuilder::CreateSharedString</a></div><div class="ttdeci">Offset&lt; String &gt; CreateSharedString(const char *str, size_t len)</div><div class="ttdoc">Store a string in the buffer, which can contain any binary data. </div><div class="ttdef"><b>Definition:</b> flatbuffers.h:1036</div></div>
-<div class="ttc" id="classflatbuffers_1_1_flat_buffer_builder_html_a8704709a2e25ad04679212ee4126b1a1"><div class="ttname"><a href="classflatbuffers_1_1_flat_buffer_builder.html#a8704709a2e25ad04679212ee4126b1a1">flatbuffers::FlatBufferBuilder::CreateVectorOfStructs</a></div><div class="ttdeci">Offset&lt; Vector&lt; const T * &gt; &gt; CreateVectorOfStructs(const std::vector&lt; T &gt; &amp;v)</div><div class="ttdoc">Serialize a std::vector of structs into a FlatBuffer vector. </div><div class="ttdef"><b>Definition:</b> flatbuffers.h:1286</div></div>
-<div class="ttc" id="classflatbuffers_1_1_vector_html"><div class="ttname"><a href="classflatbuffers_1_1_vector.html">flatbuffers::Vector</a></div><div class="ttdef"><b>Definition:</b> flatbuffers.h:182</div></div>
-<div class="ttc" id="classflatbuffers_1_1_flat_buffer_builder_html_a0e715d9019060b4b753c4e5228be56e8"><div class="ttname"><a href="classflatbuffers_1_1_flat_buffer_builder.html#a0e715d9019060b4b753c4e5228be56e8">flatbuffers::FlatBufferBuilder::ReleaseBufferPointer</a></div><div class="ttdeci">DetachedBuffer ReleaseBufferPointer()</div><div class="ttdoc">Get the released pointer to the serialized buffer. </div><div class="ttdef"><b>Definition:</b> flatbuffers.h:740</div></div>
-<div class="ttc" id="classflatbuffers_1_1_flat_buffer_builder_html_a0c9e507b373d598b51052fab4fa34912"><div class="ttname"><a href="classflatbuffers_1_1_flat_buffer_builder.html#a0c9e507b373d598b51052fab4fa34912">flatbuffers::FlatBufferBuilder::Finish</a></div><div class="ttdeci">void Finish(Offset&lt; T &gt; root, const char *file_identifier=nullptr)</div><div class="ttdoc">Finish serializing a buffer by writing the root offset. </div><div class="ttdef"><b>Definition:</b> flatbuffers.h:1460</div></div>
-<div class="ttc" id="structflatbuffers_1_1_flat_buffer_builder_1_1_string_offset_compare_html"><div class="ttname"><a href="structflatbuffers_1_1_flat_buffer_builder_1_1_string_offset_compare.html">flatbuffers::FlatBufferBuilder::StringOffsetCompare</a></div><div class="ttdef"><b>Definition:</b> flatbuffers.h:1529</div></div>
-<div class="ttc" id="classflatbuffers_1_1_flat_buffer_builder_html_a8dc35f792179df4ca850492c1796d8b8"><div class="ttname"><a href="classflatbuffers_1_1_flat_buffer_builder.html#a8dc35f792179df4ca850492c1796d8b8">flatbuffers::FlatBufferBuilder::GetBufferPointer</a></div><div class="ttdeci">uint8_t * GetBufferPointer() const </div><div class="ttdoc">Get the serialized buffer (after you call Finish()). </div><div class="ttdef"><b>Definition:</b> flatbuffers.h:726</div></div>
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Copyright 2014 Google Inc. All rights reserved.</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * you may not use this file except in compliance with the License.</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * You may obtain a copy of the License at</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> *     http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing, software</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> * distributed under the License is distributed on an &quot;AS IS&quot; BASIS,</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * See the License for the specific language governing permissions and</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * limitations under the License.</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="preprocessor">#ifndef FLATBUFFERS_H_</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="preprocessor">#define FLATBUFFERS_H_</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#include &quot;flatbuffers/base.h&quot;</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;</div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceflatbuffers.html">flatbuffers</a> {</div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="comment">// Wrapper for uoffset_t to allow safe template specialization.</span></div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="comment">// Value is allowed to be 0 to indicate a null object (see e.g. AddOffset).</span></div><div class="line"><a name="l00025"></a><span class="lineno"><a class="line" href="structflatbuffers_1_1_offset.html">   25</a></span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span><a class="code" href="structflatbuffers_1_1_offset.html">Offset</a> {</div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;  uoffset_t o;</div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;  <a class="code" href="structflatbuffers_1_1_offset.html">Offset</a>() : o(0) {}</div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;  <a class="code" href="structflatbuffers_1_1_offset.html">Offset</a>(uoffset_t _o) : o(_o) {}</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;  <a class="code" href="structflatbuffers_1_1_offset.html">Offset&lt;void&gt;</a> Union()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="structflatbuffers_1_1_offset.html">Offset&lt;void&gt;</a>(o); }</div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;  <span class="keywordtype">bool</span> IsNull()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> !o; }</div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;};</div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> EndianCheck() {</div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;  <span class="keywordtype">int</span> endiantest = 1;</div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;  <span class="comment">// If this fails, see FLATBUFFERS_LITTLEENDIAN above.</span></div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;  assert(*reinterpret_cast&lt;char *&gt;(&amp;endiantest) == FLATBUFFERS_LITTLEENDIAN);</div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;  (void)endiantest;</div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;}</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt; FLATBUFFERS_CONSTEXPR <span class="keywordtype">size_t</span> AlignOf() {</div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;  <span class="comment">// clang-format off</span></div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;<span class="preprocessor">  #ifdef _MSC_VER</span></div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;    <span class="keywordflow">return</span> __alignof(T);</div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;<span class="preprocessor">  #else</span></div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;<span class="preprocessor">    #ifndef alignof</span></div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;      <span class="keywordflow">return</span> __alignof__(T);</div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;<span class="preprocessor">    #else</span></div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;      <span class="keywordflow">return</span> <span class="keyword">alignof</span>(T);</div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;<span class="preprocessor">    #endif</span></div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;<span class="preprocessor">  #endif</span></div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;  <span class="comment">// clang-format on</span></div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;}</div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;<span class="comment">// When we read serialized data from memory, in the case of most scalars,</span></div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;<span class="comment">// we want to just read T, but in the case of Offset, we want to actually</span></div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;<span class="comment">// perform the indirection and return a pointer.</span></div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;<span class="comment">// The template specialization below does just that.</span></div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;<span class="comment">// It is wrapped in a struct since function templates can&#39;t overload on the</span></div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;<span class="comment">// return type like this.</span></div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;<span class="comment">// The typedef is for the convenience of callers of this function</span></div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;<span class="comment">// (avoiding the need for a trailing return decltype)</span></div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="structflatbuffers_1_1_indirect_helper.html">   62</a></span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span><a class="code" href="structflatbuffers_1_1_indirect_helper.html">IndirectHelper</a> {</div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;  <span class="keyword">typedef</span> T return_type;</div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;  <span class="keyword">typedef</span> T mutable_return_type;</div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;  <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">size_t</span> element_stride = <span class="keyword">sizeof</span>(T);</div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;  <span class="keyword">static</span> return_type Read(<span class="keyword">const</span> uint8_t *p, uoffset_t i) {</div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;    <span class="keywordflow">return</span> EndianScalar((reinterpret_cast&lt;const T *&gt;(p))[i]);</div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;  }</div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;};</div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="structflatbuffers_1_1_indirect_helper_3_01_offset_3_01_t_01_4_01_4.html">   70</a></span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span><a class="code" href="structflatbuffers_1_1_indirect_helper.html">IndirectHelper</a>&lt;<a class="code" href="structflatbuffers_1_1_offset.html">Offset</a>&lt;T&gt;&gt; {</div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;  <span class="keyword">typedef</span> <span class="keyword">const</span> T *return_type;</div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;  <span class="keyword">typedef</span> T *mutable_return_type;</div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;  <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">size_t</span> element_stride = <span class="keyword">sizeof</span>(uoffset_t);</div><div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;  <span class="keyword">static</span> return_type Read(<span class="keyword">const</span> uint8_t *p, uoffset_t i) {</div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;    p += i * <span class="keyword">sizeof</span>(uoffset_t);</div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">reinterpret_cast&lt;</span>return_type<span class="keyword">&gt;</span>(p + ReadScalar&lt;uoffset_t&gt;(p));</div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;  }</div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;};</div><div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="structflatbuffers_1_1_indirect_helper_3_01const_01_t_01_5_01_4.html">   79</a></span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span><a class="code" href="structflatbuffers_1_1_indirect_helper.html">IndirectHelper</a>&lt;const T *&gt; {</div><div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;  <span class="keyword">typedef</span> <span class="keyword">const</span> T *return_type;</div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;  <span class="keyword">typedef</span> T *mutable_return_type;</div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;  <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">size_t</span> element_stride = <span class="keyword">sizeof</span>(T);</div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;  <span class="keyword">static</span> return_type Read(<span class="keyword">const</span> uint8_t *p, uoffset_t i) {</div><div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">reinterpret_cast&lt;</span><span class="keyword">const </span>T *<span class="keyword">&gt;</span>(p + i * <span class="keyword">sizeof</span>(T));</div><div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;  }</div><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;};</div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;<span class="comment">// An STL compatible iterator implementation for Vector below, effectively</span></div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;<span class="comment">// calling Get() for every element.</span></div><div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="structflatbuffers_1_1_vector_iterator.html">   90</a></span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> IT&gt; <span class="keyword">struct </span><a class="code" href="structflatbuffers_1_1_vector_iterator.html">VectorIterator</a> {</div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;  <span class="keyword">typedef</span> std::random_access_iterator_tag iterator_category;</div><div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;  <span class="keyword">typedef</span> IT value_type;</div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;  <span class="keyword">typedef</span> uoffset_t difference_type;</div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;  <span class="keyword">typedef</span> IT *pointer;</div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;  <span class="keyword">typedef</span> IT &amp;reference;</div><div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;  <a class="code" href="structflatbuffers_1_1_vector_iterator.html">VectorIterator</a>(<span class="keyword">const</span> uint8_t *data, uoffset_t i)</div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;      : data_(data + <a class="code" href="structflatbuffers_1_1_indirect_helper.html">IndirectHelper&lt;T&gt;::element_stride</a> * i) {}</div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;  <a class="code" href="structflatbuffers_1_1_vector_iterator.html">VectorIterator</a>(<span class="keyword">const</span> <a class="code" href="structflatbuffers_1_1_vector_iterator.html">VectorIterator</a> &amp;other) : data_(other.data_) {}</div><div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;  <a class="code" href="structflatbuffers_1_1_vector_iterator.html">VectorIterator</a> &amp;operator=(<span class="keyword">const</span> <a class="code" href="structflatbuffers_1_1_vector_iterator.html">VectorIterator</a> &amp;other) {</div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;    data_ = other.data_;</div><div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;    <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;  }</div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;  <a class="code" href="structflatbuffers_1_1_vector_iterator.html">VectorIterator</a> &amp;operator=(<a class="code" href="structflatbuffers_1_1_vector_iterator.html">VectorIterator</a> &amp;&amp;other) {</div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;    data_ = other.data_;</div><div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;    <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;  }</div><div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;</div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;  <span class="keywordtype">bool</span> operator==(<span class="keyword">const</span> <a class="code" href="structflatbuffers_1_1_vector_iterator.html">VectorIterator</a> &amp;other)<span class="keyword"> const </span>{</div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;    <span class="keywordflow">return</span> data_ == other.data_;</div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;  }</div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;</div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;  <span class="keywordtype">bool</span> operator&lt;(<span class="keyword">const</span> <a class="code" href="structflatbuffers_1_1_vector_iterator.html">VectorIterator</a> &amp;other)<span class="keyword"> const </span>{</div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;    <span class="keywordflow">return</span> data_ &lt; other.data_;</div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;  }</div><div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;</div><div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;  <span class="keywordtype">bool</span> operator!=(<span class="keyword">const</span> <a class="code" href="structflatbuffers_1_1_vector_iterator.html">VectorIterator</a> &amp;other)<span class="keyword"> const </span>{</div><div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;    <span class="keywordflow">return</span> data_ != other.data_;</div><div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;  }</div><div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;</div><div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;  ptrdiff_t operator-(<span class="keyword">const</span> <a class="code" href="structflatbuffers_1_1_vector_iterator.html">VectorIterator</a> &amp;other)<span class="keyword"> const </span>{</div><div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;    <span class="keywordflow">return</span> (data_ - other.data_) / <a class="code" href="structflatbuffers_1_1_indirect_helper.html">IndirectHelper&lt;T&gt;::element_stride</a>;</div><div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;  }</div><div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;</div><div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;  IT operator*()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="structflatbuffers_1_1_indirect_helper.html">IndirectHelper&lt;T&gt;::Read</a>(data_, 0); }</div><div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;</div><div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;  IT operator-&gt;()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="structflatbuffers_1_1_indirect_helper.html">IndirectHelper&lt;T&gt;::Read</a>(data_, 0); }</div><div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;</div><div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;  <a class="code" href="structflatbuffers_1_1_vector_iterator.html">VectorIterator</a> &amp;operator++() {</div><div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;    data_ += <a class="code" href="structflatbuffers_1_1_indirect_helper.html">IndirectHelper&lt;T&gt;::element_stride</a>;</div><div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;    <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;  }</div><div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;</div><div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;  <a class="code" href="structflatbuffers_1_1_vector_iterator.html">VectorIterator</a> operator++(<span class="keywordtype">int</span>) {</div><div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;    <a class="code" href="structflatbuffers_1_1_vector_iterator.html">VectorIterator</a> temp(data_, 0);</div><div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;    data_ += <a class="code" href="structflatbuffers_1_1_indirect_helper.html">IndirectHelper&lt;T&gt;::element_stride</a>;</div><div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;    <span class="keywordflow">return</span> temp;</div><div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;  }</div><div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;</div><div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;  <a class="code" href="structflatbuffers_1_1_vector_iterator.html">VectorIterator</a> operator+(<span class="keyword">const</span> uoffset_t &amp;offset)<span class="keyword"> const </span>{</div><div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="structflatbuffers_1_1_vector_iterator.html">VectorIterator</a>(data_ + offset * <a class="code" href="structflatbuffers_1_1_indirect_helper.html">IndirectHelper&lt;T&gt;::element_stride</a>,</div><div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;                          0);</div><div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;  }</div><div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;</div><div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;  <a class="code" href="structflatbuffers_1_1_vector_iterator.html">VectorIterator</a> &amp;operator+=(<span class="keyword">const</span> uoffset_t &amp;offset) {</div><div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;    data_ += offset * <a class="code" href="structflatbuffers_1_1_indirect_helper.html">IndirectHelper&lt;T&gt;::element_stride</a>;</div><div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;    <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;  }</div><div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;</div><div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;  <a class="code" href="structflatbuffers_1_1_vector_iterator.html">VectorIterator</a> &amp;operator--() {</div><div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;    data_ -= <a class="code" href="structflatbuffers_1_1_indirect_helper.html">IndirectHelper&lt;T&gt;::element_stride</a>;</div><div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;    <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;  }</div><div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;</div><div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;  <a class="code" href="structflatbuffers_1_1_vector_iterator.html">VectorIterator</a> operator--(<span class="keywordtype">int</span>) {</div><div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;    <a class="code" href="structflatbuffers_1_1_vector_iterator.html">VectorIterator</a> temp(data_, 0);</div><div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;    data_ -= <a class="code" href="structflatbuffers_1_1_indirect_helper.html">IndirectHelper&lt;T&gt;::element_stride</a>;</div><div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;    <span class="keywordflow">return</span> temp;</div><div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;  }</div><div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;  <a class="code" href="structflatbuffers_1_1_vector_iterator.html">VectorIterator</a> operator-(<span class="keyword">const</span> uoffset_t &amp;offset) {</div><div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="structflatbuffers_1_1_vector_iterator.html">VectorIterator</a>(data_ - offset * <a class="code" href="structflatbuffers_1_1_indirect_helper.html">IndirectHelper&lt;T&gt;::element_stride</a>,</div><div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;                          0);</div><div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;  }</div><div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;</div><div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;  <a class="code" href="structflatbuffers_1_1_vector_iterator.html">VectorIterator</a> &amp;operator-=(<span class="keyword">const</span> uoffset_t &amp;offset) {</div><div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;    data_ -= offset * <a class="code" href="structflatbuffers_1_1_indirect_helper.html">IndirectHelper&lt;T&gt;::element_stride</a>;</div><div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;    <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;  }</div><div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;</div><div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160; <span class="keyword">private</span>:</div><div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;  <span class="keyword">const</span> uint8_t *data_;</div><div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;};</div><div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;</div><div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;<span class="keyword">struct </span><a class="code" href="structflatbuffers_1_1_string.html">String</a>;</div><div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;</div><div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;<span class="comment">// This is used as a helper type for accessing vectors.</span></div><div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;<span class="comment">// Vector::data() assumes the vector elements start after the length field.</span></div><div class="line"><a name="l00181"></a><span class="lineno"><a class="line" href="classflatbuffers_1_1_vector.html">  181</a></span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt; <span class="keyword">class </span><a class="code" href="classflatbuffers_1_1_vector.html">Vector</a> {</div><div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;  <span class="keyword">typedef</span> <a class="code" href="structflatbuffers_1_1_vector_iterator.html">VectorIterator&lt;T, typename IndirectHelper&lt;T&gt;::mutable_return_type</a>&gt;</div><div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;      <a class="code" href="structflatbuffers_1_1_vector_iterator.html">iterator</a>;</div><div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;  <span class="keyword">typedef</span> <a class="code" href="structflatbuffers_1_1_vector_iterator.html">VectorIterator&lt;T, typename IndirectHelper&lt;T&gt;::return_type</a>&gt;</div><div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;      <a class="code" href="structflatbuffers_1_1_vector_iterator.html">const_iterator</a>;</div><div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;</div><div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;  uoffset_t size()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> EndianScalar(length_); }</div><div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;</div><div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;  <span class="comment">// Deprecated: use size(). Here for backwards compatibility.</span></div><div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;  uoffset_t Length()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> size(); }</div><div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;</div><div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;  <span class="keyword">typedef</span> <span class="keyword">typename</span> IndirectHelper&lt;T&gt;::return_type return_type;</div><div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;  <span class="keyword">typedef</span> <span class="keyword">typename</span> IndirectHelper&lt;T&gt;::mutable_return_type mutable_return_type;</div><div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;</div><div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;  return_type Get(uoffset_t i)<span class="keyword"> const </span>{</div><div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;    assert(i &lt; size());</div><div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="structflatbuffers_1_1_indirect_helper.html">IndirectHelper&lt;T&gt;::Read</a>(Data(), i);</div><div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;  }</div><div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;</div><div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;  return_type operator[](uoffset_t i)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> Get(i); }</div><div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;</div><div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;  <span class="comment">// If this is a Vector of enums, T will be its storage type, not the enum</span></div><div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;  <span class="comment">// type. This function makes it convenient to retrieve value with enum</span></div><div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;  <span class="comment">// type E.</span></div><div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> E&gt; E GetEnum(uoffset_t i)<span class="keyword"> const </span>{</div><div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span>E<span class="keyword">&gt;</span>(Get(i));</div><div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;  }</div><div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;</div><div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;  <span class="comment">// If this a vector of unions, this does the cast for you. There&#39;s no check</span></div><div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;  <span class="comment">// to make sure this is the right type!</span></div><div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt; <span class="keyword">const</span> U *GetAs(uoffset_t i)<span class="keyword"> const </span>{</div><div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">reinterpret_cast&lt;</span><span class="keyword">const </span>U *<span class="keyword">&gt;</span>(Get(i));</div><div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;  }</div><div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;</div><div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;  <span class="comment">// If this a vector of unions, this does the cast for you. There&#39;s no check</span></div><div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;  <span class="comment">// to make sure this is actually a string!</span></div><div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;  <span class="keyword">const</span> <a class="code" href="structflatbuffers_1_1_string.html">String</a> *GetAsString(uoffset_t i)<span class="keyword"> const </span>{</div><div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">reinterpret_cast&lt;</span><span class="keyword">const </span><a class="code" href="structflatbuffers_1_1_string.html">String</a> *<span class="keyword">&gt;</span>(Get(i));</div><div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;  }</div><div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;</div><div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;  <span class="keyword">const</span> <span class="keywordtype">void</span> *GetStructFromOffset(<span class="keywordtype">size_t</span> o)<span class="keyword"> const </span>{</div><div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">reinterpret_cast&lt;</span><span class="keyword">const </span><span class="keywordtype">void</span> *<span class="keyword">&gt;</span>(Data() + o);</div><div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;  }</div><div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;</div><div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;  iterator begin() { <span class="keywordflow">return</span> iterator(Data(), 0); }</div><div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;  const_iterator begin()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> const_iterator(Data(), 0); }</div><div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;</div><div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;  iterator end() { <span class="keywordflow">return</span> iterator(Data(), size()); }</div><div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160;  const_iterator end()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> const_iterator(Data(), size()); }</div><div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;</div><div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;  <span class="comment">// Change elements if you have a non-const pointer to this object.</span></div><div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;  <span class="comment">// Scalars only. See reflection.h, and the documentation.</span></div><div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;  <span class="keywordtype">void</span> Mutate(uoffset_t i, <span class="keyword">const</span> T &amp;val) {</div><div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;    assert(i &lt; size());</div><div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;    WriteScalar(data() + i, val);</div><div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;  }</div><div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;</div><div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;  <span class="comment">// Change an element of a vector of tables (or strings).</span></div><div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;  <span class="comment">// &quot;val&quot; points to the new table/string, as you can obtain from</span></div><div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;  <span class="comment">// e.g. reflection::AddFlatBuffer().</span></div><div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;  <span class="keywordtype">void</span> MutateOffset(uoffset_t i, <span class="keyword">const</span> uint8_t *val) {</div><div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;    assert(i &lt; size());</div><div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;    assert(<span class="keyword">sizeof</span>(T) == <span class="keyword">sizeof</span>(uoffset_t));</div><div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;    WriteScalar(data() + i,</div><div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160;                static_cast&lt;uoffset_t&gt;(val - (Data() + i * <span class="keyword">sizeof</span>(uoffset_t))));</div><div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;  }</div><div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160;</div><div class="line"><a name="l00249"></a><span class="lineno">  249</span>&#160;  <span class="comment">// Get a mutable pointer to tables/strings inside this vector.</span></div><div class="line"><a name="l00250"></a><span class="lineno">  250</span>&#160;  mutable_return_type GetMutableObject(uoffset_t i)<span class="keyword"> const </span>{</div><div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160;    assert(i &lt; size());</div><div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">const_cast&lt;</span>mutable_return_type<span class="keyword">&gt;</span>(<a class="code" href="structflatbuffers_1_1_indirect_helper.html">IndirectHelper&lt;T&gt;::Read</a>(Data(), i));</div><div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160;  }</div><div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160;</div><div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160;  <span class="comment">// The raw data in little endian format. Use with care.</span></div><div class="line"><a name="l00256"></a><span class="lineno">  256</span>&#160;  <span class="keyword">const</span> uint8_t *Data()<span class="keyword"> const </span>{</div><div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">reinterpret_cast&lt;</span><span class="keyword">const </span>uint8_t *<span class="keyword">&gt;</span>(&amp;length_ + 1);</div><div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160;  }</div><div class="line"><a name="l00259"></a><span class="lineno">  259</span>&#160;</div><div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160;  uint8_t *Data() { <span class="keywordflow">return</span> <span class="keyword">reinterpret_cast&lt;</span>uint8_t *<span class="keyword">&gt;</span>(&amp;length_ + 1); }</div><div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160;</div><div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160;  <span class="comment">// Similarly, but typed, much like std::vector::data</span></div><div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160;  <span class="keyword">const</span> T *data()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <span class="keyword">reinterpret_cast&lt;</span><span class="keyword">const </span>T *<span class="keyword">&gt;</span>(Data()); }</div><div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160;  T *data() { <span class="keywordflow">return</span> <span class="keyword">reinterpret_cast&lt;</span>T *<span class="keyword">&gt;</span>(Data()); }</div><div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;</div><div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160;  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> K&gt; return_type LookupByKey(K key)<span class="keyword"> const </span>{</div><div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160;    <span class="keywordtype">void</span> *search_result = std::bsearch(</div><div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;        &amp;key, Data(), size(), <a class="code" href="structflatbuffers_1_1_indirect_helper.html">IndirectHelper&lt;T&gt;::element_stride</a>, KeyCompare&lt;K&gt;);</div><div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160;</div><div class="line"><a name="l00270"></a><span class="lineno">  270</span>&#160;    <span class="keywordflow">if</span> (!search_result) {</div><div class="line"><a name="l00271"></a><span class="lineno">  271</span>&#160;      <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;  <span class="comment">// Key not found.</span></div><div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160;    }</div><div class="line"><a name="l00273"></a><span class="lineno">  273</span>&#160;</div><div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160;    <span class="keyword">const</span> uint8_t *element = <span class="keyword">reinterpret_cast&lt;</span><span class="keyword">const </span>uint8_t *<span class="keyword">&gt;</span>(search_result);</div><div class="line"><a name="l00275"></a><span class="lineno">  275</span>&#160;</div><div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="structflatbuffers_1_1_indirect_helper.html">IndirectHelper&lt;T&gt;::Read</a>(element, 0);</div><div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160;  }</div><div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160;</div><div class="line"><a name="l00279"></a><span class="lineno">  279</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00280"></a><span class="lineno">  280</span>&#160;  <span class="comment">// This class is only used to access pre-existing data. Don&#39;t ever</span></div><div class="line"><a name="l00281"></a><span class="lineno">  281</span>&#160;  <span class="comment">// try to construct these manually.</span></div><div class="line"><a name="l00282"></a><span class="lineno">  282</span>&#160;  <a class="code" href="classflatbuffers_1_1_vector.html">Vector</a>();</div><div class="line"><a name="l00283"></a><span class="lineno">  283</span>&#160;</div><div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160;  uoffset_t length_;</div><div class="line"><a name="l00285"></a><span class="lineno">  285</span>&#160;</div><div class="line"><a name="l00286"></a><span class="lineno">  286</span>&#160; <span class="keyword">private</span>:</div><div class="line"><a name="l00287"></a><span class="lineno">  287</span>&#160;  <span class="comment">// This class is a pointer. Copying will therefore create an invalid object.</span></div><div class="line"><a name="l00288"></a><span class="lineno">  288</span>&#160;  <span class="comment">// Private and unimplemented copy constructor.</span></div><div class="line"><a name="l00289"></a><span class="lineno">  289</span>&#160;  <a class="code" href="classflatbuffers_1_1_vector.html">Vector</a>(<span class="keyword">const</span> <a class="code" href="classflatbuffers_1_1_vector.html">Vector</a> &amp;);</div><div class="line"><a name="l00290"></a><span class="lineno">  290</span>&#160;</div><div class="line"><a name="l00291"></a><span class="lineno">  291</span>&#160;  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> K&gt; <span class="keyword">static</span> <span class="keywordtype">int</span> KeyCompare(<span class="keyword">const</span> <span class="keywordtype">void</span> *ap, <span class="keyword">const</span> <span class="keywordtype">void</span> *bp) {</div><div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160;    <span class="keyword">const</span> K *key = <span class="keyword">reinterpret_cast&lt;</span><span class="keyword">const </span>K *<span class="keyword">&gt;</span>(ap);</div><div class="line"><a name="l00293"></a><span class="lineno">  293</span>&#160;    <span class="keyword">const</span> uint8_t *data = <span class="keyword">reinterpret_cast&lt;</span><span class="keyword">const </span>uint8_t *<span class="keyword">&gt;</span>(bp);</div><div class="line"><a name="l00294"></a><span class="lineno">  294</span>&#160;    <span class="keyword">auto</span> table = <a class="code" href="structflatbuffers_1_1_indirect_helper.html">IndirectHelper&lt;T&gt;::Read</a>(data, 0);</div><div class="line"><a name="l00295"></a><span class="lineno">  295</span>&#160;</div><div class="line"><a name="l00296"></a><span class="lineno">  296</span>&#160;    <span class="comment">// std::bsearch compares with the operands transposed, so we negate the</span></div><div class="line"><a name="l00297"></a><span class="lineno">  297</span>&#160;    <span class="comment">// result here.</span></div><div class="line"><a name="l00298"></a><span class="lineno">  298</span>&#160;    <span class="keywordflow">return</span> -table-&gt;KeyCompareWithValue(*key);</div><div class="line"><a name="l00299"></a><span class="lineno">  299</span>&#160;  }</div><div class="line"><a name="l00300"></a><span class="lineno">  300</span>&#160;};</div><div class="line"><a name="l00301"></a><span class="lineno">  301</span>&#160;</div><div class="line"><a name="l00302"></a><span class="lineno">  302</span>&#160;<span class="comment">// Represent a vector much like the template above, but in this case we</span></div><div class="line"><a name="l00303"></a><span class="lineno">  303</span>&#160;<span class="comment">// don&#39;t know what the element types are (used with reflection.h).</span></div><div class="line"><a name="l00304"></a><span class="lineno"><a class="line" href="classflatbuffers_1_1_vector_of_any.html">  304</a></span>&#160;<span class="keyword">class </span><a class="code" href="classflatbuffers_1_1_vector_of_any.html">VectorOfAny</a> {</div><div class="line"><a name="l00305"></a><span class="lineno">  305</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00306"></a><span class="lineno">  306</span>&#160;  uoffset_t size()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> EndianScalar(length_); }</div><div class="line"><a name="l00307"></a><span class="lineno">  307</span>&#160;</div><div class="line"><a name="l00308"></a><span class="lineno">  308</span>&#160;  <span class="keyword">const</span> uint8_t *Data()<span class="keyword"> const </span>{</div><div class="line"><a name="l00309"></a><span class="lineno">  309</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">reinterpret_cast&lt;</span><span class="keyword">const </span>uint8_t *<span class="keyword">&gt;</span>(&amp;length_ + 1);</div><div class="line"><a name="l00310"></a><span class="lineno">  310</span>&#160;  }</div><div class="line"><a name="l00311"></a><span class="lineno">  311</span>&#160;  uint8_t *Data() { <span class="keywordflow">return</span> <span class="keyword">reinterpret_cast&lt;</span>uint8_t *<span class="keyword">&gt;</span>(&amp;length_ + 1); }</div><div class="line"><a name="l00312"></a><span class="lineno">  312</span>&#160;</div><div class="line"><a name="l00313"></a><span class="lineno">  313</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00314"></a><span class="lineno">  314</span>&#160;  <a class="code" href="classflatbuffers_1_1_vector_of_any.html">VectorOfAny</a>();</div><div class="line"><a name="l00315"></a><span class="lineno">  315</span>&#160;</div><div class="line"><a name="l00316"></a><span class="lineno">  316</span>&#160;  uoffset_t length_;</div><div class="line"><a name="l00317"></a><span class="lineno">  317</span>&#160;</div><div class="line"><a name="l00318"></a><span class="lineno">  318</span>&#160; <span class="keyword">private</span>:</div><div class="line"><a name="l00319"></a><span class="lineno">  319</span>&#160;  <a class="code" href="classflatbuffers_1_1_vector_of_any.html">VectorOfAny</a>(<span class="keyword">const</span> <a class="code" href="classflatbuffers_1_1_vector_of_any.html">VectorOfAny</a> &amp;);</div><div class="line"><a name="l00320"></a><span class="lineno">  320</span>&#160;};</div><div class="line"><a name="l00321"></a><span class="lineno">  321</span>&#160;</div><div class="line"><a name="l00322"></a><span class="lineno">  322</span>&#160;<span class="preprocessor">#ifndef FLATBUFFERS_CPP98_STL</span></div><div class="line"><a name="l00323"></a><span class="lineno">  323</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> U&gt;</div><div class="line"><a name="l00324"></a><span class="lineno">  324</span>&#160;<a class="code" href="classflatbuffers_1_1_vector.html">Vector&lt;Offset&lt;T&gt;</a>&gt; *VectorCast(<a class="code" href="classflatbuffers_1_1_vector.html">Vector</a>&lt;<a class="code" href="structflatbuffers_1_1_offset.html">Offset&lt;U&gt;</a>&gt; *ptr) {</div><div class="line"><a name="l00325"></a><span class="lineno">  325</span>&#160;  static_assert(std::is_base_of&lt;T, U&gt;::value, <span class="stringliteral">&quot;Unrelated types&quot;</span>);</div><div class="line"><a name="l00326"></a><span class="lineno">  326</span>&#160;  <span class="keywordflow">return</span> <span class="keyword">reinterpret_cast&lt;</span><a class="code" href="classflatbuffers_1_1_vector.html">Vector&lt;Offset&lt;T&gt;</a><span class="keyword">&gt;</span> *&gt;(ptr);</div><div class="line"><a name="l00327"></a><span class="lineno">  327</span>&#160;}</div><div class="line"><a name="l00328"></a><span class="lineno">  328</span>&#160;</div><div class="line"><a name="l00329"></a><span class="lineno">  329</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> U&gt;</div><div class="line"><a name="l00330"></a><span class="lineno">  330</span>&#160;<span class="keyword">const</span> <a class="code" href="classflatbuffers_1_1_vector.html">Vector&lt;Offset&lt;T&gt;</a>&gt; *VectorCast(<span class="keyword">const</span> <a class="code" href="classflatbuffers_1_1_vector.html">Vector</a>&lt;<a class="code" href="structflatbuffers_1_1_offset.html">Offset&lt;U&gt;</a>&gt; *ptr) {</div><div class="line"><a name="l00331"></a><span class="lineno">  331</span>&#160;  static_assert(std::is_base_of&lt;T, U&gt;::value, <span class="stringliteral">&quot;Unrelated types&quot;</span>);</div><div class="line"><a name="l00332"></a><span class="lineno">  332</span>&#160;  <span class="keywordflow">return</span> <span class="keyword">reinterpret_cast&lt;</span><span class="keyword">const </span><a class="code" href="classflatbuffers_1_1_vector.html">Vector&lt;Offset&lt;T&gt;</a><span class="keyword">&gt;</span> *&gt;(ptr);</div><div class="line"><a name="l00333"></a><span class="lineno">  333</span>&#160;}</div><div class="line"><a name="l00334"></a><span class="lineno">  334</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00335"></a><span class="lineno">  335</span>&#160;</div><div class="line"><a name="l00336"></a><span class="lineno">  336</span>&#160;<span class="comment">// Convenient helper function to get the length of any vector, regardless</span></div><div class="line"><a name="l00337"></a><span class="lineno">  337</span>&#160;<span class="comment">// of wether it is null or not (the field is not set).</span></div><div class="line"><a name="l00338"></a><span class="lineno">  338</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">size_t</span> VectorLength(<span class="keyword">const</span> <a class="code" href="classflatbuffers_1_1_vector.html">Vector&lt;T&gt;</a> *v) {</div><div class="line"><a name="l00339"></a><span class="lineno">  339</span>&#160;  <span class="keywordflow">return</span> v ? v-&gt;Length() : 0;</div><div class="line"><a name="l00340"></a><span class="lineno">  340</span>&#160;}</div><div class="line"><a name="l00341"></a><span class="lineno">  341</span>&#160;</div><div class="line"><a name="l00342"></a><span class="lineno"><a class="line" href="structflatbuffers_1_1_string.html">  342</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structflatbuffers_1_1_string.html">String</a> : <span class="keyword">public</span> <a class="code" href="classflatbuffers_1_1_vector.html">Vector</a>&lt;char&gt; {</div><div class="line"><a name="l00343"></a><span class="lineno">  343</span>&#160;  <span class="keyword">const</span> <span class="keywordtype">char</span> *c_str()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <span class="keyword">reinterpret_cast&lt;</span><span class="keyword">const </span><span class="keywordtype">char</span> *<span class="keyword">&gt;</span>(Data()); }</div><div class="line"><a name="l00344"></a><span class="lineno">  344</span>&#160;  std::string str()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> std::string(c_str(), Length()); }</div><div class="line"><a name="l00345"></a><span class="lineno">  345</span>&#160;</div><div class="line"><a name="l00346"></a><span class="lineno">  346</span>&#160;  <span class="keywordtype">bool</span> operator&lt;(<span class="keyword">const</span> <a class="code" href="structflatbuffers_1_1_string.html">String</a> &amp;o)<span class="keyword"> const </span>{</div><div class="line"><a name="l00347"></a><span class="lineno">  347</span>&#160;    <span class="keywordflow">return</span> strcmp(c_str(), o.c_str()) &lt; 0;</div><div class="line"><a name="l00348"></a><span class="lineno">  348</span>&#160;  }</div><div class="line"><a name="l00349"></a><span class="lineno">  349</span>&#160;};</div><div class="line"><a name="l00350"></a><span class="lineno">  350</span>&#160;</div><div class="line"><a name="l00351"></a><span class="lineno">  351</span>&#160;<span class="comment">// Allocator interface. This is flatbuffers-specific and meant only for</span></div><div class="line"><a name="l00352"></a><span class="lineno">  352</span>&#160;<span class="comment">// `vector_downward` usage.</span></div><div class="line"><a name="l00353"></a><span class="lineno"><a class="line" href="classflatbuffers_1_1_allocator.html">  353</a></span>&#160;<span class="keyword">class </span><a class="code" href="classflatbuffers_1_1_allocator.html">Allocator</a> {</div><div class="line"><a name="l00354"></a><span class="lineno">  354</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00355"></a><span class="lineno">  355</span>&#160;  <span class="keyword">virtual</span> ~<a class="code" href="classflatbuffers_1_1_allocator.html">Allocator</a>() {}</div><div class="line"><a name="l00356"></a><span class="lineno">  356</span>&#160;</div><div class="line"><a name="l00357"></a><span class="lineno">  357</span>&#160;  <span class="comment">// Allocate `size` bytes of memory.</span></div><div class="line"><a name="l00358"></a><span class="lineno">  358</span>&#160;  <span class="keyword">virtual</span> uint8_t *allocate(<span class="keywordtype">size_t</span> size) = 0;</div><div class="line"><a name="l00359"></a><span class="lineno">  359</span>&#160;</div><div class="line"><a name="l00360"></a><span class="lineno">  360</span>&#160;  <span class="comment">// Deallocate `size` bytes of memory at `p` allocated by this allocator.</span></div><div class="line"><a name="l00361"></a><span class="lineno">  361</span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">void</span> deallocate(uint8_t *p, <span class="keywordtype">size_t</span> size) = 0;</div><div class="line"><a name="l00362"></a><span class="lineno">  362</span>&#160;</div><div class="line"><a name="l00363"></a><span class="lineno">  363</span>&#160;  <span class="comment">// Reallocate `new_size` bytes of memory, replacing the old region of size</span></div><div class="line"><a name="l00364"></a><span class="lineno">  364</span>&#160;  <span class="comment">// `old_size` at `p`. In contrast to a normal realloc, this grows downwards,</span></div><div class="line"><a name="l00365"></a><span class="lineno">  365</span>&#160;  <span class="comment">// and is intended specifcally for `vector_downward` use.</span></div><div class="line"><a name="l00366"></a><span class="lineno">  366</span>&#160;  <span class="comment">// `in_use_back` and `in_use_front` indicate how much of `old_size` is</span></div><div class="line"><a name="l00367"></a><span class="lineno">  367</span>&#160;  <span class="comment">// actually in use at each end, and needs to be copied.</span></div><div class="line"><a name="l00368"></a><span class="lineno">  368</span>&#160;  <span class="keyword">virtual</span> uint8_t *reallocate_downward(uint8_t *old_p, <span class="keywordtype">size_t</span> old_size,</div><div class="line"><a name="l00369"></a><span class="lineno">  369</span>&#160;                                       <span class="keywordtype">size_t</span> new_size, <span class="keywordtype">size_t</span> in_use_back,</div><div class="line"><a name="l00370"></a><span class="lineno">  370</span>&#160;                                       <span class="keywordtype">size_t</span> in_use_front) {</div><div class="line"><a name="l00371"></a><span class="lineno">  371</span>&#160;    assert(new_size &gt; old_size);  <span class="comment">// vector_downward only grows</span></div><div class="line"><a name="l00372"></a><span class="lineno">  372</span>&#160;    uint8_t *new_p = allocate(new_size);</div><div class="line"><a name="l00373"></a><span class="lineno">  373</span>&#160;    memcpy_downward(old_p, old_size, new_p, new_size, in_use_back,</div><div class="line"><a name="l00374"></a><span class="lineno">  374</span>&#160;                    in_use_front);</div><div class="line"><a name="l00375"></a><span class="lineno">  375</span>&#160;    deallocate(old_p, old_size);</div><div class="line"><a name="l00376"></a><span class="lineno">  376</span>&#160;    <span class="keywordflow">return</span> new_p;</div><div class="line"><a name="l00377"></a><span class="lineno">  377</span>&#160;  }</div><div class="line"><a name="l00378"></a><span class="lineno">  378</span>&#160;</div><div class="line"><a name="l00379"></a><span class="lineno">  379</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00380"></a><span class="lineno">  380</span>&#160;  <span class="comment">// Called by `reallocate_downward` to copy memory from `old_p` of `old_size`</span></div><div class="line"><a name="l00381"></a><span class="lineno">  381</span>&#160;  <span class="comment">// to `new_p` of `new_size`. Only memory of size `in_use_front` and</span></div><div class="line"><a name="l00382"></a><span class="lineno">  382</span>&#160;  <span class="comment">// `in_use_back` will be copied from the front and back of the old memory</span></div><div class="line"><a name="l00383"></a><span class="lineno">  383</span>&#160;  <span class="comment">// allocation.</span></div><div class="line"><a name="l00384"></a><span class="lineno">  384</span>&#160;  <span class="keywordtype">void</span> memcpy_downward(uint8_t *old_p, <span class="keywordtype">size_t</span> old_size,</div><div class="line"><a name="l00385"></a><span class="lineno">  385</span>&#160;                       uint8_t *new_p, <span class="keywordtype">size_t</span> new_size,</div><div class="line"><a name="l00386"></a><span class="lineno">  386</span>&#160;                       <span class="keywordtype">size_t</span> in_use_back, <span class="keywordtype">size_t</span> in_use_front) {</div><div class="line"><a name="l00387"></a><span class="lineno">  387</span>&#160;    memcpy(new_p + new_size - in_use_back, old_p + old_size - in_use_back,</div><div class="line"><a name="l00388"></a><span class="lineno">  388</span>&#160;           in_use_back);</div><div class="line"><a name="l00389"></a><span class="lineno">  389</span>&#160;    memcpy(new_p, old_p, in_use_front);</div><div class="line"><a name="l00390"></a><span class="lineno">  390</span>&#160;  }</div><div class="line"><a name="l00391"></a><span class="lineno">  391</span>&#160;};</div><div class="line"><a name="l00392"></a><span class="lineno">  392</span>&#160;</div><div class="line"><a name="l00393"></a><span class="lineno">  393</span>&#160;<span class="comment">// DefaultAllocator uses new/delete to allocate memory regions</span></div><div class="line"><a name="l00394"></a><span class="lineno"><a class="line" href="classflatbuffers_1_1_default_allocator.html">  394</a></span>&#160;<span class="keyword">class </span><a class="code" href="classflatbuffers_1_1_default_allocator.html">DefaultAllocator</a> : <span class="keyword">public</span> <a class="code" href="classflatbuffers_1_1_allocator.html">Allocator</a> {</div><div class="line"><a name="l00395"></a><span class="lineno">  395</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00396"></a><span class="lineno">  396</span>&#160;  <span class="keyword">virtual</span> uint8_t *allocate(<span class="keywordtype">size_t</span> size) FLATBUFFERS_OVERRIDE {</div><div class="line"><a name="l00397"></a><span class="lineno">  397</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">new</span> uint8_t[size];</div><div class="line"><a name="l00398"></a><span class="lineno">  398</span>&#160;  }</div><div class="line"><a name="l00399"></a><span class="lineno">  399</span>&#160;</div><div class="line"><a name="l00400"></a><span class="lineno">  400</span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">void</span> deallocate(uint8_t *p, <span class="keywordtype">size_t</span>) FLATBUFFERS_OVERRIDE {</div><div class="line"><a name="l00401"></a><span class="lineno">  401</span>&#160;    <span class="keyword">delete</span>[] p;</div><div class="line"><a name="l00402"></a><span class="lineno">  402</span>&#160;  }</div><div class="line"><a name="l00403"></a><span class="lineno">  403</span>&#160;</div><div class="line"><a name="l00404"></a><span class="lineno">  404</span>&#160;  <span class="keyword">static</span> <a class="code" href="classflatbuffers_1_1_default_allocator.html">DefaultAllocator</a> &amp;instance() {</div><div class="line"><a name="l00405"></a><span class="lineno">  405</span>&#160;    <span class="keyword">static</span> <a class="code" href="classflatbuffers_1_1_default_allocator.html">DefaultAllocator</a> inst;</div><div class="line"><a name="l00406"></a><span class="lineno">  406</span>&#160;    <span class="keywordflow">return</span> inst;</div><div class="line"><a name="l00407"></a><span class="lineno">  407</span>&#160;  }</div><div class="line"><a name="l00408"></a><span class="lineno">  408</span>&#160;};</div><div class="line"><a name="l00409"></a><span class="lineno">  409</span>&#160;</div><div class="line"><a name="l00410"></a><span class="lineno">  410</span>&#160;<span class="comment">// DetachedBuffer is a finished flatbuffer memory region, detached from its</span></div><div class="line"><a name="l00411"></a><span class="lineno">  411</span>&#160;<span class="comment">// builder. The original memory region and allocator are also stored so that</span></div><div class="line"><a name="l00412"></a><span class="lineno">  412</span>&#160;<span class="comment">// the DetachedBuffer can manage the memory lifetime.</span></div><div class="line"><a name="l00413"></a><span class="lineno"><a class="line" href="classflatbuffers_1_1_detached_buffer.html">  413</a></span>&#160;<span class="keyword">class </span><a class="code" href="classflatbuffers_1_1_detached_buffer.html">DetachedBuffer</a> {</div><div class="line"><a name="l00414"></a><span class="lineno">  414</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00415"></a><span class="lineno">  415</span>&#160;  <a class="code" href="classflatbuffers_1_1_detached_buffer.html">DetachedBuffer</a>()</div><div class="line"><a name="l00416"></a><span class="lineno">  416</span>&#160;      : allocator_(<span class="keyword">nullptr</span>),</div><div class="line"><a name="l00417"></a><span class="lineno">  417</span>&#160;        own_allocator_(<span class="keyword">false</span>),</div><div class="line"><a name="l00418"></a><span class="lineno">  418</span>&#160;        buf_(<span class="keyword">nullptr</span>),</div><div class="line"><a name="l00419"></a><span class="lineno">  419</span>&#160;        reserved_(0),</div><div class="line"><a name="l00420"></a><span class="lineno">  420</span>&#160;        cur_(<span class="keyword">nullptr</span>),</div><div class="line"><a name="l00421"></a><span class="lineno">  421</span>&#160;        size_(0) {}</div><div class="line"><a name="l00422"></a><span class="lineno">  422</span>&#160;</div><div class="line"><a name="l00423"></a><span class="lineno">  423</span>&#160;  <a class="code" href="classflatbuffers_1_1_detached_buffer.html">DetachedBuffer</a>(<a class="code" href="classflatbuffers_1_1_allocator.html">Allocator</a> *allocator, <span class="keywordtype">bool</span> own_allocator, uint8_t *buf,</div><div class="line"><a name="l00424"></a><span class="lineno">  424</span>&#160;                 <span class="keywordtype">size_t</span> reserved, uint8_t *cur, <span class="keywordtype">size_t</span> sz)</div><div class="line"><a name="l00425"></a><span class="lineno">  425</span>&#160;      : allocator_(allocator),</div><div class="line"><a name="l00426"></a><span class="lineno">  426</span>&#160;        own_allocator_(own_allocator),</div><div class="line"><a name="l00427"></a><span class="lineno">  427</span>&#160;        buf_(buf),</div><div class="line"><a name="l00428"></a><span class="lineno">  428</span>&#160;        reserved_(reserved),</div><div class="line"><a name="l00429"></a><span class="lineno">  429</span>&#160;        cur_(cur),</div><div class="line"><a name="l00430"></a><span class="lineno">  430</span>&#160;        size_(sz) {</div><div class="line"><a name="l00431"></a><span class="lineno">  431</span>&#160;    assert(allocator_);</div><div class="line"><a name="l00432"></a><span class="lineno">  432</span>&#160;  }</div><div class="line"><a name="l00433"></a><span class="lineno">  433</span>&#160;</div><div class="line"><a name="l00434"></a><span class="lineno">  434</span>&#160;  <a class="code" href="classflatbuffers_1_1_detached_buffer.html">DetachedBuffer</a>(<a class="code" href="classflatbuffers_1_1_detached_buffer.html">DetachedBuffer</a> &amp;&amp;other)</div><div class="line"><a name="l00435"></a><span class="lineno">  435</span>&#160;      : allocator_(other.allocator_),</div><div class="line"><a name="l00436"></a><span class="lineno">  436</span>&#160;        own_allocator_(other.own_allocator_),</div><div class="line"><a name="l00437"></a><span class="lineno">  437</span>&#160;        buf_(other.buf_),</div><div class="line"><a name="l00438"></a><span class="lineno">  438</span>&#160;        reserved_(other.reserved_),</div><div class="line"><a name="l00439"></a><span class="lineno">  439</span>&#160;        cur_(other.cur_),</div><div class="line"><a name="l00440"></a><span class="lineno">  440</span>&#160;        size_(other.size_) {</div><div class="line"><a name="l00441"></a><span class="lineno">  441</span>&#160;    other.reset();</div><div class="line"><a name="l00442"></a><span class="lineno">  442</span>&#160;  }</div><div class="line"><a name="l00443"></a><span class="lineno">  443</span>&#160;</div><div class="line"><a name="l00444"></a><span class="lineno">  444</span>&#160;  <a class="code" href="classflatbuffers_1_1_detached_buffer.html">DetachedBuffer</a> &amp;operator=(<a class="code" href="classflatbuffers_1_1_detached_buffer.html">DetachedBuffer</a> &amp;&amp;other) {</div><div class="line"><a name="l00445"></a><span class="lineno">  445</span>&#160;    destroy();</div><div class="line"><a name="l00446"></a><span class="lineno">  446</span>&#160;</div><div class="line"><a name="l00447"></a><span class="lineno">  447</span>&#160;    allocator_ = other.allocator_;</div><div class="line"><a name="l00448"></a><span class="lineno">  448</span>&#160;    own_allocator_ = other.own_allocator_;</div><div class="line"><a name="l00449"></a><span class="lineno">  449</span>&#160;    buf_ = other.buf_;</div><div class="line"><a name="l00450"></a><span class="lineno">  450</span>&#160;    reserved_ = other.reserved_;</div><div class="line"><a name="l00451"></a><span class="lineno">  451</span>&#160;    cur_ = other.cur_;</div><div class="line"><a name="l00452"></a><span class="lineno">  452</span>&#160;    size_ = other.size_;</div><div class="line"><a name="l00453"></a><span class="lineno">  453</span>&#160;</div><div class="line"><a name="l00454"></a><span class="lineno">  454</span>&#160;    other.reset();</div><div class="line"><a name="l00455"></a><span class="lineno">  455</span>&#160;</div><div class="line"><a name="l00456"></a><span class="lineno">  456</span>&#160;    <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00457"></a><span class="lineno">  457</span>&#160;  }</div><div class="line"><a name="l00458"></a><span class="lineno">  458</span>&#160;</div><div class="line"><a name="l00459"></a><span class="lineno">  459</span>&#160;  ~<a class="code" href="classflatbuffers_1_1_detached_buffer.html">DetachedBuffer</a>() { destroy(); }</div><div class="line"><a name="l00460"></a><span class="lineno">  460</span>&#160;</div><div class="line"><a name="l00461"></a><span class="lineno">  461</span>&#160;  <span class="keyword">const</span> uint8_t *data()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> cur_; }</div><div class="line"><a name="l00462"></a><span class="lineno">  462</span>&#160;</div><div class="line"><a name="l00463"></a><span class="lineno">  463</span>&#160;  uint8_t *data() { <span class="keywordflow">return</span> cur_; }</div><div class="line"><a name="l00464"></a><span class="lineno">  464</span>&#160;</div><div class="line"><a name="l00465"></a><span class="lineno">  465</span>&#160;  <span class="keywordtype">size_t</span> size()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> size_; }</div><div class="line"><a name="l00466"></a><span class="lineno">  466</span>&#160;</div><div class="line"><a name="l00467"></a><span class="lineno">  467</span>&#160;  <span class="comment">// clang-format off</span></div><div class="line"><a name="l00468"></a><span class="lineno">  468</span>&#160;<span class="preprocessor">  #if 0  // disabled for now due to the ordering of classes in this header</span></div><div class="line"><a name="l00469"></a><span class="lineno">  469</span>&#160;  <span class="keyword">template</span> &lt;<span class="keyword">class</span> T&gt;</div><div class="line"><a name="l00470"></a><span class="lineno">  470</span>&#160;  <span class="keywordtype">bool</span> Verify()<span class="keyword"> const </span>{</div><div class="line"><a name="l00471"></a><span class="lineno">  471</span>&#160;    Verifier verifier(data(), size());</div><div class="line"><a name="l00472"></a><span class="lineno">  472</span>&#160;    <span class="keywordflow">return</span> verifier.Verify&lt;T&gt;(<span class="keyword">nullptr</span>);</div><div class="line"><a name="l00473"></a><span class="lineno">  473</span>&#160;  }</div><div class="line"><a name="l00474"></a><span class="lineno">  474</span>&#160;</div><div class="line"><a name="l00475"></a><span class="lineno">  475</span>&#160;  <span class="keyword">template</span> &lt;<span class="keyword">class</span> T&gt;</div><div class="line"><a name="l00476"></a><span class="lineno">  476</span>&#160;  <span class="keyword">const</span> T* GetRoot()<span class="keyword"> const </span>{</div><div class="line"><a name="l00477"></a><span class="lineno">  477</span>&#160;    <span class="keywordflow">return</span> flatbuffers::GetRoot&lt;T&gt;(data());</div><div class="line"><a name="l00478"></a><span class="lineno">  478</span>&#160;  }</div><div class="line"><a name="l00479"></a><span class="lineno">  479</span>&#160;</div><div class="line"><a name="l00480"></a><span class="lineno">  480</span>&#160;  <span class="keyword">template</span> &lt;<span class="keyword">class</span> T&gt;</div><div class="line"><a name="l00481"></a><span class="lineno">  481</span>&#160;  T* GetRoot() {</div><div class="line"><a name="l00482"></a><span class="lineno">  482</span>&#160;    <span class="keywordflow">return</span> flatbuffers::GetRoot&lt;T&gt;(data());</div><div class="line"><a name="l00483"></a><span class="lineno">  483</span>&#160;  }</div><div class="line"><a name="l00484"></a><span class="lineno">  484</span>&#160;<span class="preprocessor">  #endif</span></div><div class="line"><a name="l00485"></a><span class="lineno">  485</span>&#160;  <span class="comment">// clang-format on</span></div><div class="line"><a name="l00486"></a><span class="lineno">  486</span>&#160;</div><div class="line"><a name="l00487"></a><span class="lineno">  487</span>&#160;  <span class="comment">// These may change access mode, leave these at end of public section</span></div><div class="line"><a name="l00488"></a><span class="lineno">  488</span>&#160;  FLATBUFFERS_DELETE_FUNC(<a class="code" href="classflatbuffers_1_1_detached_buffer.html">DetachedBuffer</a>(<span class="keyword">const</span> <a class="code" href="classflatbuffers_1_1_detached_buffer.html">DetachedBuffer</a> &amp;other))</div><div class="line"><a name="l00489"></a><span class="lineno">  489</span>&#160;  FLATBUFFERS_DELETE_FUNC(</div><div class="line"><a name="l00490"></a><span class="lineno">  490</span>&#160;      <a class="code" href="classflatbuffers_1_1_detached_buffer.html">DetachedBuffer</a> &amp;<span class="keyword">operator</span>=(<span class="keyword">const</span> <a class="code" href="classflatbuffers_1_1_detached_buffer.html">DetachedBuffer</a> &amp;other))</div><div class="line"><a name="l00491"></a><span class="lineno">  491</span>&#160;</div><div class="line"><a name="l00492"></a><span class="lineno">  492</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00493"></a><span class="lineno">  493</span>&#160;  <a class="code" href="classflatbuffers_1_1_allocator.html">Allocator</a> *allocator_;</div><div class="line"><a name="l00494"></a><span class="lineno">  494</span>&#160;  <span class="keywordtype">bool</span> own_allocator_;</div><div class="line"><a name="l00495"></a><span class="lineno">  495</span>&#160;  uint8_t *buf_;</div><div class="line"><a name="l00496"></a><span class="lineno">  496</span>&#160;  <span class="keywordtype">size_t</span> reserved_;</div><div class="line"><a name="l00497"></a><span class="lineno">  497</span>&#160;  uint8_t *cur_;</div><div class="line"><a name="l00498"></a><span class="lineno">  498</span>&#160;  <span class="keywordtype">size_t</span> size_;</div><div class="line"><a name="l00499"></a><span class="lineno">  499</span>&#160;</div><div class="line"><a name="l00500"></a><span class="lineno">  500</span>&#160;  <span class="keyword">inline</span> <span class="keywordtype">void</span> destroy() {</div><div class="line"><a name="l00501"></a><span class="lineno">  501</span>&#160;    <span class="keywordflow">if</span> (buf_) {</div><div class="line"><a name="l00502"></a><span class="lineno">  502</span>&#160;      assert(allocator_);</div><div class="line"><a name="l00503"></a><span class="lineno">  503</span>&#160;      allocator_-&gt;deallocate(buf_, reserved_);</div><div class="line"><a name="l00504"></a><span class="lineno">  504</span>&#160;    }</div><div class="line"><a name="l00505"></a><span class="lineno">  505</span>&#160;    <span class="keywordflow">if</span> (own_allocator_ &amp;&amp; allocator_) { <span class="keyword">delete</span> allocator_; }</div><div class="line"><a name="l00506"></a><span class="lineno">  506</span>&#160;</div><div class="line"><a name="l00507"></a><span class="lineno">  507</span>&#160;    reset();</div><div class="line"><a name="l00508"></a><span class="lineno">  508</span>&#160;  }</div><div class="line"><a name="l00509"></a><span class="lineno">  509</span>&#160;</div><div class="line"><a name="l00510"></a><span class="lineno">  510</span>&#160;  <span class="keyword">inline</span> <span class="keywordtype">void</span> reset() {</div><div class="line"><a name="l00511"></a><span class="lineno">  511</span>&#160;    allocator_ = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00512"></a><span class="lineno">  512</span>&#160;    own_allocator_ = <span class="keyword">false</span>;</div><div class="line"><a name="l00513"></a><span class="lineno">  513</span>&#160;    buf_ = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00514"></a><span class="lineno">  514</span>&#160;    reserved_ = 0;</div><div class="line"><a name="l00515"></a><span class="lineno">  515</span>&#160;    cur_ = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00516"></a><span class="lineno">  516</span>&#160;    size_ = 0;</div><div class="line"><a name="l00517"></a><span class="lineno">  517</span>&#160;  }</div><div class="line"><a name="l00518"></a><span class="lineno">  518</span>&#160;};</div><div class="line"><a name="l00519"></a><span class="lineno">  519</span>&#160;</div><div class="line"><a name="l00520"></a><span class="lineno">  520</span>&#160;<span class="comment">// This is a minimal replication of std::vector&lt;uint8_t&gt; functionality,</span></div><div class="line"><a name="l00521"></a><span class="lineno">  521</span>&#160;<span class="comment">// except growing from higher to lower addresses. i.e push_back() inserts data</span></div><div class="line"><a name="l00522"></a><span class="lineno">  522</span>&#160;<span class="comment">// in the lowest address in the vector.</span></div><div class="line"><a name="l00523"></a><span class="lineno">  523</span>&#160;<span class="comment">// Since this vector leaves the lower part unused, we support a &quot;scratch-pad&quot;</span></div><div class="line"><a name="l00524"></a><span class="lineno">  524</span>&#160;<span class="comment">// that can be stored there for temporary data, to share the allocated space.</span></div><div class="line"><a name="l00525"></a><span class="lineno">  525</span>&#160;<span class="comment">// Essentially, this supports 2 std::vectors in a single buffer.</span></div><div class="line"><a name="l00526"></a><span class="lineno"><a class="line" href="classflatbuffers_1_1vector__downward.html">  526</a></span>&#160;<span class="keyword">class </span><a class="code" href="classflatbuffers_1_1vector__downward.html">vector_downward</a> {</div><div class="line"><a name="l00527"></a><span class="lineno">  527</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00528"></a><span class="lineno">  528</span>&#160;  <span class="keyword">explicit</span> <a class="code" href="classflatbuffers_1_1vector__downward.html">vector_downward</a>(<span class="keywordtype">size_t</span> initial_size,</div><div class="line"><a name="l00529"></a><span class="lineno">  529</span>&#160;                           <a class="code" href="classflatbuffers_1_1_allocator.html">Allocator</a> *allocator,</div><div class="line"><a name="l00530"></a><span class="lineno">  530</span>&#160;                           <span class="keywordtype">bool</span> own_allocator,</div><div class="line"><a name="l00531"></a><span class="lineno">  531</span>&#160;                           <span class="keywordtype">size_t</span> buffer_minalign)</div><div class="line"><a name="l00532"></a><span class="lineno">  532</span>&#160;      : allocator_(allocator ? allocator : &amp;DefaultAllocator::instance()),</div><div class="line"><a name="l00533"></a><span class="lineno">  533</span>&#160;        own_allocator_(own_allocator),</div><div class="line"><a name="l00534"></a><span class="lineno">  534</span>&#160;        initial_size_(initial_size),</div><div class="line"><a name="l00535"></a><span class="lineno">  535</span>&#160;        buffer_minalign_(buffer_minalign),</div><div class="line"><a name="l00536"></a><span class="lineno">  536</span>&#160;        reserved_(0),</div><div class="line"><a name="l00537"></a><span class="lineno">  537</span>&#160;        buf_(<span class="keyword">nullptr</span>),</div><div class="line"><a name="l00538"></a><span class="lineno">  538</span>&#160;        cur_(<span class="keyword">nullptr</span>),</div><div class="line"><a name="l00539"></a><span class="lineno">  539</span>&#160;        scratch_(<span class="keyword">nullptr</span>) {</div><div class="line"><a name="l00540"></a><span class="lineno">  540</span>&#160;    assert(allocator_);</div><div class="line"><a name="l00541"></a><span class="lineno">  541</span>&#160;  }</div><div class="line"><a name="l00542"></a><span class="lineno">  542</span>&#160;</div><div class="line"><a name="l00543"></a><span class="lineno">  543</span>&#160;  ~<a class="code" href="classflatbuffers_1_1vector__downward.html">vector_downward</a>() {</div><div class="line"><a name="l00544"></a><span class="lineno">  544</span>&#160;    <span class="keywordflow">if</span> (buf_) {</div><div class="line"><a name="l00545"></a><span class="lineno">  545</span>&#160;      assert(allocator_);</div><div class="line"><a name="l00546"></a><span class="lineno">  546</span>&#160;      allocator_-&gt;deallocate(buf_, reserved_);</div><div class="line"><a name="l00547"></a><span class="lineno">  547</span>&#160;    }</div><div class="line"><a name="l00548"></a><span class="lineno">  548</span>&#160;    <span class="keywordflow">if</span> (own_allocator_ &amp;&amp; allocator_) { <span class="keyword">delete</span> allocator_; }</div><div class="line"><a name="l00549"></a><span class="lineno">  549</span>&#160;  }</div><div class="line"><a name="l00550"></a><span class="lineno">  550</span>&#160;</div><div class="line"><a name="l00551"></a><span class="lineno">  551</span>&#160;  <span class="keywordtype">void</span> reset() {</div><div class="line"><a name="l00552"></a><span class="lineno">  552</span>&#160;    <span class="keywordflow">if</span> (buf_) {</div><div class="line"><a name="l00553"></a><span class="lineno">  553</span>&#160;      assert(allocator_);</div><div class="line"><a name="l00554"></a><span class="lineno">  554</span>&#160;      allocator_-&gt;deallocate(buf_, reserved_);</div><div class="line"><a name="l00555"></a><span class="lineno">  555</span>&#160;      buf_ = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00556"></a><span class="lineno">  556</span>&#160;    }</div><div class="line"><a name="l00557"></a><span class="lineno">  557</span>&#160;    clear();</div><div class="line"><a name="l00558"></a><span class="lineno">  558</span>&#160;  }</div><div class="line"><a name="l00559"></a><span class="lineno">  559</span>&#160;</div><div class="line"><a name="l00560"></a><span class="lineno">  560</span>&#160;  <span class="keywordtype">void</span> clear() {</div><div class="line"><a name="l00561"></a><span class="lineno">  561</span>&#160;    <span class="keywordflow">if</span> (buf_) {</div><div class="line"><a name="l00562"></a><span class="lineno">  562</span>&#160;      cur_ = buf_ + reserved_;</div><div class="line"><a name="l00563"></a><span class="lineno">  563</span>&#160;    } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00564"></a><span class="lineno">  564</span>&#160;      reserved_ = 0;</div><div class="line"><a name="l00565"></a><span class="lineno">  565</span>&#160;      cur_ = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00566"></a><span class="lineno">  566</span>&#160;    }</div><div class="line"><a name="l00567"></a><span class="lineno">  567</span>&#160;    clear_scratch();</div><div class="line"><a name="l00568"></a><span class="lineno">  568</span>&#160;  }</div><div class="line"><a name="l00569"></a><span class="lineno">  569</span>&#160;</div><div class="line"><a name="l00570"></a><span class="lineno">  570</span>&#160;  <span class="keywordtype">void</span> clear_scratch() {</div><div class="line"><a name="l00571"></a><span class="lineno">  571</span>&#160;    scratch_ = buf_;</div><div class="line"><a name="l00572"></a><span class="lineno">  572</span>&#160;  }</div><div class="line"><a name="l00573"></a><span class="lineno">  573</span>&#160;</div><div class="line"><a name="l00574"></a><span class="lineno">  574</span>&#160;  <span class="comment">// Relinquish the pointer to the caller.</span></div><div class="line"><a name="l00575"></a><span class="lineno">  575</span>&#160;  <a class="code" href="classflatbuffers_1_1_detached_buffer.html">DetachedBuffer</a> release() {</div><div class="line"><a name="l00576"></a><span class="lineno">  576</span>&#160;    <a class="code" href="classflatbuffers_1_1_detached_buffer.html">DetachedBuffer</a> fb(allocator_, own_allocator_, buf_, reserved_, cur_,</div><div class="line"><a name="l00577"></a><span class="lineno">  577</span>&#160;                      size());</div><div class="line"><a name="l00578"></a><span class="lineno">  578</span>&#160;    allocator_ = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00579"></a><span class="lineno">  579</span>&#160;    own_allocator_ = <span class="keyword">false</span>;</div><div class="line"><a name="l00580"></a><span class="lineno">  580</span>&#160;    buf_ = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00581"></a><span class="lineno">  581</span>&#160;    clear();</div><div class="line"><a name="l00582"></a><span class="lineno">  582</span>&#160;    <span class="keywordflow">return</span> fb;</div><div class="line"><a name="l00583"></a><span class="lineno">  583</span>&#160;  }</div><div class="line"><a name="l00584"></a><span class="lineno">  584</span>&#160;</div><div class="line"><a name="l00585"></a><span class="lineno">  585</span>&#160;  <span class="keywordtype">size_t</span> ensure_space(<span class="keywordtype">size_t</span> len) {</div><div class="line"><a name="l00586"></a><span class="lineno">  586</span>&#160;    assert(cur_ &gt;= scratch_ &amp;&amp; scratch_ &gt;= buf_);</div><div class="line"><a name="l00587"></a><span class="lineno">  587</span>&#160;    <span class="keywordflow">if</span> (len &gt; static_cast&lt;size_t&gt;(cur_ - scratch_)) { reallocate(len); }</div><div class="line"><a name="l00588"></a><span class="lineno">  588</span>&#160;    <span class="comment">// Beyond this, signed offsets may not have enough range:</span></div><div class="line"><a name="l00589"></a><span class="lineno">  589</span>&#160;    <span class="comment">// (FlatBuffers &gt; 2GB not supported).</span></div><div class="line"><a name="l00590"></a><span class="lineno">  590</span>&#160;    assert(size() &lt; FLATBUFFERS_MAX_BUFFER_SIZE);</div><div class="line"><a name="l00591"></a><span class="lineno">  591</span>&#160;    <span class="keywordflow">return</span> len;</div><div class="line"><a name="l00592"></a><span class="lineno">  592</span>&#160;  }</div><div class="line"><a name="l00593"></a><span class="lineno">  593</span>&#160;</div><div class="line"><a name="l00594"></a><span class="lineno">  594</span>&#160;  <span class="keyword">inline</span> uint8_t *make_space(<span class="keywordtype">size_t</span> len) {</div><div class="line"><a name="l00595"></a><span class="lineno">  595</span>&#160;    cur_ -= ensure_space(len);</div><div class="line"><a name="l00596"></a><span class="lineno">  596</span>&#160;    <span class="keywordflow">return</span> cur_;</div><div class="line"><a name="l00597"></a><span class="lineno">  597</span>&#160;  }</div><div class="line"><a name="l00598"></a><span class="lineno">  598</span>&#160;</div><div class="line"><a name="l00599"></a><span class="lineno">  599</span>&#160;  <a class="code" href="classflatbuffers_1_1_allocator.html">Allocator</a> &amp;get_allocator() { <span class="keywordflow">return</span> *allocator_; }</div><div class="line"><a name="l00600"></a><span class="lineno">  600</span>&#160;</div><div class="line"><a name="l00601"></a><span class="lineno">  601</span>&#160;  uoffset_t size()<span class="keyword"> const </span>{</div><div class="line"><a name="l00602"></a><span class="lineno">  602</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span>uoffset_t<span class="keyword">&gt;</span>(reserved_ - (cur_ - buf_));</div><div class="line"><a name="l00603"></a><span class="lineno">  603</span>&#160;  }</div><div class="line"><a name="l00604"></a><span class="lineno">  604</span>&#160;</div><div class="line"><a name="l00605"></a><span class="lineno">  605</span>&#160;  uoffset_t scratch_size()<span class="keyword"> const </span>{</div><div class="line"><a name="l00606"></a><span class="lineno">  606</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span>uoffset_t<span class="keyword">&gt;</span>(scratch_ - buf_);</div><div class="line"><a name="l00607"></a><span class="lineno">  607</span>&#160;  }</div><div class="line"><a name="l00608"></a><span class="lineno">  608</span>&#160;</div><div class="line"><a name="l00609"></a><span class="lineno">  609</span>&#160;  <span class="keywordtype">size_t</span> capacity()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> reserved_; }</div><div class="line"><a name="l00610"></a><span class="lineno">  610</span>&#160;</div><div class="line"><a name="l00611"></a><span class="lineno">  611</span>&#160;  uint8_t *data()<span class="keyword"> const </span>{</div><div class="line"><a name="l00612"></a><span class="lineno">  612</span>&#160;    assert(cur_);</div><div class="line"><a name="l00613"></a><span class="lineno">  613</span>&#160;    <span class="keywordflow">return</span> cur_;</div><div class="line"><a name="l00614"></a><span class="lineno">  614</span>&#160;  }</div><div class="line"><a name="l00615"></a><span class="lineno">  615</span>&#160;</div><div class="line"><a name="l00616"></a><span class="lineno">  616</span>&#160;  uint8_t *scratch_data()<span class="keyword"> const </span>{</div><div class="line"><a name="l00617"></a><span class="lineno">  617</span>&#160;    assert(buf_);</div><div class="line"><a name="l00618"></a><span class="lineno">  618</span>&#160;    <span class="keywordflow">return</span> buf_;</div><div class="line"><a name="l00619"></a><span class="lineno">  619</span>&#160;  }</div><div class="line"><a name="l00620"></a><span class="lineno">  620</span>&#160;</div><div class="line"><a name="l00621"></a><span class="lineno">  621</span>&#160;  uint8_t *scratch_end()<span class="keyword"> const </span>{</div><div class="line"><a name="l00622"></a><span class="lineno">  622</span>&#160;    assert(scratch_);</div><div class="line"><a name="l00623"></a><span class="lineno">  623</span>&#160;    <span class="keywordflow">return</span> scratch_;</div><div class="line"><a name="l00624"></a><span class="lineno">  624</span>&#160;  }</div><div class="line"><a name="l00625"></a><span class="lineno">  625</span>&#160;</div><div class="line"><a name="l00626"></a><span class="lineno">  626</span>&#160;  uint8_t *data_at(<span class="keywordtype">size_t</span> offset)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> buf_ + reserved_ - offset; }</div><div class="line"><a name="l00627"></a><span class="lineno">  627</span>&#160;</div><div class="line"><a name="l00628"></a><span class="lineno">  628</span>&#160;  <span class="keywordtype">void</span> push(<span class="keyword">const</span> uint8_t *bytes, <span class="keywordtype">size_t</span> num) {</div><div class="line"><a name="l00629"></a><span class="lineno">  629</span>&#160;    memcpy(make_space(num), bytes, num);</div><div class="line"><a name="l00630"></a><span class="lineno">  630</span>&#160;  }</div><div class="line"><a name="l00631"></a><span class="lineno">  631</span>&#160;</div><div class="line"><a name="l00632"></a><span class="lineno">  632</span>&#160;  <span class="comment">// Specialized version of push() that avoids memcpy call for small data.</span></div><div class="line"><a name="l00633"></a><span class="lineno">  633</span>&#160;  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt; <span class="keywordtype">void</span> push_small(<span class="keyword">const</span> T &amp;little_endian_t) {</div><div class="line"><a name="l00634"></a><span class="lineno">  634</span>&#160;    make_space(<span class="keyword">sizeof</span>(T));</div><div class="line"><a name="l00635"></a><span class="lineno">  635</span>&#160;    *<span class="keyword">reinterpret_cast&lt;</span>T *<span class="keyword">&gt;</span>(cur_) = little_endian_t;</div><div class="line"><a name="l00636"></a><span class="lineno">  636</span>&#160;  }</div><div class="line"><a name="l00637"></a><span class="lineno">  637</span>&#160;</div><div class="line"><a name="l00638"></a><span class="lineno">  638</span>&#160;  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt; <span class="keywordtype">void</span> scratch_push_small(<span class="keyword">const</span> T &amp;t) {</div><div class="line"><a name="l00639"></a><span class="lineno">  639</span>&#160;    ensure_space(<span class="keyword">sizeof</span>(T));</div><div class="line"><a name="l00640"></a><span class="lineno">  640</span>&#160;    *<span class="keyword">reinterpret_cast&lt;</span>T *<span class="keyword">&gt;</span>(scratch_) = t;</div><div class="line"><a name="l00641"></a><span class="lineno">  641</span>&#160;    scratch_ += <span class="keyword">sizeof</span>(T);</div><div class="line"><a name="l00642"></a><span class="lineno">  642</span>&#160;  }</div><div class="line"><a name="l00643"></a><span class="lineno">  643</span>&#160;</div><div class="line"><a name="l00644"></a><span class="lineno">  644</span>&#160;  <span class="comment">// fill() is most frequently called with small byte counts (&lt;= 4),</span></div><div class="line"><a name="l00645"></a><span class="lineno">  645</span>&#160;  <span class="comment">// which is why we&#39;re using loops rather than calling memset.</span></div><div class="line"><a name="l00646"></a><span class="lineno">  646</span>&#160;  <span class="keywordtype">void</span> fill(<span class="keywordtype">size_t</span> zero_pad_bytes) {</div><div class="line"><a name="l00647"></a><span class="lineno">  647</span>&#160;    make_space(zero_pad_bytes);</div><div class="line"><a name="l00648"></a><span class="lineno">  648</span>&#160;    <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; zero_pad_bytes; i++) cur_[i] = 0;</div><div class="line"><a name="l00649"></a><span class="lineno">  649</span>&#160;  }</div><div class="line"><a name="l00650"></a><span class="lineno">  650</span>&#160;</div><div class="line"><a name="l00651"></a><span class="lineno">  651</span>&#160;  <span class="comment">// Version for when we know the size is larger.</span></div><div class="line"><a name="l00652"></a><span class="lineno">  652</span>&#160;  <span class="keywordtype">void</span> fill_big(<span class="keywordtype">size_t</span> zero_pad_bytes) {</div><div class="line"><a name="l00653"></a><span class="lineno">  653</span>&#160;    memset(make_space(zero_pad_bytes), 0, zero_pad_bytes);</div><div class="line"><a name="l00654"></a><span class="lineno">  654</span>&#160;  }</div><div class="line"><a name="l00655"></a><span class="lineno">  655</span>&#160;</div><div class="line"><a name="l00656"></a><span class="lineno">  656</span>&#160;  <span class="keywordtype">void</span> pop(<span class="keywordtype">size_t</span> bytes_to_remove) { cur_ += bytes_to_remove; }</div><div class="line"><a name="l00657"></a><span class="lineno">  657</span>&#160;  <span class="keywordtype">void</span> scratch_pop(<span class="keywordtype">size_t</span> bytes_to_remove) { scratch_ -= bytes_to_remove; }</div><div class="line"><a name="l00658"></a><span class="lineno">  658</span>&#160;</div><div class="line"><a name="l00659"></a><span class="lineno">  659</span>&#160; <span class="keyword">private</span>:</div><div class="line"><a name="l00660"></a><span class="lineno">  660</span>&#160;  <span class="comment">// You shouldn&#39;t really be copying instances of this class.</span></div><div class="line"><a name="l00661"></a><span class="lineno">  661</span>&#160;  FLATBUFFERS_DELETE_FUNC(<a class="code" href="classflatbuffers_1_1vector__downward.html">vector_downward</a>(<span class="keyword">const</span> <a class="code" href="classflatbuffers_1_1vector__downward.html">vector_downward</a> &amp;))</div><div class="line"><a name="l00662"></a><span class="lineno">  662</span>&#160;  FLATBUFFERS_DELETE_FUNC(<a class="code" href="classflatbuffers_1_1vector__downward.html">vector_downward</a> &amp;<span class="keyword">operator</span>=(<span class="keyword">const</span> <a class="code" href="classflatbuffers_1_1vector__downward.html">vector_downward</a> &amp;))</div><div class="line"><a name="l00663"></a><span class="lineno">  663</span>&#160;</div><div class="line"><a name="l00664"></a><span class="lineno">  664</span>&#160;  <a class="code" href="classflatbuffers_1_1_allocator.html">Allocator</a> *allocator_;</div><div class="line"><a name="l00665"></a><span class="lineno">  665</span>&#160;  <span class="keywordtype">bool</span> own_allocator_;</div><div class="line"><a name="l00666"></a><span class="lineno">  666</span>&#160;  <span class="keywordtype">size_t</span> initial_size_;</div><div class="line"><a name="l00667"></a><span class="lineno">  667</span>&#160;  <span class="keywordtype">size_t</span> buffer_minalign_;</div><div class="line"><a name="l00668"></a><span class="lineno">  668</span>&#160;  <span class="keywordtype">size_t</span> reserved_;</div><div class="line"><a name="l00669"></a><span class="lineno">  669</span>&#160;  uint8_t *buf_;</div><div class="line"><a name="l00670"></a><span class="lineno">  670</span>&#160;  uint8_t *cur_;  <span class="comment">// Points at location between empty (below) and used (above).</span></div><div class="line"><a name="l00671"></a><span class="lineno">  671</span>&#160;  uint8_t *scratch_;  <span class="comment">// Points to the end of the scratchpad in use.</span></div><div class="line"><a name="l00672"></a><span class="lineno">  672</span>&#160;</div><div class="line"><a name="l00673"></a><span class="lineno">  673</span>&#160;  <span class="keywordtype">void</span> reallocate(<span class="keywordtype">size_t</span> len) {</div><div class="line"><a name="l00674"></a><span class="lineno">  674</span>&#160;    assert(allocator_);</div><div class="line"><a name="l00675"></a><span class="lineno">  675</span>&#160;    <span class="keyword">auto</span> old_reserved = reserved_;</div><div class="line"><a name="l00676"></a><span class="lineno">  676</span>&#160;    <span class="keyword">auto</span> old_size = size();</div><div class="line"><a name="l00677"></a><span class="lineno">  677</span>&#160;    <span class="keyword">auto</span> old_scratch_size = scratch_size();</div><div class="line"><a name="l00678"></a><span class="lineno">  678</span>&#160;    reserved_ += (std::max)(len,</div><div class="line"><a name="l00679"></a><span class="lineno">  679</span>&#160;                            old_reserved ? old_reserved / 2 : initial_size_);</div><div class="line"><a name="l00680"></a><span class="lineno">  680</span>&#160;    reserved_ = (reserved_ + buffer_minalign_ - 1) &amp; ~(buffer_minalign_ - 1);</div><div class="line"><a name="l00681"></a><span class="lineno">  681</span>&#160;    <span class="keywordflow">if</span> (buf_) {</div><div class="line"><a name="l00682"></a><span class="lineno">  682</span>&#160;      buf_ = allocator_-&gt;reallocate_downward(buf_, old_reserved, reserved_,</div><div class="line"><a name="l00683"></a><span class="lineno">  683</span>&#160;                                             old_size, old_scratch_size);</div><div class="line"><a name="l00684"></a><span class="lineno">  684</span>&#160;    } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00685"></a><span class="lineno">  685</span>&#160;      buf_ = allocator_-&gt;allocate(reserved_);</div><div class="line"><a name="l00686"></a><span class="lineno">  686</span>&#160;    }</div><div class="line"><a name="l00687"></a><span class="lineno">  687</span>&#160;    cur_ = buf_ + reserved_ - old_size;</div><div class="line"><a name="l00688"></a><span class="lineno">  688</span>&#160;    scratch_ = buf_ + old_scratch_size;</div><div class="line"><a name="l00689"></a><span class="lineno">  689</span>&#160;  }</div><div class="line"><a name="l00690"></a><span class="lineno">  690</span>&#160;};</div><div class="line"><a name="l00691"></a><span class="lineno">  691</span>&#160;</div><div class="line"><a name="l00692"></a><span class="lineno">  692</span>&#160;<span class="comment">// Converts a Field ID to a virtual table offset.</span></div><div class="line"><a name="l00693"></a><span class="lineno">  693</span>&#160;<span class="keyword">inline</span> voffset_t FieldIndexToOffset(voffset_t field_id) {</div><div class="line"><a name="l00694"></a><span class="lineno">  694</span>&#160;  <span class="comment">// Should correspond to what EndTable() below builds up.</span></div><div class="line"><a name="l00695"></a><span class="lineno">  695</span>&#160;  <span class="keyword">const</span> <span class="keywordtype">int</span> fixed_fields = 2;  <span class="comment">// Vtable size and Object Size.</span></div><div class="line"><a name="l00696"></a><span class="lineno">  696</span>&#160;  <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span>voffset_t<span class="keyword">&gt;</span>((field_id + fixed_fields) * <span class="keyword">sizeof</span>(voffset_t));</div><div class="line"><a name="l00697"></a><span class="lineno">  697</span>&#160;}</div><div class="line"><a name="l00698"></a><span class="lineno">  698</span>&#160;</div><div class="line"><a name="l00699"></a><span class="lineno">  699</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> Alloc&gt;</div><div class="line"><a name="l00700"></a><span class="lineno">  700</span>&#160;<span class="keyword">const</span> T *data(<span class="keyword">const</span> std::vector&lt;T, Alloc&gt; &amp;v) {</div><div class="line"><a name="l00701"></a><span class="lineno">  701</span>&#160;  <span class="keywordflow">return</span> v.empty() ? nullptr : &amp;v.front();</div><div class="line"><a name="l00702"></a><span class="lineno">  702</span>&#160;}</div><div class="line"><a name="l00703"></a><span class="lineno">  703</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> Alloc&gt; T *data(std::vector&lt;T, Alloc&gt; &amp;v) {</div><div class="line"><a name="l00704"></a><span class="lineno">  704</span>&#160;  <span class="keywordflow">return</span> v.empty() ? nullptr : &amp;v.front();</div><div class="line"><a name="l00705"></a><span class="lineno">  705</span>&#160;}</div><div class="line"><a name="l00706"></a><span class="lineno">  706</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00707"></a><span class="lineno">  707</span>&#160;<span class="comment">/// @endcond</span></div><div class="line"><a name="l00708"></a><span class="lineno">  708</span>&#160;<span class="comment"></span><span class="comment"></span></div><div class="line"><a name="l00709"></a><span class="lineno">  709</span>&#160;<span class="comment">/// @addtogroup flatbuffers_cpp_api</span></div><div class="line"><a name="l00710"></a><span class="lineno">  710</span>&#160;<span class="comment">/// @{</span></div><div class="line"><a name="l00711"></a><span class="lineno">  711</span>&#160;<span class="comment">/// @class FlatBufferBuilder</span></div><div class="line"><a name="l00712"></a><span class="lineno">  712</span>&#160;<span class="comment">/// @brief Helper class to hold data needed in creation of a FlatBuffer.</span></div><div class="line"><a name="l00713"></a><span class="lineno">  713</span>&#160;<span class="comment">/// To serialize data, you typically call one of the `Create*()` functions in</span></div><div class="line"><a name="l00714"></a><span class="lineno">  714</span>&#160;<span class="comment">/// the generated code, which in turn call a sequence of `StartTable`/</span></div><div class="line"><a name="l00715"></a><span class="lineno">  715</span>&#160;<span class="comment">/// `PushElement`/`AddElement`/`EndTable`, or the builtin `CreateString`/</span></div><div class="line"><a name="l00716"></a><span class="lineno">  716</span>&#160;<span class="comment">/// `CreateVector` functions. Do this is depth-first order to build up a tree to</span></div><div class="line"><a name="l00717"></a><span class="lineno">  717</span>&#160;<span class="comment">/// the root. `Finish()` wraps up the buffer ready for transport.</span></div><div class="line"><a name="l00718"></a><span class="lineno"><a class="line" href="classflatbuffers_1_1_flat_buffer_builder.html">  718</a></span>&#160;<span class="comment"></span><span class="keyword">class </span><a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html">FlatBufferBuilder</a> {</div><div class="line"><a name="l00719"></a><span class="lineno">  719</span>&#160; <span class="keyword">public</span>:<span class="comment"></span></div><div class="line"><a name="l00720"></a><span class="lineno">  720</span>&#160;<span class="comment">  /// @brief Default constructor for FlatBufferBuilder.</span></div><div class="line"><a name="l00721"></a><span class="lineno">  721</span>&#160;<span class="comment">  /// @param[in] initial_size The initial size of the buffer, in bytes. Defaults</span></div><div class="line"><a name="l00722"></a><span class="lineno">  722</span>&#160;<span class="comment">  /// to `1024`.</span></div><div class="line"><a name="l00723"></a><span class="lineno">  723</span>&#160;<span class="comment">  /// @param[in] allocator An `Allocator` to use. Defaults to a new instance of</span></div><div class="line"><a name="l00724"></a><span class="lineno">  724</span>&#160;<span class="comment">  /// a `DefaultAllocator`.</span></div><div class="line"><a name="l00725"></a><span class="lineno">  725</span>&#160;<span class="comment">  /// @param[in] own_allocator Whether the builder/vector should own the</span></div><div class="line"><a name="l00726"></a><span class="lineno">  726</span>&#160;<span class="comment">  /// allocator. Defaults to / `false`.</span></div><div class="line"><a name="l00727"></a><span class="lineno">  727</span>&#160;<span class="comment">  /// @param[in] buffer_minalign Force the buffer to be aligned to the given</span></div><div class="line"><a name="l00728"></a><span class="lineno">  728</span>&#160;<span class="comment">  /// minimum alignment upon reallocation. Only needed if you intend to store</span></div><div class="line"><a name="l00729"></a><span class="lineno">  729</span>&#160;<span class="comment">  /// types with custom alignment AND you wish to read the buffer in-place</span></div><div class="line"><a name="l00730"></a><span class="lineno">  730</span>&#160;<span class="comment">  /// directly after creation.</span></div><div class="line"><a name="l00731"></a><span class="lineno"><a class="line" href="classflatbuffers_1_1_flat_buffer_builder.html#ab0173786ea4ec3e4ae10555639b2996c">  731</a></span>&#160;<span class="comment"></span>  <span class="keyword">explicit</span> <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#ab0173786ea4ec3e4ae10555639b2996c">FlatBufferBuilder</a>(<span class="keywordtype">size_t</span> initial_size = 1024,</div><div class="line"><a name="l00732"></a><span class="lineno">  732</span>&#160;                             <a class="code" href="classflatbuffers_1_1_allocator.html">Allocator</a> *allocator = <span class="keyword">nullptr</span>,</div><div class="line"><a name="l00733"></a><span class="lineno">  733</span>&#160;                             <span class="keywordtype">bool</span> own_allocator = <span class="keyword">false</span>,</div><div class="line"><a name="l00734"></a><span class="lineno">  734</span>&#160;                             <span class="keywordtype">size_t</span> buffer_minalign =</div><div class="line"><a name="l00735"></a><span class="lineno">  735</span>&#160;                                 AlignOf&lt;largest_scalar_t&gt;())</div><div class="line"><a name="l00736"></a><span class="lineno">  736</span>&#160;      : buf_(initial_size, allocator, own_allocator, buffer_minalign),</div><div class="line"><a name="l00737"></a><span class="lineno">  737</span>&#160;        num_field_loc(0),</div><div class="line"><a name="l00738"></a><span class="lineno">  738</span>&#160;        max_voffset_(0),</div><div class="line"><a name="l00739"></a><span class="lineno">  739</span>&#160;        nested(false),</div><div class="line"><a name="l00740"></a><span class="lineno">  740</span>&#160;        finished(false),</div><div class="line"><a name="l00741"></a><span class="lineno">  741</span>&#160;        minalign_(1),</div><div class="line"><a name="l00742"></a><span class="lineno">  742</span>&#160;        force_defaults_(false),</div><div class="line"><a name="l00743"></a><span class="lineno">  743</span>&#160;        dedup_vtables_(true),</div><div class="line"><a name="l00744"></a><span class="lineno">  744</span>&#160;        string_pool(nullptr) {</div><div class="line"><a name="l00745"></a><span class="lineno">  745</span>&#160;    EndianCheck();</div><div class="line"><a name="l00746"></a><span class="lineno">  746</span>&#160;  }</div><div class="line"><a name="l00747"></a><span class="lineno">  747</span>&#160;</div><div class="line"><a name="l00748"></a><span class="lineno">  748</span>&#160;  ~<a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html">FlatBufferBuilder</a>() {</div><div class="line"><a name="l00749"></a><span class="lineno">  749</span>&#160;    <span class="keywordflow">if</span> (string_pool) <span class="keyword">delete</span> string_pool;</div><div class="line"><a name="l00750"></a><span class="lineno">  750</span>&#160;  }</div><div class="line"><a name="l00751"></a><span class="lineno">  751</span>&#160;</div><div class="line"><a name="l00752"></a><span class="lineno">  752</span>&#160;  <span class="keywordtype">void</span> Reset() {</div><div class="line"><a name="l00753"></a><span class="lineno">  753</span>&#160;    Clear();       <span class="comment">// clear builder state</span></div><div class="line"><a name="l00754"></a><span class="lineno">  754</span>&#160;    buf_.reset();  <span class="comment">// deallocate buffer</span></div><div class="line"><a name="l00755"></a><span class="lineno">  755</span>&#160;  }</div><div class="line"><a name="l00756"></a><span class="lineno">  756</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00757"></a><span class="lineno">  757</span>&#160;<span class="comment">  /// @brief Reset all the state in this FlatBufferBuilder so it can be reused</span></div><div class="line"><a name="l00758"></a><span class="lineno">  758</span>&#160;<span class="comment">  /// to construct another buffer.</span></div><div class="line"><a name="l00759"></a><span class="lineno"><a class="line" href="classflatbuffers_1_1_flat_buffer_builder.html#ae94b94ba71ea0aeb2d9a98c43b713412">  759</a></span>&#160;<span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#ae94b94ba71ea0aeb2d9a98c43b713412">Clear</a>() {</div><div class="line"><a name="l00760"></a><span class="lineno">  760</span>&#160;    ClearOffsets();</div><div class="line"><a name="l00761"></a><span class="lineno">  761</span>&#160;    buf_.clear();</div><div class="line"><a name="l00762"></a><span class="lineno">  762</span>&#160;    nested = <span class="keyword">false</span>;</div><div class="line"><a name="l00763"></a><span class="lineno">  763</span>&#160;    finished = <span class="keyword">false</span>;</div><div class="line"><a name="l00764"></a><span class="lineno">  764</span>&#160;    minalign_ = 1;</div><div class="line"><a name="l00765"></a><span class="lineno">  765</span>&#160;    <span class="keywordflow">if</span> (string_pool) string_pool-&gt;clear();</div><div class="line"><a name="l00766"></a><span class="lineno">  766</span>&#160;  }</div><div class="line"><a name="l00767"></a><span class="lineno">  767</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00768"></a><span class="lineno">  768</span>&#160;<span class="comment">  /// @brief The current size of the serialized buffer, counting from the end.</span></div><div class="line"><a name="l00769"></a><span class="lineno">  769</span>&#160;<span class="comment">  /// @return Returns an `uoffset_t` with the current size of the buffer.</span></div><div class="line"><a name="l00770"></a><span class="lineno"><a class="line" href="classflatbuffers_1_1_flat_buffer_builder.html#a66c8fd33ab9b3b237954c9ea38648f7f">  770</a></span>&#160;<span class="comment"></span>  uoffset_t <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#a66c8fd33ab9b3b237954c9ea38648f7f">GetSize</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> buf_.size(); }</div><div class="line"><a name="l00771"></a><span class="lineno">  771</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00772"></a><span class="lineno">  772</span>&#160;<span class="comment">  /// @brief Get the serialized buffer (after you call `Finish()`).</span></div><div class="line"><a name="l00773"></a><span class="lineno">  773</span>&#160;<span class="comment">  /// @return Returns an `uint8_t` pointer to the FlatBuffer data inside the</span></div><div class="line"><a name="l00774"></a><span class="lineno">  774</span>&#160;<span class="comment">  /// buffer.</span></div><div class="line"><a name="l00775"></a><span class="lineno"><a class="line" href="classflatbuffers_1_1_flat_buffer_builder.html#ab81ab8aa273c270b0942fd81489cad83">  775</a></span>&#160;<span class="comment"></span>  uint8_t *<a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#ab81ab8aa273c270b0942fd81489cad83">GetBufferPointer</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l00776"></a><span class="lineno">  776</span>&#160;    Finished();</div><div class="line"><a name="l00777"></a><span class="lineno">  777</span>&#160;    <span class="keywordflow">return</span> buf_.data();</div><div class="line"><a name="l00778"></a><span class="lineno">  778</span>&#160;  }</div><div class="line"><a name="l00779"></a><span class="lineno">  779</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00780"></a><span class="lineno">  780</span>&#160;<span class="comment">  /// @brief Get a pointer to an unfinished buffer.</span></div><div class="line"><a name="l00781"></a><span class="lineno">  781</span>&#160;<span class="comment">  /// @return Returns a `uint8_t` pointer to the unfinished buffer.</span></div><div class="line"><a name="l00782"></a><span class="lineno"><a class="line" href="classflatbuffers_1_1_flat_buffer_builder.html#a099810f03046139d1854d20a1c2a2e41">  782</a></span>&#160;<span class="comment"></span>  uint8_t *<a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#a099810f03046139d1854d20a1c2a2e41">GetCurrentBufferPointer</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> buf_.data(); }</div><div class="line"><a name="l00783"></a><span class="lineno">  783</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00784"></a><span class="lineno">  784</span>&#160;<span class="comment">  /// @brief Get the released pointer to the serialized buffer.</span></div><div class="line"><a name="l00785"></a><span class="lineno">  785</span>&#160;<span class="comment">  /// @warning Do NOT attempt to use this FlatBufferBuilder afterwards!</span></div><div class="line"><a name="l00786"></a><span class="lineno">  786</span>&#160;<span class="comment">  /// @return A `FlatBuffer` that owns the buffer and its allocator and</span></div><div class="line"><a name="l00787"></a><span class="lineno">  787</span>&#160;<span class="comment">  /// behaves similar to a `unique_ptr` with a deleter.</span></div><div class="line"><a name="l00788"></a><span class="lineno">  788</span>&#160;<span class="comment">  /// Deprecated: use Release() instead</span></div><div class="line"><a name="l00789"></a><span class="lineno"><a class="line" href="classflatbuffers_1_1_flat_buffer_builder.html#a0e715d9019060b4b753c4e5228be56e8">  789</a></span>&#160;<span class="comment"></span>  <a class="code" href="classflatbuffers_1_1_detached_buffer.html">DetachedBuffer</a> <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#a0e715d9019060b4b753c4e5228be56e8">ReleaseBufferPointer</a>() {</div><div class="line"><a name="l00790"></a><span class="lineno">  790</span>&#160;    Finished();</div><div class="line"><a name="l00791"></a><span class="lineno">  791</span>&#160;    <span class="keywordflow">return</span> buf_.release();</div><div class="line"><a name="l00792"></a><span class="lineno">  792</span>&#160;  }</div><div class="line"><a name="l00793"></a><span class="lineno">  793</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00794"></a><span class="lineno">  794</span>&#160;<span class="comment">  /// @brief Get the released DetachedBuffer.</span></div><div class="line"><a name="l00795"></a><span class="lineno">  795</span>&#160;<span class="comment">  /// @return A `DetachedBuffer` that owns the buffer and its allocator.</span></div><div class="line"><a name="l00796"></a><span class="lineno"><a class="line" href="classflatbuffers_1_1_flat_buffer_builder.html#a5e2c3a1e47f0ab4a3a3f07a07a52fb45">  796</a></span>&#160;<span class="comment"></span>  <a class="code" href="classflatbuffers_1_1_detached_buffer.html">DetachedBuffer</a> <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#a5e2c3a1e47f0ab4a3a3f07a07a52fb45">Release</a>() {</div><div class="line"><a name="l00797"></a><span class="lineno">  797</span>&#160;    Finished();</div><div class="line"><a name="l00798"></a><span class="lineno">  798</span>&#160;    <span class="keywordflow">return</span> buf_.release();</div><div class="line"><a name="l00799"></a><span class="lineno">  799</span>&#160;  }</div><div class="line"><a name="l00800"></a><span class="lineno">  800</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00801"></a><span class="lineno">  801</span>&#160;<span class="comment">  /// @brief get the minimum alignment this buffer needs to be accessed</span></div><div class="line"><a name="l00802"></a><span class="lineno">  802</span>&#160;<span class="comment">  /// properly. This is only known once all elements have been written (after</span></div><div class="line"><a name="l00803"></a><span class="lineno">  803</span>&#160;<span class="comment">  /// you call Finish()). You can use this information if you need to embed</span></div><div class="line"><a name="l00804"></a><span class="lineno">  804</span>&#160;<span class="comment">  /// a FlatBuffer in some other buffer, such that you can later read it</span></div><div class="line"><a name="l00805"></a><span class="lineno">  805</span>&#160;<span class="comment">  /// without first having to copy it into its own buffer.</span></div><div class="line"><a name="l00806"></a><span class="lineno"><a class="line" href="classflatbuffers_1_1_flat_buffer_builder.html#aa1ebce1f3f46832946a95952af1e9c2b">  806</a></span>&#160;<span class="comment"></span>  <span class="keywordtype">size_t</span> <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#aa1ebce1f3f46832946a95952af1e9c2b">GetBufferMinAlignment</a>() {</div><div class="line"><a name="l00807"></a><span class="lineno">  807</span>&#160;    Finished();</div><div class="line"><a name="l00808"></a><span class="lineno">  808</span>&#160;    <span class="keywordflow">return</span> minalign_;</div><div class="line"><a name="l00809"></a><span class="lineno">  809</span>&#160;  }</div><div class="line"><a name="l00810"></a><span class="lineno">  810</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00811"></a><span class="lineno">  811</span>&#160;<span class="comment">  /// @cond FLATBUFFERS_INTERNAL</span></div><div class="line"><a name="l00812"></a><span class="lineno">  812</span>&#160;<span class="comment"></span>  <span class="keywordtype">void</span> Finished()<span class="keyword"> const </span>{</div><div class="line"><a name="l00813"></a><span class="lineno">  813</span>&#160;    <span class="comment">// If you get this assert, you&#39;re attempting to get access a buffer</span></div><div class="line"><a name="l00814"></a><span class="lineno">  814</span>&#160;    <span class="comment">// which hasn&#39;t been finished yet. Be sure to call</span></div><div class="line"><a name="l00815"></a><span class="lineno">  815</span>&#160;    <span class="comment">// FlatBufferBuilder::Finish with your root table.</span></div><div class="line"><a name="l00816"></a><span class="lineno">  816</span>&#160;    <span class="comment">// If you really need to access an unfinished buffer, call</span></div><div class="line"><a name="l00817"></a><span class="lineno">  817</span>&#160;    <span class="comment">// GetCurrentBufferPointer instead.</span></div><div class="line"><a name="l00818"></a><span class="lineno">  818</span>&#160;    assert(finished);</div><div class="line"><a name="l00819"></a><span class="lineno">  819</span>&#160;  }<span class="comment"></span></div><div class="line"><a name="l00820"></a><span class="lineno">  820</span>&#160;<span class="comment">  /// @endcond</span></div><div class="line"><a name="l00821"></a><span class="lineno">  821</span>&#160;<span class="comment"></span><span class="comment"></span></div><div class="line"><a name="l00822"></a><span class="lineno">  822</span>&#160;<span class="comment">  /// @brief In order to save space, fields that are set to their default value</span></div><div class="line"><a name="l00823"></a><span class="lineno">  823</span>&#160;<span class="comment">  /// don&#39;t get serialized into the buffer.</span></div><div class="line"><a name="l00824"></a><span class="lineno">  824</span>&#160;<span class="comment">  /// @param[in] bool fd When set to `true`, always serializes default values.</span></div><div class="line"><a name="l00825"></a><span class="lineno"><a class="line" href="classflatbuffers_1_1_flat_buffer_builder.html#a16a8fd46b34ad7727406c37b65b6b27a">  825</a></span>&#160;<span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#a16a8fd46b34ad7727406c37b65b6b27a">ForceDefaults</a>(<span class="keywordtype">bool</span> fd) { force_defaults_ = fd; }</div><div class="line"><a name="l00826"></a><span class="lineno">  826</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00827"></a><span class="lineno">  827</span>&#160;<span class="comment">  /// @brief By default vtables are deduped in order to save space.</span></div><div class="line"><a name="l00828"></a><span class="lineno">  828</span>&#160;<span class="comment">  /// @param[in] bool dedup When set to `true`, dedup vtables.</span></div><div class="line"><a name="l00829"></a><span class="lineno"><a class="line" href="classflatbuffers_1_1_flat_buffer_builder.html#aa905b29dce19a1795c7bce375cf29961">  829</a></span>&#160;<span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#aa905b29dce19a1795c7bce375cf29961">DedupVtables</a>(<span class="keywordtype">bool</span> dedup) { dedup_vtables_ = dedup; }</div><div class="line"><a name="l00830"></a><span class="lineno">  830</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00831"></a><span class="lineno">  831</span>&#160;<span class="comment">  /// @cond FLATBUFFERS_INTERNAL</span></div><div class="line"><a name="l00832"></a><span class="lineno">  832</span>&#160;<span class="comment"></span>  <span class="keywordtype">void</span> Pad(<span class="keywordtype">size_t</span> num_bytes) { buf_.fill(num_bytes); }</div><div class="line"><a name="l00833"></a><span class="lineno">  833</span>&#160;</div><div class="line"><a name="l00834"></a><span class="lineno">  834</span>&#160;  <span class="keywordtype">void</span> TrackMinAlign(<span class="keywordtype">size_t</span> elem_size) {</div><div class="line"><a name="l00835"></a><span class="lineno">  835</span>&#160;    <span class="keywordflow">if</span> (elem_size &gt; minalign_) minalign_ = elem_size;</div><div class="line"><a name="l00836"></a><span class="lineno">  836</span>&#160;  }</div><div class="line"><a name="l00837"></a><span class="lineno">  837</span>&#160;</div><div class="line"><a name="l00838"></a><span class="lineno">  838</span>&#160;  <span class="keywordtype">void</span> Align(<span class="keywordtype">size_t</span> elem_size) {</div><div class="line"><a name="l00839"></a><span class="lineno">  839</span>&#160;    TrackMinAlign(elem_size);</div><div class="line"><a name="l00840"></a><span class="lineno">  840</span>&#160;    buf_.fill(PaddingBytes(buf_.size(), elem_size));</div><div class="line"><a name="l00841"></a><span class="lineno">  841</span>&#160;  }</div><div class="line"><a name="l00842"></a><span class="lineno">  842</span>&#160;</div><div class="line"><a name="l00843"></a><span class="lineno">  843</span>&#160;  <span class="keywordtype">void</span> PushFlatBuffer(<span class="keyword">const</span> uint8_t *bytes, <span class="keywordtype">size_t</span> size) {</div><div class="line"><a name="l00844"></a><span class="lineno">  844</span>&#160;    PushBytes(bytes, size);</div><div class="line"><a name="l00845"></a><span class="lineno">  845</span>&#160;    finished = <span class="keyword">true</span>;</div><div class="line"><a name="l00846"></a><span class="lineno">  846</span>&#160;  }</div><div class="line"><a name="l00847"></a><span class="lineno">  847</span>&#160;</div><div class="line"><a name="l00848"></a><span class="lineno">  848</span>&#160;  <span class="keywordtype">void</span> PushBytes(<span class="keyword">const</span> uint8_t *bytes, <span class="keywordtype">size_t</span> size) { buf_.push(bytes, size); }</div><div class="line"><a name="l00849"></a><span class="lineno">  849</span>&#160;</div><div class="line"><a name="l00850"></a><span class="lineno">  850</span>&#160;  <span class="keywordtype">void</span> PopBytes(<span class="keywordtype">size_t</span> amount) { buf_.pop(amount); }</div><div class="line"><a name="l00851"></a><span class="lineno">  851</span>&#160;</div><div class="line"><a name="l00852"></a><span class="lineno">  852</span>&#160;  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt; <span class="keywordtype">void</span> AssertScalarT() {</div><div class="line"><a name="l00853"></a><span class="lineno">  853</span>&#160;    <span class="comment">// The code assumes power of 2 sizes and endian-swap-ability.</span></div><div class="line"><a name="l00854"></a><span class="lineno">  854</span>&#160;    static_assert(flatbuffers::is_scalar&lt;T&gt;::value, <span class="stringliteral">&quot;T must be a scalar type&quot;</span>);</div><div class="line"><a name="l00855"></a><span class="lineno">  855</span>&#160;  }</div><div class="line"><a name="l00856"></a><span class="lineno">  856</span>&#160;</div><div class="line"><a name="l00857"></a><span class="lineno">  857</span>&#160;  <span class="comment">// Write a single aligned scalar to the buffer</span></div><div class="line"><a name="l00858"></a><span class="lineno">  858</span>&#160;  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt; uoffset_t PushElement(T element) {</div><div class="line"><a name="l00859"></a><span class="lineno">  859</span>&#160;    AssertScalarT&lt;T&gt;();</div><div class="line"><a name="l00860"></a><span class="lineno">  860</span>&#160;    T litle_endian_element = EndianScalar(element);</div><div class="line"><a name="l00861"></a><span class="lineno">  861</span>&#160;    Align(<span class="keyword">sizeof</span>(T));</div><div class="line"><a name="l00862"></a><span class="lineno">  862</span>&#160;    buf_.push_small(litle_endian_element);</div><div class="line"><a name="l00863"></a><span class="lineno">  863</span>&#160;    <span class="keywordflow">return</span> GetSize();</div><div class="line"><a name="l00864"></a><span class="lineno">  864</span>&#160;  }</div><div class="line"><a name="l00865"></a><span class="lineno">  865</span>&#160;</div><div class="line"><a name="l00866"></a><span class="lineno">  866</span>&#160;  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt; uoffset_t PushElement(<a class="code" href="structflatbuffers_1_1_offset.html">Offset&lt;T&gt;</a> off) {</div><div class="line"><a name="l00867"></a><span class="lineno">  867</span>&#160;    <span class="comment">// Special case for offsets: see ReferTo below.</span></div><div class="line"><a name="l00868"></a><span class="lineno">  868</span>&#160;    <span class="keywordflow">return</span> PushElement(ReferTo(off.o));</div><div class="line"><a name="l00869"></a><span class="lineno">  869</span>&#160;  }</div><div class="line"><a name="l00870"></a><span class="lineno">  870</span>&#160;</div><div class="line"><a name="l00871"></a><span class="lineno">  871</span>&#160;  <span class="comment">// When writing fields, we track where they are, so we can create correct</span></div><div class="line"><a name="l00872"></a><span class="lineno">  872</span>&#160;  <span class="comment">// vtables later.</span></div><div class="line"><a name="l00873"></a><span class="lineno">  873</span>&#160;  <span class="keywordtype">void</span> TrackField(voffset_t field, uoffset_t off) {</div><div class="line"><a name="l00874"></a><span class="lineno">  874</span>&#160;    <a class="code" href="structflatbuffers_1_1_flat_buffer_builder_1_1_field_loc.html">FieldLoc</a> fl = { off, field };</div><div class="line"><a name="l00875"></a><span class="lineno">  875</span>&#160;    buf_.scratch_push_small(fl);</div><div class="line"><a name="l00876"></a><span class="lineno">  876</span>&#160;    num_field_loc++;</div><div class="line"><a name="l00877"></a><span class="lineno">  877</span>&#160;    max_voffset_ = (std::max)(max_voffset_, field);</div><div class="line"><a name="l00878"></a><span class="lineno">  878</span>&#160;  }</div><div class="line"><a name="l00879"></a><span class="lineno">  879</span>&#160;</div><div class="line"><a name="l00880"></a><span class="lineno">  880</span>&#160;  <span class="comment">// Like PushElement, but additionally tracks the field this represents.</span></div><div class="line"><a name="l00881"></a><span class="lineno">  881</span>&#160;  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt; <span class="keywordtype">void</span> AddElement(voffset_t field, T e, T def) {</div><div class="line"><a name="l00882"></a><span class="lineno">  882</span>&#160;    <span class="comment">// We don&#39;t serialize values equal to the default.</span></div><div class="line"><a name="l00883"></a><span class="lineno">  883</span>&#160;    <span class="keywordflow">if</span> (e == def &amp;&amp; !force_defaults_) <span class="keywordflow">return</span>;</div><div class="line"><a name="l00884"></a><span class="lineno">  884</span>&#160;    <span class="keyword">auto</span> off = PushElement(e);</div><div class="line"><a name="l00885"></a><span class="lineno">  885</span>&#160;    TrackField(field, off);</div><div class="line"><a name="l00886"></a><span class="lineno">  886</span>&#160;  }</div><div class="line"><a name="l00887"></a><span class="lineno">  887</span>&#160;</div><div class="line"><a name="l00888"></a><span class="lineno">  888</span>&#160;  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt; <span class="keywordtype">void</span> AddOffset(voffset_t field, <a class="code" href="structflatbuffers_1_1_offset.html">Offset&lt;T&gt;</a> off) {</div><div class="line"><a name="l00889"></a><span class="lineno">  889</span>&#160;    <span class="keywordflow">if</span> (off.IsNull()) <span class="keywordflow">return</span>;  <span class="comment">// Don&#39;t store.</span></div><div class="line"><a name="l00890"></a><span class="lineno">  890</span>&#160;    AddElement(field, ReferTo(off.o), static_cast&lt;uoffset_t&gt;(0));</div><div class="line"><a name="l00891"></a><span class="lineno">  891</span>&#160;  }</div><div class="line"><a name="l00892"></a><span class="lineno">  892</span>&#160;</div><div class="line"><a name="l00893"></a><span class="lineno">  893</span>&#160;  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt; <span class="keywordtype">void</span> AddStruct(voffset_t field, <span class="keyword">const</span> T *structptr) {</div><div class="line"><a name="l00894"></a><span class="lineno">  894</span>&#160;    <span class="keywordflow">if</span> (!structptr) <span class="keywordflow">return</span>;  <span class="comment">// Default, don&#39;t store.</span></div><div class="line"><a name="l00895"></a><span class="lineno">  895</span>&#160;    Align(AlignOf&lt;T&gt;());</div><div class="line"><a name="l00896"></a><span class="lineno">  896</span>&#160;    buf_.push_small(*structptr);</div><div class="line"><a name="l00897"></a><span class="lineno">  897</span>&#160;    TrackField(field, GetSize());</div><div class="line"><a name="l00898"></a><span class="lineno">  898</span>&#160;  }</div><div class="line"><a name="l00899"></a><span class="lineno">  899</span>&#160;</div><div class="line"><a name="l00900"></a><span class="lineno">  900</span>&#160;  <span class="keywordtype">void</span> AddStructOffset(voffset_t field, uoffset_t off) {</div><div class="line"><a name="l00901"></a><span class="lineno">  901</span>&#160;    TrackField(field, off);</div><div class="line"><a name="l00902"></a><span class="lineno">  902</span>&#160;  }</div><div class="line"><a name="l00903"></a><span class="lineno">  903</span>&#160;</div><div class="line"><a name="l00904"></a><span class="lineno">  904</span>&#160;  <span class="comment">// Offsets initially are relative to the end of the buffer (downwards).</span></div><div class="line"><a name="l00905"></a><span class="lineno">  905</span>&#160;  <span class="comment">// This function converts them to be relative to the current location</span></div><div class="line"><a name="l00906"></a><span class="lineno">  906</span>&#160;  <span class="comment">// in the buffer (when stored here), pointing upwards.</span></div><div class="line"><a name="l00907"></a><span class="lineno">  907</span>&#160;  uoffset_t ReferTo(uoffset_t off) {</div><div class="line"><a name="l00908"></a><span class="lineno">  908</span>&#160;    <span class="comment">// Align to ensure GetSize() below is correct.</span></div><div class="line"><a name="l00909"></a><span class="lineno">  909</span>&#160;    Align(<span class="keyword">sizeof</span>(uoffset_t));</div><div class="line"><a name="l00910"></a><span class="lineno">  910</span>&#160;    <span class="comment">// Offset must refer to something already in buffer.</span></div><div class="line"><a name="l00911"></a><span class="lineno">  911</span>&#160;    assert(off &amp;&amp; off &lt;= GetSize());</div><div class="line"><a name="l00912"></a><span class="lineno">  912</span>&#160;    <span class="keywordflow">return</span> GetSize() - off + <span class="keyword">static_cast&lt;</span>uoffset_t<span class="keyword">&gt;</span>(<span class="keyword">sizeof</span>(uoffset_t));</div><div class="line"><a name="l00913"></a><span class="lineno">  913</span>&#160;  }</div><div class="line"><a name="l00914"></a><span class="lineno">  914</span>&#160;</div><div class="line"><a name="l00915"></a><span class="lineno">  915</span>&#160;  <span class="keywordtype">void</span> NotNested() {</div><div class="line"><a name="l00916"></a><span class="lineno">  916</span>&#160;    <span class="comment">// If you hit this, you&#39;re trying to construct a Table/Vector/String</span></div><div class="line"><a name="l00917"></a><span class="lineno">  917</span>&#160;    <span class="comment">// during the construction of its parent table (between the MyTableBuilder</span></div><div class="line"><a name="l00918"></a><span class="lineno">  918</span>&#160;    <span class="comment">// and table.Finish().</span></div><div class="line"><a name="l00919"></a><span class="lineno">  919</span>&#160;    <span class="comment">// Move the creation of these sub-objects to above the MyTableBuilder to</span></div><div class="line"><a name="l00920"></a><span class="lineno">  920</span>&#160;    <span class="comment">// not get this assert.</span></div><div class="line"><a name="l00921"></a><span class="lineno">  921</span>&#160;    <span class="comment">// Ignoring this assert may appear to work in simple cases, but the reason</span></div><div class="line"><a name="l00922"></a><span class="lineno">  922</span>&#160;    <span class="comment">// it is here is that storing objects in-line may cause vtable offsets</span></div><div class="line"><a name="l00923"></a><span class="lineno">  923</span>&#160;    <span class="comment">// to not fit anymore. It also leads to vtable duplication.</span></div><div class="line"><a name="l00924"></a><span class="lineno">  924</span>&#160;    assert(!nested);</div><div class="line"><a name="l00925"></a><span class="lineno">  925</span>&#160;    <span class="comment">// If you hit this, fields were added outside the scope of a table.</span></div><div class="line"><a name="l00926"></a><span class="lineno">  926</span>&#160;    assert(!num_field_loc);</div><div class="line"><a name="l00927"></a><span class="lineno">  927</span>&#160;  }</div><div class="line"><a name="l00928"></a><span class="lineno">  928</span>&#160;</div><div class="line"><a name="l00929"></a><span class="lineno">  929</span>&#160;  <span class="comment">// From generated code (or from the parser), we call StartTable/EndTable</span></div><div class="line"><a name="l00930"></a><span class="lineno">  930</span>&#160;  <span class="comment">// with a sequence of AddElement calls in between.</span></div><div class="line"><a name="l00931"></a><span class="lineno">  931</span>&#160;  uoffset_t StartTable() {</div><div class="line"><a name="l00932"></a><span class="lineno">  932</span>&#160;    NotNested();</div><div class="line"><a name="l00933"></a><span class="lineno">  933</span>&#160;    nested = <span class="keyword">true</span>;</div><div class="line"><a name="l00934"></a><span class="lineno">  934</span>&#160;    <span class="keywordflow">return</span> GetSize();</div><div class="line"><a name="l00935"></a><span class="lineno">  935</span>&#160;  }</div><div class="line"><a name="l00936"></a><span class="lineno">  936</span>&#160;</div><div class="line"><a name="l00937"></a><span class="lineno">  937</span>&#160;  <span class="comment">// This finishes one serialized object by generating the vtable if it&#39;s a</span></div><div class="line"><a name="l00938"></a><span class="lineno">  938</span>&#160;  <span class="comment">// table, comparing it against existing vtables, and writing the</span></div><div class="line"><a name="l00939"></a><span class="lineno">  939</span>&#160;  <span class="comment">// resulting vtable offset.</span></div><div class="line"><a name="l00940"></a><span class="lineno">  940</span>&#160;  uoffset_t EndTable(uoffset_t start) {</div><div class="line"><a name="l00941"></a><span class="lineno">  941</span>&#160;    <span class="comment">// If you get this assert, a corresponding StartTable wasn&#39;t called.</span></div><div class="line"><a name="l00942"></a><span class="lineno">  942</span>&#160;    assert(nested);</div><div class="line"><a name="l00943"></a><span class="lineno">  943</span>&#160;    <span class="comment">// Write the vtable offset, which is the start of any Table.</span></div><div class="line"><a name="l00944"></a><span class="lineno">  944</span>&#160;    <span class="comment">// We fill it&#39;s value later.</span></div><div class="line"><a name="l00945"></a><span class="lineno">  945</span>&#160;    <span class="keyword">auto</span> vtableoffsetloc = PushElement&lt;soffset_t&gt;(0);</div><div class="line"><a name="l00946"></a><span class="lineno">  946</span>&#160;    <span class="comment">// Write a vtable, which consists entirely of voffset_t elements.</span></div><div class="line"><a name="l00947"></a><span class="lineno">  947</span>&#160;    <span class="comment">// It starts with the number of offsets, followed by a type id, followed</span></div><div class="line"><a name="l00948"></a><span class="lineno">  948</span>&#160;    <span class="comment">// by the offsets themselves. In reverse:</span></div><div class="line"><a name="l00949"></a><span class="lineno">  949</span>&#160;    <span class="comment">// Include space for the last offset and ensure empty tables have a</span></div><div class="line"><a name="l00950"></a><span class="lineno">  950</span>&#160;    <span class="comment">// minimum size.</span></div><div class="line"><a name="l00951"></a><span class="lineno">  951</span>&#160;    max_voffset_ =</div><div class="line"><a name="l00952"></a><span class="lineno">  952</span>&#160;        (std::max)(static_cast&lt;voffset_t&gt;(max_voffset_ + <span class="keyword">sizeof</span>(voffset_t)),</div><div class="line"><a name="l00953"></a><span class="lineno">  953</span>&#160;                   FieldIndexToOffset(0));</div><div class="line"><a name="l00954"></a><span class="lineno">  954</span>&#160;    buf_.fill_big(max_voffset_);</div><div class="line"><a name="l00955"></a><span class="lineno">  955</span>&#160;    <span class="keyword">auto</span> table_object_size = vtableoffsetloc - start;</div><div class="line"><a name="l00956"></a><span class="lineno">  956</span>&#160;    assert(table_object_size &lt; 0x10000);  <span class="comment">// Vtable use 16bit offsets.</span></div><div class="line"><a name="l00957"></a><span class="lineno">  957</span>&#160;    WriteScalar&lt;voffset_t&gt;(buf_.data() + <span class="keyword">sizeof</span>(voffset_t),</div><div class="line"><a name="l00958"></a><span class="lineno">  958</span>&#160;                           static_cast&lt;voffset_t&gt;(table_object_size));</div><div class="line"><a name="l00959"></a><span class="lineno">  959</span>&#160;    WriteScalar&lt;voffset_t&gt;(buf_.data(), max_voffset_);</div><div class="line"><a name="l00960"></a><span class="lineno">  960</span>&#160;    <span class="comment">// Write the offsets into the table</span></div><div class="line"><a name="l00961"></a><span class="lineno">  961</span>&#160;    <span class="keywordflow">for</span> (<span class="keyword">auto</span> it = buf_.scratch_end() - num_field_loc * <span class="keyword">sizeof</span>(<a class="code" href="structflatbuffers_1_1_flat_buffer_builder_1_1_field_loc.html">FieldLoc</a>);</div><div class="line"><a name="l00962"></a><span class="lineno">  962</span>&#160;         it &lt; buf_.scratch_end(); it += <span class="keyword">sizeof</span>(<a class="code" href="structflatbuffers_1_1_flat_buffer_builder_1_1_field_loc.html">FieldLoc</a>)) {</div><div class="line"><a name="l00963"></a><span class="lineno">  963</span>&#160;      <span class="keyword">auto</span> field_location = <span class="keyword">reinterpret_cast&lt;</span><a class="code" href="structflatbuffers_1_1_flat_buffer_builder_1_1_field_loc.html">FieldLoc</a> *<span class="keyword">&gt;</span>(it);</div><div class="line"><a name="l00964"></a><span class="lineno">  964</span>&#160;      <span class="keyword">auto</span> pos = <span class="keyword">static_cast&lt;</span>voffset_t<span class="keyword">&gt;</span>(vtableoffsetloc - field_location-&gt;off);</div><div class="line"><a name="l00965"></a><span class="lineno">  965</span>&#160;      <span class="comment">// If this asserts, it means you&#39;ve set a field twice.</span></div><div class="line"><a name="l00966"></a><span class="lineno">  966</span>&#160;      assert(!ReadScalar&lt;voffset_t&gt;(buf_.data() + field_location-&gt;id));</div><div class="line"><a name="l00967"></a><span class="lineno">  967</span>&#160;      WriteScalar&lt;voffset_t&gt;(buf_.data() + field_location-&gt;id, pos);</div><div class="line"><a name="l00968"></a><span class="lineno">  968</span>&#160;    }</div><div class="line"><a name="l00969"></a><span class="lineno">  969</span>&#160;    ClearOffsets();</div><div class="line"><a name="l00970"></a><span class="lineno">  970</span>&#160;    <span class="keyword">auto</span> vt1 = <span class="keyword">reinterpret_cast&lt;</span>voffset_t *<span class="keyword">&gt;</span>(buf_.data());</div><div class="line"><a name="l00971"></a><span class="lineno">  971</span>&#160;    <span class="keyword">auto</span> vt1_size = ReadScalar&lt;voffset_t&gt;(vt1);</div><div class="line"><a name="l00972"></a><span class="lineno">  972</span>&#160;    <span class="keyword">auto</span> vt_use = GetSize();</div><div class="line"><a name="l00973"></a><span class="lineno">  973</span>&#160;    <span class="comment">// See if we already have generated a vtable with this exact same</span></div><div class="line"><a name="l00974"></a><span class="lineno">  974</span>&#160;    <span class="comment">// layout before. If so, make it point to the old one, remove this one.</span></div><div class="line"><a name="l00975"></a><span class="lineno">  975</span>&#160;    <span class="keywordflow">if</span> (dedup_vtables_) {</div><div class="line"><a name="l00976"></a><span class="lineno">  976</span>&#160;      <span class="keywordflow">for</span> (<span class="keyword">auto</span> it = buf_.scratch_data(); it &lt; buf_.scratch_end();</div><div class="line"><a name="l00977"></a><span class="lineno">  977</span>&#160;           it += <span class="keyword">sizeof</span>(uoffset_t)) {</div><div class="line"><a name="l00978"></a><span class="lineno">  978</span>&#160;        <span class="keyword">auto</span> vt_offset_ptr = <span class="keyword">reinterpret_cast&lt;</span>uoffset_t *<span class="keyword">&gt;</span>(it);</div><div class="line"><a name="l00979"></a><span class="lineno">  979</span>&#160;        <span class="keyword">auto</span> vt2 = <span class="keyword">reinterpret_cast&lt;</span>voffset_t *<span class="keyword">&gt;</span>(buf_.data_at(*vt_offset_ptr));</div><div class="line"><a name="l00980"></a><span class="lineno">  980</span>&#160;        <span class="keyword">auto</span> vt2_size = *vt2;</div><div class="line"><a name="l00981"></a><span class="lineno">  981</span>&#160;        <span class="keywordflow">if</span> (vt1_size != vt2_size || memcmp(vt2, vt1, vt1_size)) <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00982"></a><span class="lineno">  982</span>&#160;        vt_use = *vt_offset_ptr;</div><div class="line"><a name="l00983"></a><span class="lineno">  983</span>&#160;        buf_.pop(GetSize() - vtableoffsetloc);</div><div class="line"><a name="l00984"></a><span class="lineno">  984</span>&#160;        <span class="keywordflow">break</span>;</div><div class="line"><a name="l00985"></a><span class="lineno">  985</span>&#160;      }</div><div class="line"><a name="l00986"></a><span class="lineno">  986</span>&#160;    }</div><div class="line"><a name="l00987"></a><span class="lineno">  987</span>&#160;    <span class="comment">// If this is a new vtable, remember it.</span></div><div class="line"><a name="l00988"></a><span class="lineno">  988</span>&#160;    <span class="keywordflow">if</span> (vt_use == GetSize()) { buf_.scratch_push_small(vt_use); }</div><div class="line"><a name="l00989"></a><span class="lineno">  989</span>&#160;    <span class="comment">// Fill the vtable offset we created above.</span></div><div class="line"><a name="l00990"></a><span class="lineno">  990</span>&#160;    <span class="comment">// The offset points from the beginning of the object to where the</span></div><div class="line"><a name="l00991"></a><span class="lineno">  991</span>&#160;    <span class="comment">// vtable is stored.</span></div><div class="line"><a name="l00992"></a><span class="lineno">  992</span>&#160;    <span class="comment">// Offsets default direction is downward in memory for future format</span></div><div class="line"><a name="l00993"></a><span class="lineno">  993</span>&#160;    <span class="comment">// flexibility (storing all vtables at the start of the file).</span></div><div class="line"><a name="l00994"></a><span class="lineno">  994</span>&#160;    WriteScalar(buf_.data_at(vtableoffsetloc),</div><div class="line"><a name="l00995"></a><span class="lineno">  995</span>&#160;                <span class="keyword">static_cast&lt;</span>soffset_t<span class="keyword">&gt;</span>(vt_use) -</div><div class="line"><a name="l00996"></a><span class="lineno">  996</span>&#160;                    static_cast&lt;soffset_t&gt;(vtableoffsetloc));</div><div class="line"><a name="l00997"></a><span class="lineno">  997</span>&#160;</div><div class="line"><a name="l00998"></a><span class="lineno">  998</span>&#160;    nested = <span class="keyword">false</span>;</div><div class="line"><a name="l00999"></a><span class="lineno">  999</span>&#160;    <span class="keywordflow">return</span> vtableoffsetloc;</div><div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>&#160;  }</div><div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>&#160;</div><div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>&#160;  <span class="comment">// DEPRECATED: call the version above instead.</span></div><div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>&#160;  uoffset_t EndTable(uoffset_t start, voffset_t <span class="comment">/*numfields*/</span>) {</div><div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>&#160;    <span class="keywordflow">return</span> EndTable(start);</div><div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>&#160;  }</div><div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>&#160;</div><div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>&#160;  <span class="comment">// This checks a required field has been set in a given table that has</span></div><div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>&#160;  <span class="comment">// just been constructed.</span></div><div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>&#160;  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt; <span class="keywordtype">void</span> Required(<a class="code" href="structflatbuffers_1_1_offset.html">Offset&lt;T&gt;</a> table, voffset_t field) {</div><div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>&#160;    <span class="keyword">auto</span> table_ptr = buf_.data_at(table.o);</div><div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>&#160;    <span class="keyword">auto</span> vtable_ptr = table_ptr - ReadScalar&lt;soffset_t&gt;(table_ptr);</div><div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>&#160;    <span class="keywordtype">bool</span> ok = ReadScalar&lt;voffset_t&gt;(vtable_ptr + field) != 0;</div><div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>&#160;    <span class="comment">// If this fails, the caller will show what field needs to be set.</span></div><div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>&#160;    assert(ok);</div><div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>&#160;    (void)ok;</div><div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>&#160;  }</div><div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>&#160;</div><div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>&#160;  uoffset_t StartStruct(<span class="keywordtype">size_t</span> alignment) {</div><div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>&#160;    Align(alignment);</div><div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>&#160;    <span class="keywordflow">return</span> GetSize();</div><div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>&#160;  }</div><div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>&#160;</div><div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>&#160;  uoffset_t EndStruct() { <span class="keywordflow">return</span> GetSize(); }</div><div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>&#160;</div><div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>&#160;  <span class="keywordtype">void</span> ClearOffsets() {</div><div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>&#160;    buf_.scratch_pop(num_field_loc * <span class="keyword">sizeof</span>(<a class="code" href="structflatbuffers_1_1_flat_buffer_builder_1_1_field_loc.html">FieldLoc</a>));</div><div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>&#160;    num_field_loc = 0;</div><div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>&#160;    max_voffset_ = 0;</div><div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>&#160;  }</div><div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>&#160;</div><div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>&#160;  <span class="comment">// Aligns such that when &quot;len&quot; bytes are written, an object can be written</span></div><div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>&#160;  <span class="comment">// after it with &quot;alignment&quot; without padding.</span></div><div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>&#160;  <span class="keywordtype">void</span> PreAlign(<span class="keywordtype">size_t</span> len, <span class="keywordtype">size_t</span> alignment) {</div><div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>&#160;    TrackMinAlign(alignment);</div><div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>&#160;    buf_.fill(PaddingBytes(GetSize() + len, alignment));</div><div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>&#160;  }</div><div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>&#160;  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt; <span class="keywordtype">void</span> PreAlign(<span class="keywordtype">size_t</span> len) {</div><div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>&#160;    AssertScalarT&lt;T&gt;();</div><div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>&#160;    PreAlign(len, <span class="keyword">sizeof</span>(T));</div><div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>&#160;  }<span class="comment"></span></div><div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>&#160;<span class="comment">  /// @endcond</span></div><div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>&#160;<span class="comment"></span><span class="comment"></span></div><div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>&#160;<span class="comment">  /// @brief Store a string in the buffer, which can contain any binary data.</span></div><div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>&#160;<span class="comment">  /// @param[in] str A const char pointer to the data to be stored as a string.</span></div><div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>&#160;<span class="comment">  /// @param[in] len The number of bytes that should be stored from `str`.</span></div><div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>&#160;<span class="comment">  /// @return Returns the offset in the buffer where the string starts.</span></div><div class="line"><a name="l01047"></a><span class="lineno"><a class="line" href="classflatbuffers_1_1_flat_buffer_builder.html#aec6f9df2a0366b540b24822414d92cbe"> 1047</a></span>&#160;<span class="comment"></span>  <a class="code" href="structflatbuffers_1_1_offset.html">Offset&lt;String&gt;</a> <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#aec6f9df2a0366b540b24822414d92cbe">CreateString</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *str, <span class="keywordtype">size_t</span> len) {</div><div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>&#160;    NotNested();</div><div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>&#160;    PreAlign&lt;uoffset_t&gt;(len + 1);  <span class="comment">// Always 0-terminated.</span></div><div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>&#160;    buf_.fill(1);</div><div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>&#160;    PushBytes(reinterpret_cast&lt;const uint8_t *&gt;(str), len);</div><div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>&#160;    PushElement(static_cast&lt;uoffset_t&gt;(len));</div><div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="structflatbuffers_1_1_offset.html">Offset&lt;String&gt;</a>(GetSize());</div><div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>&#160;  }</div><div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>&#160;<span class="comment"></span></div><div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>&#160;<span class="comment">  /// @brief Store a string in the buffer, which is null-terminated.</span></div><div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>&#160;<span class="comment">  /// @param[in] str A const char pointer to a C-string to add to the buffer.</span></div><div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>&#160;<span class="comment">  /// @return Returns the offset in the buffer where the string starts.</span></div><div class="line"><a name="l01059"></a><span class="lineno"><a class="line" href="classflatbuffers_1_1_flat_buffer_builder.html#aad93d113ac24e86ed04b5236b3f4c0c5"> 1059</a></span>&#160;<span class="comment"></span>  <a class="code" href="structflatbuffers_1_1_offset.html">Offset&lt;String&gt;</a> <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#aad93d113ac24e86ed04b5236b3f4c0c5">CreateString</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *str) {</div><div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>&#160;    <span class="keywordflow">return</span> CreateString(str, strlen(str));</div><div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>&#160;  }</div><div class="line"><a name="l01062"></a><span class="lineno"> 1062</span>&#160;<span class="comment"></span></div><div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>&#160;<span class="comment">  /// @brief Store a string in the buffer, which is null-terminated.</span></div><div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>&#160;<span class="comment">  /// @param[in] str A char pointer to a C-string to add to the buffer.</span></div><div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>&#160;<span class="comment">  /// @return Returns the offset in the buffer where the string starts.</span></div><div class="line"><a name="l01066"></a><span class="lineno"><a class="line" href="classflatbuffers_1_1_flat_buffer_builder.html#ac51db9083ac815eb81420b6d51f42154"> 1066</a></span>&#160;<span class="comment"></span>  <a class="code" href="structflatbuffers_1_1_offset.html">Offset&lt;String&gt;</a> <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#ac51db9083ac815eb81420b6d51f42154">CreateString</a>(<span class="keywordtype">char</span> *str) {</div><div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>&#160;    <span class="keywordflow">return</span> CreateString(str, strlen(str));</div><div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>&#160;  }</div><div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>&#160;<span class="comment"></span></div><div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>&#160;<span class="comment">  /// @brief Store a string in the buffer, which can contain any binary data.</span></div><div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>&#160;<span class="comment">  /// @param[in] str A const reference to a std::string to store in the buffer.</span></div><div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>&#160;<span class="comment">  /// @return Returns the offset in the buffer where the string starts.</span></div><div class="line"><a name="l01073"></a><span class="lineno"><a class="line" href="classflatbuffers_1_1_flat_buffer_builder.html#a8c3af55e64f5cda9aefa38ac5287ef9f"> 1073</a></span>&#160;<span class="comment"></span>  <a class="code" href="structflatbuffers_1_1_offset.html">Offset&lt;String&gt;</a> <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#a8c3af55e64f5cda9aefa38ac5287ef9f">CreateString</a>(<span class="keyword">const</span> std::string &amp;str) {</div><div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>&#160;    <span class="keywordflow">return</span> CreateString(str.c_str(), str.length());</div><div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>&#160;  }</div><div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>&#160;<span class="comment"></span></div><div class="line"><a name="l01077"></a><span class="lineno"> 1077</span>&#160;<span class="comment">  /// @brief Store a string in the buffer, which can contain any binary data.</span></div><div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>&#160;<span class="comment">  /// @param[in] str A const pointer to a `String` struct to add to the buffer.</span></div><div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>&#160;<span class="comment">  /// @return Returns the offset in the buffer where the string starts</span></div><div class="line"><a name="l01080"></a><span class="lineno"><a class="line" href="classflatbuffers_1_1_flat_buffer_builder.html#ac0b6a1c5d949f20ad84367fc0f9e1506"> 1080</a></span>&#160;<span class="comment"></span>  <a class="code" href="structflatbuffers_1_1_offset.html">Offset&lt;String&gt;</a> <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#ac0b6a1c5d949f20ad84367fc0f9e1506">CreateString</a>(<span class="keyword">const</span> <a class="code" href="structflatbuffers_1_1_string.html">String</a> *str) {</div><div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>&#160;    <span class="keywordflow">return</span> str ? CreateString(str-&gt;c_str(), str-&gt;Length()) : 0;</div><div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>&#160;  }</div><div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>&#160;<span class="comment"></span></div><div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>&#160;<span class="comment">  /// @brief Store a string in the buffer, which can contain any binary data.</span></div><div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>&#160;<span class="comment">  /// @param[in] str A const reference to a std::string like type with support</span></div><div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>&#160;<span class="comment">  /// of T::c_str() and T::length() to store in the buffer.</span></div><div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>&#160;<span class="comment">  /// @return Returns the offset in the buffer where the string starts.</span></div><div class="line"><a name="l01088"></a><span class="lineno"><a class="line" href="classflatbuffers_1_1_flat_buffer_builder.html#ab77d800e77fa76bc758a6c399fd37685"> 1088</a></span>&#160;<span class="comment"></span>  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt; <a class="code" href="structflatbuffers_1_1_offset.html">Offset&lt;String&gt;</a> <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#ab77d800e77fa76bc758a6c399fd37685">CreateString</a>(<span class="keyword">const</span> T &amp;str) {</div><div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>&#160;    <span class="keywordflow">return</span> CreateString(str.c_str(), str.length());</div><div class="line"><a name="l01090"></a><span class="lineno"> 1090</span>&#160;  }</div><div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>&#160;<span class="comment"></span></div><div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>&#160;<span class="comment">  /// @brief Store a string in the buffer, which can contain any binary data.</span></div><div class="line"><a name="l01093"></a><span class="lineno"> 1093</span>&#160;<span class="comment">  /// If a string with this exact contents has already been serialized before,</span></div><div class="line"><a name="l01094"></a><span class="lineno"> 1094</span>&#160;<span class="comment">  /// instead simply returns the offset of the existing string.</span></div><div class="line"><a name="l01095"></a><span class="lineno"> 1095</span>&#160;<span class="comment">  /// @param[in] str A const char pointer to the data to be stored as a string.</span></div><div class="line"><a name="l01096"></a><span class="lineno"> 1096</span>&#160;<span class="comment">  /// @param[in] len The number of bytes that should be stored from `str`.</span></div><div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>&#160;<span class="comment">  /// @return Returns the offset in the buffer where the string starts.</span></div><div class="line"><a name="l01098"></a><span class="lineno"><a class="line" href="classflatbuffers_1_1_flat_buffer_builder.html#ab478a645216d2d613fc7b7c29b0ff9d1"> 1098</a></span>&#160;<span class="comment"></span>  <a class="code" href="structflatbuffers_1_1_offset.html">Offset&lt;String&gt;</a> <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#ab478a645216d2d613fc7b7c29b0ff9d1">CreateSharedString</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *str, <span class="keywordtype">size_t</span> len) {</div><div class="line"><a name="l01099"></a><span class="lineno"> 1099</span>&#160;    <span class="keywordflow">if</span> (!string_pool)</div><div class="line"><a name="l01100"></a><span class="lineno"> 1100</span>&#160;      string_pool = <span class="keyword">new</span> StringOffsetMap(<a class="code" href="structflatbuffers_1_1_flat_buffer_builder_1_1_string_offset_compare.html">StringOffsetCompare</a>(buf_));</div><div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>&#160;    <span class="keyword">auto</span> size_before_string = buf_.size();</div><div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>&#160;    <span class="comment">// Must first serialize the string, since the set is all offsets into</span></div><div class="line"><a name="l01103"></a><span class="lineno"> 1103</span>&#160;    <span class="comment">// buffer.</span></div><div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>&#160;    <span class="keyword">auto</span> off = CreateString(str, len);</div><div class="line"><a name="l01105"></a><span class="lineno"> 1105</span>&#160;    <span class="keyword">auto</span> it = string_pool-&gt;find(off);</div><div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>&#160;    <span class="comment">// If it exists we reuse existing serialized data!</span></div><div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>&#160;    <span class="keywordflow">if</span> (it != string_pool-&gt;end()) {</div><div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>&#160;      <span class="comment">// We can remove the string we serialized.</span></div><div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>&#160;      buf_.pop(buf_.size() - size_before_string);</div><div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>&#160;      <span class="keywordflow">return</span> *it;</div><div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>&#160;    }</div><div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>&#160;    <span class="comment">// Record this string for future use.</span></div><div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>&#160;    string_pool-&gt;insert(off);</div><div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>&#160;    <span class="keywordflow">return</span> off;</div><div class="line"><a name="l01115"></a><span class="lineno"> 1115</span>&#160;  }</div><div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>&#160;<span class="comment"></span></div><div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>&#160;<span class="comment">  /// @brief Store a string in the buffer, which null-terminated.</span></div><div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>&#160;<span class="comment">  /// If a string with this exact contents has already been serialized before,</span></div><div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>&#160;<span class="comment">  /// instead simply returns the offset of the existing string.</span></div><div class="line"><a name="l01120"></a><span class="lineno"> 1120</span>&#160;<span class="comment">  /// @param[in] str A const char pointer to a C-string to add to the buffer.</span></div><div class="line"><a name="l01121"></a><span class="lineno"> 1121</span>&#160;<span class="comment">  /// @return Returns the offset in the buffer where the string starts.</span></div><div class="line"><a name="l01122"></a><span class="lineno"><a class="line" href="classflatbuffers_1_1_flat_buffer_builder.html#a3eb68613e5883dc4b8fff6cf7d1223d7"> 1122</a></span>&#160;<span class="comment"></span>  <a class="code" href="structflatbuffers_1_1_offset.html">Offset&lt;String&gt;</a> <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#a3eb68613e5883dc4b8fff6cf7d1223d7">CreateSharedString</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *str) {</div><div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>&#160;    <span class="keywordflow">return</span> CreateSharedString(str, strlen(str));</div><div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>&#160;  }</div><div class="line"><a name="l01125"></a><span class="lineno"> 1125</span>&#160;<span class="comment"></span></div><div class="line"><a name="l01126"></a><span class="lineno"> 1126</span>&#160;<span class="comment">  /// @brief Store a string in the buffer, which can contain any binary data.</span></div><div class="line"><a name="l01127"></a><span class="lineno"> 1127</span>&#160;<span class="comment">  /// If a string with this exact contents has already been serialized before,</span></div><div class="line"><a name="l01128"></a><span class="lineno"> 1128</span>&#160;<span class="comment">  /// instead simply returns the offset of the existing string.</span></div><div class="line"><a name="l01129"></a><span class="lineno"> 1129</span>&#160;<span class="comment">  /// @param[in] str A const reference to a std::string to store in the buffer.</span></div><div class="line"><a name="l01130"></a><span class="lineno"> 1130</span>&#160;<span class="comment">  /// @return Returns the offset in the buffer where the string starts.</span></div><div class="line"><a name="l01131"></a><span class="lineno"><a class="line" href="classflatbuffers_1_1_flat_buffer_builder.html#a10e8ec7d1c8fbdc21b1c7047bbbe38d9"> 1131</a></span>&#160;<span class="comment"></span>  <a class="code" href="structflatbuffers_1_1_offset.html">Offset&lt;String&gt;</a> <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#a10e8ec7d1c8fbdc21b1c7047bbbe38d9">CreateSharedString</a>(<span class="keyword">const</span> std::string &amp;str) {</div><div class="line"><a name="l01132"></a><span class="lineno"> 1132</span>&#160;    <span class="keywordflow">return</span> CreateSharedString(str.c_str(), str.length());</div><div class="line"><a name="l01133"></a><span class="lineno"> 1133</span>&#160;  }</div><div class="line"><a name="l01134"></a><span class="lineno"> 1134</span>&#160;<span class="comment"></span></div><div class="line"><a name="l01135"></a><span class="lineno"> 1135</span>&#160;<span class="comment">  /// @brief Store a string in the buffer, which can contain any binary data.</span></div><div class="line"><a name="l01136"></a><span class="lineno"> 1136</span>&#160;<span class="comment">  /// If a string with this exact contents has already been serialized before,</span></div><div class="line"><a name="l01137"></a><span class="lineno"> 1137</span>&#160;<span class="comment">  /// instead simply returns the offset of the existing string.</span></div><div class="line"><a name="l01138"></a><span class="lineno"> 1138</span>&#160;<span class="comment">  /// @param[in] str A const pointer to a `String` struct to add to the buffer.</span></div><div class="line"><a name="l01139"></a><span class="lineno"> 1139</span>&#160;<span class="comment">  /// @return Returns the offset in the buffer where the string starts</span></div><div class="line"><a name="l01140"></a><span class="lineno"><a class="line" href="classflatbuffers_1_1_flat_buffer_builder.html#a840b769fbb4148f97d3eed266e4690c3"> 1140</a></span>&#160;<span class="comment"></span>  <a class="code" href="structflatbuffers_1_1_offset.html">Offset&lt;String&gt;</a> <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#a840b769fbb4148f97d3eed266e4690c3">CreateSharedString</a>(<span class="keyword">const</span> <a class="code" href="structflatbuffers_1_1_string.html">String</a> *str) {</div><div class="line"><a name="l01141"></a><span class="lineno"> 1141</span>&#160;    <span class="keywordflow">return</span> CreateSharedString(str-&gt;c_str(), str-&gt;Length());</div><div class="line"><a name="l01142"></a><span class="lineno"> 1142</span>&#160;  }</div><div class="line"><a name="l01143"></a><span class="lineno"> 1143</span>&#160;<span class="comment"></span></div><div class="line"><a name="l01144"></a><span class="lineno"> 1144</span>&#160;<span class="comment">  /// @cond FLATBUFFERS_INTERNAL</span></div><div class="line"><a name="l01145"></a><span class="lineno"> 1145</span>&#160;<span class="comment"></span>  uoffset_t EndVector(<span class="keywordtype">size_t</span> len) {</div><div class="line"><a name="l01146"></a><span class="lineno"> 1146</span>&#160;    assert(nested);  <span class="comment">// Hit if no corresponding StartVector.</span></div><div class="line"><a name="l01147"></a><span class="lineno"> 1147</span>&#160;    nested = <span class="keyword">false</span>;</div><div class="line"><a name="l01148"></a><span class="lineno"> 1148</span>&#160;    <span class="keywordflow">return</span> PushElement(static_cast&lt;uoffset_t&gt;(len));</div><div class="line"><a name="l01149"></a><span class="lineno"> 1149</span>&#160;  }</div><div class="line"><a name="l01150"></a><span class="lineno"> 1150</span>&#160;</div><div class="line"><a name="l01151"></a><span class="lineno"> 1151</span>&#160;  <span class="keywordtype">void</span> StartVector(<span class="keywordtype">size_t</span> len, <span class="keywordtype">size_t</span> elemsize) {</div><div class="line"><a name="l01152"></a><span class="lineno"> 1152</span>&#160;    NotNested();</div><div class="line"><a name="l01153"></a><span class="lineno"> 1153</span>&#160;    nested = <span class="keyword">true</span>;</div><div class="line"><a name="l01154"></a><span class="lineno"> 1154</span>&#160;    PreAlign&lt;uoffset_t&gt;(len * elemsize);</div><div class="line"><a name="l01155"></a><span class="lineno"> 1155</span>&#160;    PreAlign(len * elemsize, elemsize);  <span class="comment">// Just in case elemsize &gt; uoffset_t.</span></div><div class="line"><a name="l01156"></a><span class="lineno"> 1156</span>&#160;  }</div><div class="line"><a name="l01157"></a><span class="lineno"> 1157</span>&#160;</div><div class="line"><a name="l01158"></a><span class="lineno"> 1158</span>&#160;  <span class="comment">// Call this right before StartVector/CreateVector if you want to force the</span></div><div class="line"><a name="l01159"></a><span class="lineno"> 1159</span>&#160;  <span class="comment">// alignment to be something different than what the element size would</span></div><div class="line"><a name="l01160"></a><span class="lineno"> 1160</span>&#160;  <span class="comment">// normally dictate.</span></div><div class="line"><a name="l01161"></a><span class="lineno"> 1161</span>&#160;  <span class="comment">// This is useful when storing a nested_flatbuffer in a vector of bytes,</span></div><div class="line"><a name="l01162"></a><span class="lineno"> 1162</span>&#160;  <span class="comment">// or when storing SIMD floats, etc.</span></div><div class="line"><a name="l01163"></a><span class="lineno"> 1163</span>&#160;  <span class="keywordtype">void</span> ForceVectorAlignment(<span class="keywordtype">size_t</span> len, <span class="keywordtype">size_t</span> elemsize, <span class="keywordtype">size_t</span> alignment) {</div><div class="line"><a name="l01164"></a><span class="lineno"> 1164</span>&#160;    PreAlign(len * elemsize, alignment);</div><div class="line"><a name="l01165"></a><span class="lineno"> 1165</span>&#160;  }</div><div class="line"><a name="l01166"></a><span class="lineno"> 1166</span>&#160;<span class="comment"></span></div><div class="line"><a name="l01167"></a><span class="lineno"> 1167</span>&#160;<span class="comment">  /// @endcond</span></div><div class="line"><a name="l01168"></a><span class="lineno"> 1168</span>&#160;<span class="comment"></span><span class="comment"></span></div><div class="line"><a name="l01169"></a><span class="lineno"> 1169</span>&#160;<span class="comment">  /// @brief Serialize an array into a FlatBuffer `vector`.</span></div><div class="line"><a name="l01170"></a><span class="lineno"> 1170</span>&#160;<span class="comment">  /// @tparam T The data type of the array elements.</span></div><div class="line"><a name="l01171"></a><span class="lineno"> 1171</span>&#160;<span class="comment">  /// @param[in] v A pointer to the array of type `T` to serialize into the</span></div><div class="line"><a name="l01172"></a><span class="lineno"> 1172</span>&#160;<span class="comment">  /// buffer as a `vector`.</span></div><div class="line"><a name="l01173"></a><span class="lineno"> 1173</span>&#160;<span class="comment">  /// @param[in] len The number of elements to serialize.</span></div><div class="line"><a name="l01174"></a><span class="lineno"> 1174</span>&#160;<span class="comment">  /// @return Returns a typed `Offset` into the serialized data indicating</span></div><div class="line"><a name="l01175"></a><span class="lineno"> 1175</span>&#160;<span class="comment">  /// where the vector is stored.</span></div><div class="line"><a name="l01176"></a><span class="lineno"><a class="line" href="classflatbuffers_1_1_flat_buffer_builder.html#a2cca5c89246a53e80e6ad9487f4c36f3"> 1176</a></span>&#160;<span class="comment"></span>  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt; <a class="code" href="structflatbuffers_1_1_offset.html">Offset&lt;Vector&lt;T&gt;</a>&gt; <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#a2cca5c89246a53e80e6ad9487f4c36f3">CreateVector</a>(<span class="keyword">const</span> T *v, <span class="keywordtype">size_t</span> len) {</div><div class="line"><a name="l01177"></a><span class="lineno"> 1177</span>&#160;    <span class="comment">// If this assert hits, you&#39;re specifying a template argument that is</span></div><div class="line"><a name="l01178"></a><span class="lineno"> 1178</span>&#160;    <span class="comment">// causing the wrong overload to be selected, remove it.</span></div><div class="line"><a name="l01179"></a><span class="lineno"> 1179</span>&#160;    AssertScalarT&lt;T&gt;();</div><div class="line"><a name="l01180"></a><span class="lineno"> 1180</span>&#160;    StartVector(len, <span class="keyword">sizeof</span>(T));</div><div class="line"><a name="l01181"></a><span class="lineno"> 1181</span>&#160;    <span class="comment">// clang-format off</span></div><div class="line"><a name="l01182"></a><span class="lineno"> 1182</span>&#160;<span class="preprocessor">    #if FLATBUFFERS_LITTLEENDIAN</span></div><div class="line"><a name="l01183"></a><span class="lineno"> 1183</span>&#160;      PushBytes(reinterpret_cast&lt;const uint8_t *&gt;(v), len * <span class="keyword">sizeof</span>(T));</div><div class="line"><a name="l01184"></a><span class="lineno"> 1184</span>&#160;<span class="preprocessor">    #else</span></div><div class="line"><a name="l01185"></a><span class="lineno"> 1185</span>&#160;      <span class="keywordflow">if</span> (<span class="keyword">sizeof</span>(T) == 1) {</div><div class="line"><a name="l01186"></a><span class="lineno"> 1186</span>&#160;        PushBytes(reinterpret_cast&lt;const uint8_t *&gt;(v), len);</div><div class="line"><a name="l01187"></a><span class="lineno"> 1187</span>&#160;      } <span class="keywordflow">else</span> {</div><div class="line"><a name="l01188"></a><span class="lineno"> 1188</span>&#160;        <span class="keywordflow">for</span> (<span class="keyword">auto</span> i = len; i &gt; 0; ) {</div><div class="line"><a name="l01189"></a><span class="lineno"> 1189</span>&#160;          PushElement(v[--i]);</div><div class="line"><a name="l01190"></a><span class="lineno"> 1190</span>&#160;        }</div><div class="line"><a name="l01191"></a><span class="lineno"> 1191</span>&#160;      }</div><div class="line"><a name="l01192"></a><span class="lineno"> 1192</span>&#160;<span class="preprocessor">    #endif</span></div><div class="line"><a name="l01193"></a><span class="lineno"> 1193</span>&#160;    <span class="comment">// clang-format on</span></div><div class="line"><a name="l01194"></a><span class="lineno"> 1194</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="structflatbuffers_1_1_offset.html">Offset&lt;Vector&lt;T&gt;</a>&gt;(EndVector(len));</div><div class="line"><a name="l01195"></a><span class="lineno"> 1195</span>&#160;  }</div><div class="line"><a name="l01196"></a><span class="lineno"> 1196</span>&#160;</div><div class="line"><a name="l01197"></a><span class="lineno"> 1197</span>&#160;  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div><div class="line"><a name="l01198"></a><span class="lineno"> 1198</span>&#160;  <a class="code" href="structflatbuffers_1_1_offset.html">Offset&lt;Vector&lt;Offset&lt;T&gt;</a>&gt;&gt; CreateVector(<span class="keyword">const</span> <a class="code" href="structflatbuffers_1_1_offset.html">Offset&lt;T&gt;</a> *v, <span class="keywordtype">size_t</span> len) {</div><div class="line"><a name="l01199"></a><span class="lineno"> 1199</span>&#160;    StartVector(len, <span class="keyword">sizeof</span>(<a class="code" href="structflatbuffers_1_1_offset.html">Offset&lt;T&gt;</a>));</div><div class="line"><a name="l01200"></a><span class="lineno"> 1200</span>&#160;    <span class="keywordflow">for</span> (<span class="keyword">auto</span> i = len; i &gt; 0;) { PushElement(v[--i]); }</div><div class="line"><a name="l01201"></a><span class="lineno"> 1201</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="structflatbuffers_1_1_offset.html">Offset&lt;Vector&lt;Offset&lt;T&gt;</a>&gt;&gt;(EndVector(len));</div><div class="line"><a name="l01202"></a><span class="lineno"> 1202</span>&#160;  }</div><div class="line"><a name="l01203"></a><span class="lineno"> 1203</span>&#160;<span class="comment"></span></div><div class="line"><a name="l01204"></a><span class="lineno"> 1204</span>&#160;<span class="comment">  /// @brief Serialize a `std::vector` into a FlatBuffer `vector`.</span></div><div class="line"><a name="l01205"></a><span class="lineno"> 1205</span>&#160;<span class="comment">  /// @tparam T The data type of the `std::vector` elements.</span></div><div class="line"><a name="l01206"></a><span class="lineno"> 1206</span>&#160;<span class="comment">  /// @param v A const reference to the `std::vector` to serialize into the</span></div><div class="line"><a name="l01207"></a><span class="lineno"> 1207</span>&#160;<span class="comment">  /// buffer as a `vector`.</span></div><div class="line"><a name="l01208"></a><span class="lineno"> 1208</span>&#160;<span class="comment">  /// @return Returns a typed `Offset` into the serialized data indicating</span></div><div class="line"><a name="l01209"></a><span class="lineno"> 1209</span>&#160;<span class="comment">  /// where the vector is stored.</span></div><div class="line"><a name="l01210"></a><span class="lineno"><a class="line" href="classflatbuffers_1_1_flat_buffer_builder.html#af715dd24dd37cb0151dc7a980ad0f207"> 1210</a></span>&#160;<span class="comment"></span>  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt; <a class="code" href="structflatbuffers_1_1_offset.html">Offset&lt;Vector&lt;T&gt;</a>&gt; <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#af715dd24dd37cb0151dc7a980ad0f207">CreateVector</a>(<span class="keyword">const</span> std::vector&lt;T&gt; &amp;v) {</div><div class="line"><a name="l01211"></a><span class="lineno"> 1211</span>&#160;    <span class="keywordflow">return</span> CreateVector(data(v), v.size());</div><div class="line"><a name="l01212"></a><span class="lineno"> 1212</span>&#160;  }</div><div class="line"><a name="l01213"></a><span class="lineno"> 1213</span>&#160;</div><div class="line"><a name="l01214"></a><span class="lineno"> 1214</span>&#160;  <span class="comment">// vector&lt;bool&gt; may be implemented using a bit-set, so we can&#39;t access it as</span></div><div class="line"><a name="l01215"></a><span class="lineno"> 1215</span>&#160;  <span class="comment">// an array. Instead, read elements manually.</span></div><div class="line"><a name="l01216"></a><span class="lineno"> 1216</span>&#160;  <span class="comment">// Background: https://isocpp.org/blog/2012/11/on-vectorbool</span></div><div class="line"><a name="l01217"></a><span class="lineno"> 1217</span>&#160;  <a class="code" href="structflatbuffers_1_1_offset.html">Offset&lt;Vector&lt;uint8_t&gt;</a>&gt; CreateVector(<span class="keyword">const</span> std::vector&lt;bool&gt; &amp;v) {</div><div class="line"><a name="l01218"></a><span class="lineno"> 1218</span>&#160;    StartVector(v.size(), <span class="keyword">sizeof</span>(uint8_t));</div><div class="line"><a name="l01219"></a><span class="lineno"> 1219</span>&#160;    <span class="keywordflow">for</span> (<span class="keyword">auto</span> i = v.size(); i &gt; 0;) {</div><div class="line"><a name="l01220"></a><span class="lineno"> 1220</span>&#160;      PushElement(static_cast&lt;uint8_t&gt;(v[--i]));</div><div class="line"><a name="l01221"></a><span class="lineno"> 1221</span>&#160;    }</div><div class="line"><a name="l01222"></a><span class="lineno"> 1222</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="structflatbuffers_1_1_offset.html">Offset&lt;Vector&lt;uint8_t&gt;</a>&gt;(EndVector(v.size()));</div><div class="line"><a name="l01223"></a><span class="lineno"> 1223</span>&#160;  }</div><div class="line"><a name="l01224"></a><span class="lineno"> 1224</span>&#160;</div><div class="line"><a name="l01225"></a><span class="lineno"> 1225</span>&#160;  <span class="comment">// clang-format off</span></div><div class="line"><a name="l01226"></a><span class="lineno"> 1226</span>&#160;<span class="preprocessor">  #ifndef FLATBUFFERS_CPP98_STL</span></div><div class="line"><a name="l01227"></a><span class="lineno"> 1227</span>&#160;<span class="comment">  /// @brief Serialize values returned by a function into a FlatBuffer `vector`.</span></div><div class="line"><a name="l01228"></a><span class="lineno"> 1228</span>&#160;<span class="comment"></span><span class="comment">  /// This is a convenience function that takes care of iteration for you.</span></div><div class="line"><a name="l01229"></a><span class="lineno"> 1229</span>&#160;<span class="comment"></span><span class="comment">  /// @tparam T The data type of the `std::vector` elements.</span></div><div class="line"><a name="l01230"></a><span class="lineno"> 1230</span>&#160;<span class="comment"></span><span class="comment">  /// @param f A function that takes the current iteration 0..vector_size-1 and</span></div><div class="line"><a name="l01231"></a><span class="lineno"> 1231</span>&#160;<span class="comment"></span><span class="comment">  /// returns any type that you can construct a FlatBuffers vector out of.</span></div><div class="line"><a name="l01232"></a><span class="lineno"> 1232</span>&#160;<span class="comment"></span><span class="comment">  /// @return Returns a typed `Offset` into the serialized data indicating</span></div><div class="line"><a name="l01233"></a><span class="lineno"> 1233</span>&#160;<span class="comment"></span><span class="comment">  /// where the vector is stored.</span></div><div class="line"><a name="l01234"></a><span class="lineno"><a class="line" href="classflatbuffers_1_1_flat_buffer_builder.html#a1080c9e370e2d9d9d872dadd1131436b"> 1234</a></span>&#160;<span class="comment"></span>  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt; <a class="code" href="structflatbuffers_1_1_offset.html">Offset&lt;Vector&lt;T&gt;</a>&gt; <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#a1080c9e370e2d9d9d872dadd1131436b">CreateVector</a>(<span class="keywordtype">size_t</span> vector_size,</div><div class="line"><a name="l01235"></a><span class="lineno"> 1235</span>&#160;      <span class="keyword">const</span> std::function&lt;T (<span class="keywordtype">size_t</span> i)&gt; &amp;f) {</div><div class="line"><a name="l01236"></a><span class="lineno"> 1236</span>&#160;    std::vector&lt;T&gt; elems(vector_size);</div><div class="line"><a name="l01237"></a><span class="lineno"> 1237</span>&#160;    <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; vector_size; i++) elems[i] = f(i);</div><div class="line"><a name="l01238"></a><span class="lineno"> 1238</span>&#160;    <span class="keywordflow">return</span> CreateVector(elems);</div><div class="line"><a name="l01239"></a><span class="lineno"> 1239</span>&#160;  }</div><div class="line"><a name="l01240"></a><span class="lineno"> 1240</span>&#160;<span class="preprocessor">  #endif</span></div><div class="line"><a name="l01241"></a><span class="lineno"> 1241</span>&#160;  <span class="comment">// clang-format on</span></div><div class="line"><a name="l01242"></a><span class="lineno"> 1242</span>&#160;<span class="comment"></span></div><div class="line"><a name="l01243"></a><span class="lineno"> 1243</span>&#160;<span class="comment">  /// @brief Serialize values returned by a function into a FlatBuffer `vector`.</span></div><div class="line"><a name="l01244"></a><span class="lineno"> 1244</span>&#160;<span class="comment">  /// This is a convenience function that takes care of iteration for you.</span></div><div class="line"><a name="l01245"></a><span class="lineno"> 1245</span>&#160;<span class="comment">  /// @tparam T The data type of the `std::vector` elements.</span></div><div class="line"><a name="l01246"></a><span class="lineno"> 1246</span>&#160;<span class="comment">  /// @param f A function that takes the current iteration 0..vector_size-1,</span></div><div class="line"><a name="l01247"></a><span class="lineno"> 1247</span>&#160;<span class="comment">  /// and the state parameter returning any type that you can construct a</span></div><div class="line"><a name="l01248"></a><span class="lineno"> 1248</span>&#160;<span class="comment">  /// FlatBuffers vector out of.</span></div><div class="line"><a name="l01249"></a><span class="lineno"> 1249</span>&#160;<span class="comment">  /// @param state State passed to f.</span></div><div class="line"><a name="l01250"></a><span class="lineno"> 1250</span>&#160;<span class="comment">  /// @return Returns a typed `Offset` into the serialized data indicating</span></div><div class="line"><a name="l01251"></a><span class="lineno"> 1251</span>&#160;<span class="comment">  /// where the vector is stored.</span></div><div class="line"><a name="l01252"></a><span class="lineno"> 1252</span>&#160;<span class="comment"></span>  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> F, <span class="keyword">typename</span> S&gt;</div><div class="line"><a name="l01253"></a><span class="lineno"><a class="line" href="classflatbuffers_1_1_flat_buffer_builder.html#a53504fc2cab681a7980b03260f8b2f7a"> 1253</a></span>&#160;  <a class="code" href="structflatbuffers_1_1_offset.html">Offset&lt;Vector&lt;T&gt;</a>&gt; <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#a53504fc2cab681a7980b03260f8b2f7a">CreateVector</a>(<span class="keywordtype">size_t</span> vector_size, F f, S *state) {</div><div class="line"><a name="l01254"></a><span class="lineno"> 1254</span>&#160;    std::vector&lt;T&gt; elems(vector_size);</div><div class="line"><a name="l01255"></a><span class="lineno"> 1255</span>&#160;    <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; vector_size; i++) elems[i] = f(i, state);</div><div class="line"><a name="l01256"></a><span class="lineno"> 1256</span>&#160;    <span class="keywordflow">return</span> CreateVector(elems);</div><div class="line"><a name="l01257"></a><span class="lineno"> 1257</span>&#160;  }</div><div class="line"><a name="l01258"></a><span class="lineno"> 1258</span>&#160;<span class="comment"></span></div><div class="line"><a name="l01259"></a><span class="lineno"> 1259</span>&#160;<span class="comment">  /// @brief Serialize a `std::vector&lt;std::string&gt;` into a FlatBuffer `vector`.</span></div><div class="line"><a name="l01260"></a><span class="lineno"> 1260</span>&#160;<span class="comment">  /// This is a convenience function for a common case.</span></div><div class="line"><a name="l01261"></a><span class="lineno"> 1261</span>&#160;<span class="comment">  /// @param v A const reference to the `std::vector` to serialize into the</span></div><div class="line"><a name="l01262"></a><span class="lineno"> 1262</span>&#160;<span class="comment">  /// buffer as a `vector`.</span></div><div class="line"><a name="l01263"></a><span class="lineno"> 1263</span>&#160;<span class="comment">  /// @return Returns a typed `Offset` into the serialized data indicating</span></div><div class="line"><a name="l01264"></a><span class="lineno"> 1264</span>&#160;<span class="comment">  /// where the vector is stored.</span></div><div class="line"><a name="l01265"></a><span class="lineno"><a class="line" href="classflatbuffers_1_1_flat_buffer_builder.html#a592110519a6c8db1926f1365bf2a58e6"> 1265</a></span>&#160;<span class="comment"></span>  <a class="code" href="structflatbuffers_1_1_offset.html">Offset&lt;Vector&lt;Offset&lt;String&gt;</a>&gt;&gt; <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#a592110519a6c8db1926f1365bf2a58e6">CreateVectorOfStrings</a>(</div><div class="line"><a name="l01266"></a><span class="lineno"> 1266</span>&#160;      <span class="keyword">const</span> std::vector&lt;std::string&gt; &amp;v) {</div><div class="line"><a name="l01267"></a><span class="lineno"> 1267</span>&#160;    std::vector&lt;Offset&lt;String&gt;&gt; offsets(v.size());</div><div class="line"><a name="l01268"></a><span class="lineno"> 1268</span>&#160;    <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; v.size(); i++) offsets[i] = CreateString(v[i]);</div><div class="line"><a name="l01269"></a><span class="lineno"> 1269</span>&#160;    <span class="keywordflow">return</span> CreateVector(offsets);</div><div class="line"><a name="l01270"></a><span class="lineno"> 1270</span>&#160;  }</div><div class="line"><a name="l01271"></a><span class="lineno"> 1271</span>&#160;<span class="comment"></span></div><div class="line"><a name="l01272"></a><span class="lineno"> 1272</span>&#160;<span class="comment">  /// @brief Serialize an array of structs into a FlatBuffer `vector`.</span></div><div class="line"><a name="l01273"></a><span class="lineno"> 1273</span>&#160;<span class="comment">  /// @tparam T The data type of the struct array elements.</span></div><div class="line"><a name="l01274"></a><span class="lineno"> 1274</span>&#160;<span class="comment">  /// @param[in] v A pointer to the array of type `T` to serialize into the</span></div><div class="line"><a name="l01275"></a><span class="lineno"> 1275</span>&#160;<span class="comment">  /// buffer as a `vector`.</span></div><div class="line"><a name="l01276"></a><span class="lineno"> 1276</span>&#160;<span class="comment">  /// @param[in] len The number of elements to serialize.</span></div><div class="line"><a name="l01277"></a><span class="lineno"> 1277</span>&#160;<span class="comment">  /// @return Returns a typed `Offset` into the serialized data indicating</span></div><div class="line"><a name="l01278"></a><span class="lineno"> 1278</span>&#160;<span class="comment">  /// where the vector is stored.</span></div><div class="line"><a name="l01279"></a><span class="lineno"> 1279</span>&#160;<span class="comment"></span>  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div><div class="line"><a name="l01280"></a><span class="lineno"><a class="line" href="classflatbuffers_1_1_flat_buffer_builder.html#afede51fd9c32d146cbb1832f57c5e1b7"> 1280</a></span>&#160;  <a class="code" href="structflatbuffers_1_1_offset.html">Offset&lt;Vector&lt;const T *&gt;</a>&gt; <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#afede51fd9c32d146cbb1832f57c5e1b7">CreateVectorOfStructs</a>(<span class="keyword">const</span> T *v, <span class="keywordtype">size_t</span> len) {</div><div class="line"><a name="l01281"></a><span class="lineno"> 1281</span>&#160;    StartVector(len * <span class="keyword">sizeof</span>(T) / AlignOf&lt;T&gt;(), AlignOf&lt;T&gt;());</div><div class="line"><a name="l01282"></a><span class="lineno"> 1282</span>&#160;    PushBytes(reinterpret_cast&lt;const uint8_t *&gt;(v), <span class="keyword">sizeof</span>(T) * len);</div><div class="line"><a name="l01283"></a><span class="lineno"> 1283</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="structflatbuffers_1_1_offset.html">Offset&lt;Vector&lt;const T *&gt;</a>&gt;(EndVector(len));</div><div class="line"><a name="l01284"></a><span class="lineno"> 1284</span>&#160;  }</div><div class="line"><a name="l01285"></a><span class="lineno"> 1285</span>&#160;<span class="comment"></span></div><div class="line"><a name="l01286"></a><span class="lineno"> 1286</span>&#160;<span class="comment">  /// @brief Serialize an array of native structs into a FlatBuffer `vector`.</span></div><div class="line"><a name="l01287"></a><span class="lineno"> 1287</span>&#160;<span class="comment">  /// @tparam T The data type of the struct array elements.</span></div><div class="line"><a name="l01288"></a><span class="lineno"> 1288</span>&#160;<span class="comment">  /// @tparam S The data type of the native struct array elements.</span></div><div class="line"><a name="l01289"></a><span class="lineno"> 1289</span>&#160;<span class="comment">  /// @param[in] v A pointer to the array of type `S` to serialize into the</span></div><div class="line"><a name="l01290"></a><span class="lineno"> 1290</span>&#160;<span class="comment">  /// buffer as a `vector`.</span></div><div class="line"><a name="l01291"></a><span class="lineno"> 1291</span>&#160;<span class="comment">  /// @param[in] len The number of elements to serialize.</span></div><div class="line"><a name="l01292"></a><span class="lineno"> 1292</span>&#160;<span class="comment">  /// @return Returns a typed `Offset` into the serialized data indicating</span></div><div class="line"><a name="l01293"></a><span class="lineno"> 1293</span>&#160;<span class="comment">  /// where the vector is stored.</span></div><div class="line"><a name="l01294"></a><span class="lineno"> 1294</span>&#160;<span class="comment"></span>  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> S&gt;</div><div class="line"><a name="l01295"></a><span class="lineno"><a class="line" href="classflatbuffers_1_1_flat_buffer_builder.html#a3d57074082aaab8cdeb8474ff9df0b53"> 1295</a></span>&#160;  <a class="code" href="structflatbuffers_1_1_offset.html">Offset&lt;Vector&lt;const T *&gt;</a>&gt; <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#a3d57074082aaab8cdeb8474ff9df0b53">CreateVectorOfNativeStructs</a>(<span class="keyword">const</span> S *v,</div><div class="line"><a name="l01296"></a><span class="lineno"> 1296</span>&#160;                                                        <span class="keywordtype">size_t</span> len) {</div><div class="line"><a name="l01297"></a><span class="lineno"> 1297</span>&#160;    <span class="keyword">extern</span> T Pack(<span class="keyword">const</span> S &amp;);</div><div class="line"><a name="l01298"></a><span class="lineno"> 1298</span>&#160;    <span class="keyword">typedef</span> T (*Pack_t)(<span class="keyword">const</span> S &amp;);</div><div class="line"><a name="l01299"></a><span class="lineno"> 1299</span>&#160;    std::vector&lt;T&gt; vv(len);</div><div class="line"><a name="l01300"></a><span class="lineno"> 1300</span>&#160;    std::transform(v, v + len, vv.begin(), *(Pack_t)&amp;Pack);</div><div class="line"><a name="l01301"></a><span class="lineno"> 1301</span>&#160;    <span class="keywordflow">return</span> CreateVectorOfStructs&lt;T&gt;(vv.data(), vv.size());</div><div class="line"><a name="l01302"></a><span class="lineno"> 1302</span>&#160;  }</div><div class="line"><a name="l01303"></a><span class="lineno"> 1303</span>&#160;</div><div class="line"><a name="l01304"></a><span class="lineno"> 1304</span>&#160;  <span class="comment">// clang-format off</span></div><div class="line"><a name="l01305"></a><span class="lineno"> 1305</span>&#160;<span class="preprocessor">  #ifndef FLATBUFFERS_CPP98_STL</span></div><div class="line"><a name="l01306"></a><span class="lineno"> 1306</span>&#160;<span class="comment">  /// @brief Serialize an array of structs into a FlatBuffer `vector`.</span></div><div class="line"><a name="l01307"></a><span class="lineno"> 1307</span>&#160;<span class="comment"></span><span class="comment">  /// @tparam T The data type of the struct array elements.</span></div><div class="line"><a name="l01308"></a><span class="lineno"> 1308</span>&#160;<span class="comment"></span><span class="comment">  /// @param[in] f A function that takes the current iteration 0..vector_size-1</span></div><div class="line"><a name="l01309"></a><span class="lineno"> 1309</span>&#160;<span class="comment"></span><span class="comment">  /// and a pointer to the struct that must be filled.</span></div><div class="line"><a name="l01310"></a><span class="lineno"> 1310</span>&#160;<span class="comment"></span><span class="comment">  /// @return Returns a typed `Offset` into the serialized data indicating</span></div><div class="line"><a name="l01311"></a><span class="lineno"> 1311</span>&#160;<span class="comment"></span><span class="comment">  /// where the vector is stored.</span></div><div class="line"><a name="l01312"></a><span class="lineno"> 1312</span>&#160;<span class="comment"></span><span class="comment">  /// This is mostly useful when flatbuffers are generated with mutation</span></div><div class="line"><a name="l01313"></a><span class="lineno"> 1313</span>&#160;<span class="comment"></span><span class="comment">  /// accessors.</span></div><div class="line"><a name="l01314"></a><span class="lineno"><a class="line" href="classflatbuffers_1_1_flat_buffer_builder.html#a6e90ada59d9553636f72ce8e4a892f72"> 1314</a></span>&#160;<span class="comment"></span>  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt; <a class="code" href="structflatbuffers_1_1_offset.html">Offset&lt;Vector&lt;const T *&gt;</a>&gt; <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#a6e90ada59d9553636f72ce8e4a892f72">CreateVectorOfStructs</a>(</div><div class="line"><a name="l01315"></a><span class="lineno"> 1315</span>&#160;      <span class="keywordtype">size_t</span> vector_size, <span class="keyword">const</span> std::function&lt;<span class="keywordtype">void</span>(<span class="keywordtype">size_t</span> i, T *)&gt; &amp;filler) {</div><div class="line"><a name="l01316"></a><span class="lineno"> 1316</span>&#160;    T* structs = StartVectorOfStructs&lt;T&gt;(vector_size);</div><div class="line"><a name="l01317"></a><span class="lineno"> 1317</span>&#160;    <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; vector_size; i++) {</div><div class="line"><a name="l01318"></a><span class="lineno"> 1318</span>&#160;      filler(i, structs);</div><div class="line"><a name="l01319"></a><span class="lineno"> 1319</span>&#160;      structs++;</div><div class="line"><a name="l01320"></a><span class="lineno"> 1320</span>&#160;    }</div><div class="line"><a name="l01321"></a><span class="lineno"> 1321</span>&#160;    <span class="keywordflow">return</span> EndVectorOfStructs&lt;T&gt;(vector_size);</div><div class="line"><a name="l01322"></a><span class="lineno"> 1322</span>&#160;  }</div><div class="line"><a name="l01323"></a><span class="lineno"> 1323</span>&#160;<span class="preprocessor">  #endif</span></div><div class="line"><a name="l01324"></a><span class="lineno"> 1324</span>&#160;  <span class="comment">// clang-format on</span></div><div class="line"><a name="l01325"></a><span class="lineno"> 1325</span>&#160;<span class="comment"></span></div><div class="line"><a name="l01326"></a><span class="lineno"> 1326</span>&#160;<span class="comment">  /// @brief Serialize an array of structs into a FlatBuffer `vector`.</span></div><div class="line"><a name="l01327"></a><span class="lineno"> 1327</span>&#160;<span class="comment">  /// @tparam T The data type of the struct array elements.</span></div><div class="line"><a name="l01328"></a><span class="lineno"> 1328</span>&#160;<span class="comment">  /// @param[in] f A function that takes the current iteration 0..vector_size-1,</span></div><div class="line"><a name="l01329"></a><span class="lineno"> 1329</span>&#160;<span class="comment">  /// a pointer to the struct that must be filled and the state argument.</span></div><div class="line"><a name="l01330"></a><span class="lineno"> 1330</span>&#160;<span class="comment">  /// @param[in] state Arbitrary state to pass to f.</span></div><div class="line"><a name="l01331"></a><span class="lineno"> 1331</span>&#160;<span class="comment">  /// @return Returns a typed `Offset` into the serialized data indicating</span></div><div class="line"><a name="l01332"></a><span class="lineno"> 1332</span>&#160;<span class="comment">  /// where the vector is stored.</span></div><div class="line"><a name="l01333"></a><span class="lineno"> 1333</span>&#160;<span class="comment">  /// This is mostly useful when flatbuffers are generated with mutation</span></div><div class="line"><a name="l01334"></a><span class="lineno"> 1334</span>&#160;<span class="comment">  /// accessors.</span></div><div class="line"><a name="l01335"></a><span class="lineno"> 1335</span>&#160;<span class="comment"></span>  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> F, <span class="keyword">typename</span> S&gt;</div><div class="line"><a name="l01336"></a><span class="lineno"><a class="line" href="classflatbuffers_1_1_flat_buffer_builder.html#a9cc09fa59ff9732e972877cfe911c8a5"> 1336</a></span>&#160;  <a class="code" href="structflatbuffers_1_1_offset.html">Offset&lt;Vector&lt;const T *&gt;</a>&gt; <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#a9cc09fa59ff9732e972877cfe911c8a5">CreateVectorOfStructs</a>(<span class="keywordtype">size_t</span> vector_size, F f,</div><div class="line"><a name="l01337"></a><span class="lineno"> 1337</span>&#160;                                                  S *state) {</div><div class="line"><a name="l01338"></a><span class="lineno"> 1338</span>&#160;    T *structs = StartVectorOfStructs&lt;T&gt;(vector_size);</div><div class="line"><a name="l01339"></a><span class="lineno"> 1339</span>&#160;    <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; vector_size; i++) {</div><div class="line"><a name="l01340"></a><span class="lineno"> 1340</span>&#160;      f(i, structs, state);</div><div class="line"><a name="l01341"></a><span class="lineno"> 1341</span>&#160;      structs++;</div><div class="line"><a name="l01342"></a><span class="lineno"> 1342</span>&#160;    }</div><div class="line"><a name="l01343"></a><span class="lineno"> 1343</span>&#160;    <span class="keywordflow">return</span> EndVectorOfStructs&lt;T&gt;(vector_size);</div><div class="line"><a name="l01344"></a><span class="lineno"> 1344</span>&#160;  }</div><div class="line"><a name="l01345"></a><span class="lineno"> 1345</span>&#160;<span class="comment"></span></div><div class="line"><a name="l01346"></a><span class="lineno"> 1346</span>&#160;<span class="comment">  /// @brief Serialize a `std::vector` of structs into a FlatBuffer `vector`.</span></div><div class="line"><a name="l01347"></a><span class="lineno"> 1347</span>&#160;<span class="comment">  /// @tparam T The data type of the `std::vector` struct elements.</span></div><div class="line"><a name="l01348"></a><span class="lineno"> 1348</span>&#160;<span class="comment">  /// @param[in]] v A const reference to the `std::vector` of structs to</span></div><div class="line"><a name="l01349"></a><span class="lineno"> 1349</span>&#160;<span class="comment">  /// serialize into the buffer as a `vector`.</span></div><div class="line"><a name="l01350"></a><span class="lineno"> 1350</span>&#160;<span class="comment">  /// @return Returns a typed `Offset` into the serialized data indicating</span></div><div class="line"><a name="l01351"></a><span class="lineno"> 1351</span>&#160;<span class="comment">  /// where the vector is stored.</span></div><div class="line"><a name="l01352"></a><span class="lineno"> 1352</span>&#160;<span class="comment"></span>  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> Alloc&gt;</div><div class="line"><a name="l01353"></a><span class="lineno"><a class="line" href="classflatbuffers_1_1_flat_buffer_builder.html#a110c2a3298aebef1a9dfa3c44ee84f42"> 1353</a></span>&#160;  <a class="code" href="structflatbuffers_1_1_offset.html">Offset&lt;Vector&lt;const T *&gt;</a>&gt; <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#a110c2a3298aebef1a9dfa3c44ee84f42">CreateVectorOfStructs</a>(</div><div class="line"><a name="l01354"></a><span class="lineno"> 1354</span>&#160;      <span class="keyword">const</span> std::vector&lt;T, Alloc&gt; &amp;v) {</div><div class="line"><a name="l01355"></a><span class="lineno"> 1355</span>&#160;    <span class="keywordflow">return</span> CreateVectorOfStructs(data(v), v.size());</div><div class="line"><a name="l01356"></a><span class="lineno"> 1356</span>&#160;  }</div><div class="line"><a name="l01357"></a><span class="lineno"> 1357</span>&#160;<span class="comment"></span></div><div class="line"><a name="l01358"></a><span class="lineno"> 1358</span>&#160;<span class="comment">  /// @brief Serialize a `std::vector` of native structs into a FlatBuffer</span></div><div class="line"><a name="l01359"></a><span class="lineno"> 1359</span>&#160;<span class="comment">  /// `vector`.</span></div><div class="line"><a name="l01360"></a><span class="lineno"> 1360</span>&#160;<span class="comment">  /// @tparam T The data type of the `std::vector` struct elements.</span></div><div class="line"><a name="l01361"></a><span class="lineno"> 1361</span>&#160;<span class="comment">  /// @tparam S The data type of the `std::vector` native struct elements.</span></div><div class="line"><a name="l01362"></a><span class="lineno"> 1362</span>&#160;<span class="comment">  /// @param[in]] v A const reference to the `std::vector` of structs to</span></div><div class="line"><a name="l01363"></a><span class="lineno"> 1363</span>&#160;<span class="comment">  /// serialize into the buffer as a `vector`.</span></div><div class="line"><a name="l01364"></a><span class="lineno"> 1364</span>&#160;<span class="comment">  /// @return Returns a typed `Offset` into the serialized data indicating</span></div><div class="line"><a name="l01365"></a><span class="lineno"> 1365</span>&#160;<span class="comment">  /// where the vector is stored.</span></div><div class="line"><a name="l01366"></a><span class="lineno"> 1366</span>&#160;<span class="comment"></span>  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> S&gt;</div><div class="line"><a name="l01367"></a><span class="lineno"><a class="line" href="classflatbuffers_1_1_flat_buffer_builder.html#a11c291ccd2159604c149600ee6180b95"> 1367</a></span>&#160;  <a class="code" href="structflatbuffers_1_1_offset.html">Offset&lt;Vector&lt;const T *&gt;</a>&gt; <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#a11c291ccd2159604c149600ee6180b95">CreateVectorOfNativeStructs</a>(</div><div class="line"><a name="l01368"></a><span class="lineno"> 1368</span>&#160;      <span class="keyword">const</span> std::vector&lt;S&gt; &amp;v) {</div><div class="line"><a name="l01369"></a><span class="lineno"> 1369</span>&#160;    <span class="keywordflow">return</span> CreateVectorOfNativeStructs&lt;T, S&gt;(data(v), v.size());</div><div class="line"><a name="l01370"></a><span class="lineno"> 1370</span>&#160;  }</div><div class="line"><a name="l01371"></a><span class="lineno"> 1371</span>&#160;<span class="comment"></span></div><div class="line"><a name="l01372"></a><span class="lineno"> 1372</span>&#160;<span class="comment">  /// @cond FLATBUFFERS_INTERNAL</span></div><div class="line"><a name="l01373"></a><span class="lineno"> 1373</span>&#160;<span class="comment"></span>  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>StructKeyComparator {</div><div class="line"><a name="l01374"></a><span class="lineno"> 1374</span>&#160;    <span class="keywordtype">bool</span> operator()(<span class="keyword">const</span> T &amp;a, <span class="keyword">const</span> T &amp;b)<span class="keyword"> const </span>{</div><div class="line"><a name="l01375"></a><span class="lineno"> 1375</span>&#160;      <span class="keywordflow">return</span> a.KeyCompareLessThan(&amp;b);</div><div class="line"><a name="l01376"></a><span class="lineno"> 1376</span>&#160;    }</div><div class="line"><a name="l01377"></a><span class="lineno"> 1377</span>&#160;</div><div class="line"><a name="l01378"></a><span class="lineno"> 1378</span>&#160;   <span class="keyword">private</span>:</div><div class="line"><a name="l01379"></a><span class="lineno"> 1379</span>&#160;    StructKeyComparator &amp;operator=(<span class="keyword">const</span> StructKeyComparator &amp;);</div><div class="line"><a name="l01380"></a><span class="lineno"> 1380</span>&#160;  };<span class="comment"></span></div><div class="line"><a name="l01381"></a><span class="lineno"> 1381</span>&#160;<span class="comment">  /// @endcond</span></div><div class="line"><a name="l01382"></a><span class="lineno"> 1382</span>&#160;<span class="comment"></span><span class="comment"></span></div><div class="line"><a name="l01383"></a><span class="lineno"> 1383</span>&#160;<span class="comment">  /// @brief Serialize a `std::vector` of structs into a FlatBuffer `vector`</span></div><div class="line"><a name="l01384"></a><span class="lineno"> 1384</span>&#160;<span class="comment">  /// in sorted order.</span></div><div class="line"><a name="l01385"></a><span class="lineno"> 1385</span>&#160;<span class="comment">  /// @tparam T The data type of the `std::vector` struct elements.</span></div><div class="line"><a name="l01386"></a><span class="lineno"> 1386</span>&#160;<span class="comment">  /// @param[in]] v A const reference to the `std::vector` of structs to</span></div><div class="line"><a name="l01387"></a><span class="lineno"> 1387</span>&#160;<span class="comment">  /// serialize into the buffer as a `vector`.</span></div><div class="line"><a name="l01388"></a><span class="lineno"> 1388</span>&#160;<span class="comment">  /// @return Returns a typed `Offset` into the serialized data indicating</span></div><div class="line"><a name="l01389"></a><span class="lineno"> 1389</span>&#160;<span class="comment">  /// where the vector is stored.</span></div><div class="line"><a name="l01390"></a><span class="lineno"> 1390</span>&#160;<span class="comment"></span>  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div><div class="line"><a name="l01391"></a><span class="lineno"><a class="line" href="classflatbuffers_1_1_flat_buffer_builder.html#a7cc10b709dfa3e72083843d1a5e36c15"> 1391</a></span>&#160;  <a class="code" href="structflatbuffers_1_1_offset.html">Offset&lt;Vector&lt;const T *&gt;</a>&gt; <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#a7cc10b709dfa3e72083843d1a5e36c15">CreateVectorOfSortedStructs</a>(std::vector&lt;T&gt; *v) {</div><div class="line"><a name="l01392"></a><span class="lineno"> 1392</span>&#160;    <span class="keywordflow">return</span> CreateVectorOfSortedStructs(data(*v), v-&gt;size());</div><div class="line"><a name="l01393"></a><span class="lineno"> 1393</span>&#160;  }</div><div class="line"><a name="l01394"></a><span class="lineno"> 1394</span>&#160;<span class="comment"></span></div><div class="line"><a name="l01395"></a><span class="lineno"> 1395</span>&#160;<span class="comment">  /// @brief Serialize a `std::vector` of native structs into a FlatBuffer</span></div><div class="line"><a name="l01396"></a><span class="lineno"> 1396</span>&#160;<span class="comment">  /// `vector` in sorted order.</span></div><div class="line"><a name="l01397"></a><span class="lineno"> 1397</span>&#160;<span class="comment">  /// @tparam T The data type of the `std::vector` struct elements.</span></div><div class="line"><a name="l01398"></a><span class="lineno"> 1398</span>&#160;<span class="comment">  /// @tparam S The data type of the `std::vector` native struct elements.</span></div><div class="line"><a name="l01399"></a><span class="lineno"> 1399</span>&#160;<span class="comment">  /// @param[in]] v A const reference to the `std::vector` of structs to</span></div><div class="line"><a name="l01400"></a><span class="lineno"> 1400</span>&#160;<span class="comment">  /// serialize into the buffer as a `vector`.</span></div><div class="line"><a name="l01401"></a><span class="lineno"> 1401</span>&#160;<span class="comment">  /// @return Returns a typed `Offset` into the serialized data indicating</span></div><div class="line"><a name="l01402"></a><span class="lineno"> 1402</span>&#160;<span class="comment">  /// where the vector is stored.</span></div><div class="line"><a name="l01403"></a><span class="lineno"> 1403</span>&#160;<span class="comment"></span>  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> S&gt;</div><div class="line"><a name="l01404"></a><span class="lineno"><a class="line" href="classflatbuffers_1_1_flat_buffer_builder.html#a23aa4c910e053446cc404bc486012e54"> 1404</a></span>&#160;  <a class="code" href="structflatbuffers_1_1_offset.html">Offset&lt;Vector&lt;const T *&gt;</a>&gt; <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#a23aa4c910e053446cc404bc486012e54">CreateVectorOfSortedNativeStructs</a>(</div><div class="line"><a name="l01405"></a><span class="lineno"> 1405</span>&#160;      std::vector&lt;S&gt; *v) {</div><div class="line"><a name="l01406"></a><span class="lineno"> 1406</span>&#160;    <span class="keywordflow">return</span> CreateVectorOfSortedNativeStructs&lt;T, S&gt;(data(*v), v-&gt;size());</div><div class="line"><a name="l01407"></a><span class="lineno"> 1407</span>&#160;  }</div><div class="line"><a name="l01408"></a><span class="lineno"> 1408</span>&#160;<span class="comment"></span></div><div class="line"><a name="l01409"></a><span class="lineno"> 1409</span>&#160;<span class="comment">  /// @brief Serialize an array of structs into a FlatBuffer `vector` in sorted</span></div><div class="line"><a name="l01410"></a><span class="lineno"> 1410</span>&#160;<span class="comment">  /// order.</span></div><div class="line"><a name="l01411"></a><span class="lineno"> 1411</span>&#160;<span class="comment">  /// @tparam T The data type of the struct array elements.</span></div><div class="line"><a name="l01412"></a><span class="lineno"> 1412</span>&#160;<span class="comment">  /// @param[in] v A pointer to the array of type `T` to serialize into the</span></div><div class="line"><a name="l01413"></a><span class="lineno"> 1413</span>&#160;<span class="comment">  /// buffer as a `vector`.</span></div><div class="line"><a name="l01414"></a><span class="lineno"> 1414</span>&#160;<span class="comment">  /// @param[in] len The number of elements to serialize.</span></div><div class="line"><a name="l01415"></a><span class="lineno"> 1415</span>&#160;<span class="comment">  /// @return Returns a typed `Offset` into the serialized data indicating</span></div><div class="line"><a name="l01416"></a><span class="lineno"> 1416</span>&#160;<span class="comment">  /// where the vector is stored.</span></div><div class="line"><a name="l01417"></a><span class="lineno"> 1417</span>&#160;<span class="comment"></span>  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div><div class="line"><a name="l01418"></a><span class="lineno"><a class="line" href="classflatbuffers_1_1_flat_buffer_builder.html#ab1f44cc1b130e13b41e9a80de76e25cf"> 1418</a></span>&#160;  <a class="code" href="structflatbuffers_1_1_offset.html">Offset&lt;Vector&lt;const T *&gt;</a>&gt; <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#ab1f44cc1b130e13b41e9a80de76e25cf">CreateVectorOfSortedStructs</a>(T *v, <span class="keywordtype">size_t</span> len) {</div><div class="line"><a name="l01419"></a><span class="lineno"> 1419</span>&#160;    std::sort(v, v + len, StructKeyComparator&lt;T&gt;());</div><div class="line"><a name="l01420"></a><span class="lineno"> 1420</span>&#160;    <span class="keywordflow">return</span> CreateVectorOfStructs(v, len);</div><div class="line"><a name="l01421"></a><span class="lineno"> 1421</span>&#160;  }</div><div class="line"><a name="l01422"></a><span class="lineno"> 1422</span>&#160;<span class="comment"></span></div><div class="line"><a name="l01423"></a><span class="lineno"> 1423</span>&#160;<span class="comment">  /// @brief Serialize an array of native structs into a FlatBuffer `vector` in</span></div><div class="line"><a name="l01424"></a><span class="lineno"> 1424</span>&#160;<span class="comment">  /// sorted order.</span></div><div class="line"><a name="l01425"></a><span class="lineno"> 1425</span>&#160;<span class="comment">  /// @tparam T The data type of the struct array elements.</span></div><div class="line"><a name="l01426"></a><span class="lineno"> 1426</span>&#160;<span class="comment">  /// @tparam S The data type of the native struct array elements.</span></div><div class="line"><a name="l01427"></a><span class="lineno"> 1427</span>&#160;<span class="comment">  /// @param[in] v A pointer to the array of type `S` to serialize into the</span></div><div class="line"><a name="l01428"></a><span class="lineno"> 1428</span>&#160;<span class="comment">  /// buffer as a `vector`.</span></div><div class="line"><a name="l01429"></a><span class="lineno"> 1429</span>&#160;<span class="comment">  /// @param[in] len The number of elements to serialize.</span></div><div class="line"><a name="l01430"></a><span class="lineno"> 1430</span>&#160;<span class="comment">  /// @return Returns a typed `Offset` into the serialized data indicating</span></div><div class="line"><a name="l01431"></a><span class="lineno"> 1431</span>&#160;<span class="comment">  /// where the vector is stored.</span></div><div class="line"><a name="l01432"></a><span class="lineno"> 1432</span>&#160;<span class="comment"></span>  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> S&gt;</div><div class="line"><a name="l01433"></a><span class="lineno"><a class="line" href="classflatbuffers_1_1_flat_buffer_builder.html#a799701af34c398d8eb86e049b73bcecf"> 1433</a></span>&#160;  <a class="code" href="structflatbuffers_1_1_offset.html">Offset&lt;Vector&lt;const T *&gt;</a>&gt; <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#a799701af34c398d8eb86e049b73bcecf">CreateVectorOfSortedNativeStructs</a>(S *v,</div><div class="line"><a name="l01434"></a><span class="lineno"> 1434</span>&#160;                                                              <span class="keywordtype">size_t</span> len) {</div><div class="line"><a name="l01435"></a><span class="lineno"> 1435</span>&#160;    <span class="keyword">extern</span> T Pack(<span class="keyword">const</span> S &amp;);</div><div class="line"><a name="l01436"></a><span class="lineno"> 1436</span>&#160;    <span class="keyword">typedef</span> T (*Pack_t)(<span class="keyword">const</span> S &amp;);</div><div class="line"><a name="l01437"></a><span class="lineno"> 1437</span>&#160;    std::vector&lt;T&gt; vv(len);</div><div class="line"><a name="l01438"></a><span class="lineno"> 1438</span>&#160;    std::transform(v, v + len, vv.begin(), *(Pack_t)&amp;Pack);</div><div class="line"><a name="l01439"></a><span class="lineno"> 1439</span>&#160;    <span class="keywordflow">return</span> CreateVectorOfSortedStructs&lt;T&gt;(vv, len);</div><div class="line"><a name="l01440"></a><span class="lineno"> 1440</span>&#160;  }</div><div class="line"><a name="l01441"></a><span class="lineno"> 1441</span>&#160;<span class="comment"></span></div><div class="line"><a name="l01442"></a><span class="lineno"> 1442</span>&#160;<span class="comment">  /// @cond FLATBUFFERS_INTERNAL</span></div><div class="line"><a name="l01443"></a><span class="lineno"> 1443</span>&#160;<span class="comment"></span>  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>TableKeyComparator {</div><div class="line"><a name="l01444"></a><span class="lineno"> 1444</span>&#160;    TableKeyComparator(<a class="code" href="classflatbuffers_1_1vector__downward.html">vector_downward</a> &amp;buf) : buf_(buf) {}</div><div class="line"><a name="l01445"></a><span class="lineno"> 1445</span>&#160;    <span class="keywordtype">bool</span> operator()(<span class="keyword">const</span> <a class="code" href="structflatbuffers_1_1_offset.html">Offset&lt;T&gt;</a> &amp;a, <span class="keyword">const</span> <a class="code" href="structflatbuffers_1_1_offset.html">Offset&lt;T&gt;</a> &amp;b)<span class="keyword"> const </span>{</div><div class="line"><a name="l01446"></a><span class="lineno"> 1446</span>&#160;      <span class="keyword">auto</span> table_a = <span class="keyword">reinterpret_cast&lt;</span>T *<span class="keyword">&gt;</span>(buf_.data_at(a.o));</div><div class="line"><a name="l01447"></a><span class="lineno"> 1447</span>&#160;      <span class="keyword">auto</span> table_b = <span class="keyword">reinterpret_cast&lt;</span>T *<span class="keyword">&gt;</span>(buf_.data_at(b.o));</div><div class="line"><a name="l01448"></a><span class="lineno"> 1448</span>&#160;      <span class="keywordflow">return</span> table_a-&gt;KeyCompareLessThan(table_b);</div><div class="line"><a name="l01449"></a><span class="lineno"> 1449</span>&#160;    }</div><div class="line"><a name="l01450"></a><span class="lineno"> 1450</span>&#160;    <a class="code" href="classflatbuffers_1_1vector__downward.html">vector_downward</a> &amp;buf_;</div><div class="line"><a name="l01451"></a><span class="lineno"> 1451</span>&#160;</div><div class="line"><a name="l01452"></a><span class="lineno"> 1452</span>&#160;   <span class="keyword">private</span>:</div><div class="line"><a name="l01453"></a><span class="lineno"> 1453</span>&#160;    TableKeyComparator &amp;operator=(<span class="keyword">const</span> TableKeyComparator &amp;);</div><div class="line"><a name="l01454"></a><span class="lineno"> 1454</span>&#160;  };<span class="comment"></span></div><div class="line"><a name="l01455"></a><span class="lineno"> 1455</span>&#160;<span class="comment">  /// @endcond</span></div><div class="line"><a name="l01456"></a><span class="lineno"> 1456</span>&#160;<span class="comment"></span><span class="comment"></span></div><div class="line"><a name="l01457"></a><span class="lineno"> 1457</span>&#160;<span class="comment">  /// @brief Serialize an array of `table` offsets as a `vector` in the buffer</span></div><div class="line"><a name="l01458"></a><span class="lineno"> 1458</span>&#160;<span class="comment">  /// in sorted order.</span></div><div class="line"><a name="l01459"></a><span class="lineno"> 1459</span>&#160;<span class="comment">  /// @tparam T The data type that the offset refers to.</span></div><div class="line"><a name="l01460"></a><span class="lineno"> 1460</span>&#160;<span class="comment">  /// @param[in] v An array of type `Offset&lt;T&gt;` that contains the `table`</span></div><div class="line"><a name="l01461"></a><span class="lineno"> 1461</span>&#160;<span class="comment">  /// offsets to store in the buffer in sorted order.</span></div><div class="line"><a name="l01462"></a><span class="lineno"> 1462</span>&#160;<span class="comment">  /// @param[in] len The number of elements to store in the `vector`.</span></div><div class="line"><a name="l01463"></a><span class="lineno"> 1463</span>&#160;<span class="comment">  /// @return Returns a typed `Offset` into the serialized data indicating</span></div><div class="line"><a name="l01464"></a><span class="lineno"> 1464</span>&#160;<span class="comment">  /// where the vector is stored.</span></div><div class="line"><a name="l01465"></a><span class="lineno"> 1465</span>&#160;<span class="comment"></span>  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div><div class="line"><a name="l01466"></a><span class="lineno"><a class="line" href="classflatbuffers_1_1_flat_buffer_builder.html#a2130ef232ff405eebe2e7f184ecd06e6"> 1466</a></span>&#160;  <a class="code" href="structflatbuffers_1_1_offset.html">Offset&lt;Vector&lt;Offset&lt;T&gt;</a>&gt;&gt; <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#a2130ef232ff405eebe2e7f184ecd06e6">CreateVectorOfSortedTables</a>(<a class="code" href="structflatbuffers_1_1_offset.html">Offset&lt;T&gt;</a> *v,</div><div class="line"><a name="l01467"></a><span class="lineno"> 1467</span>&#160;                                                       <span class="keywordtype">size_t</span> len) {</div><div class="line"><a name="l01468"></a><span class="lineno"> 1468</span>&#160;    std::sort(v, v + len, TableKeyComparator&lt;T&gt;(buf_));</div><div class="line"><a name="l01469"></a><span class="lineno"> 1469</span>&#160;    <span class="keywordflow">return</span> CreateVector(v, len);</div><div class="line"><a name="l01470"></a><span class="lineno"> 1470</span>&#160;  }</div><div class="line"><a name="l01471"></a><span class="lineno"> 1471</span>&#160;<span class="comment"></span></div><div class="line"><a name="l01472"></a><span class="lineno"> 1472</span>&#160;<span class="comment">  /// @brief Serialize an array of `table` offsets as a `vector` in the buffer</span></div><div class="line"><a name="l01473"></a><span class="lineno"> 1473</span>&#160;<span class="comment">  /// in sorted order.</span></div><div class="line"><a name="l01474"></a><span class="lineno"> 1474</span>&#160;<span class="comment">  /// @tparam T The data type that the offset refers to.</span></div><div class="line"><a name="l01475"></a><span class="lineno"> 1475</span>&#160;<span class="comment">  /// @param[in] v An array of type `Offset&lt;T&gt;` that contains the `table`</span></div><div class="line"><a name="l01476"></a><span class="lineno"> 1476</span>&#160;<span class="comment">  /// offsets to store in the buffer in sorted order.</span></div><div class="line"><a name="l01477"></a><span class="lineno"> 1477</span>&#160;<span class="comment">  /// @return Returns a typed `Offset` into the serialized data indicating</span></div><div class="line"><a name="l01478"></a><span class="lineno"> 1478</span>&#160;<span class="comment">  /// where the vector is stored.</span></div><div class="line"><a name="l01479"></a><span class="lineno"> 1479</span>&#160;<span class="comment"></span>  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div><div class="line"><a name="l01480"></a><span class="lineno"><a class="line" href="classflatbuffers_1_1_flat_buffer_builder.html#ac64d11c219559ea51567eab556e13135"> 1480</a></span>&#160;  <a class="code" href="structflatbuffers_1_1_offset.html">Offset&lt;Vector&lt;Offset&lt;T&gt;</a>&gt;&gt; <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#ac64d11c219559ea51567eab556e13135">CreateVectorOfSortedTables</a>(</div><div class="line"><a name="l01481"></a><span class="lineno"> 1481</span>&#160;      std::vector&lt;<a class="code" href="structflatbuffers_1_1_offset.html">Offset&lt;T&gt;</a>&gt; *v) {</div><div class="line"><a name="l01482"></a><span class="lineno"> 1482</span>&#160;    <span class="keywordflow">return</span> CreateVectorOfSortedTables(data(*v), v-&gt;size());</div><div class="line"><a name="l01483"></a><span class="lineno"> 1483</span>&#160;  }</div><div class="line"><a name="l01484"></a><span class="lineno"> 1484</span>&#160;<span class="comment"></span></div><div class="line"><a name="l01485"></a><span class="lineno"> 1485</span>&#160;<span class="comment">  /// @brief Specialized version of `CreateVector` for non-copying use cases.</span></div><div class="line"><a name="l01486"></a><span class="lineno"> 1486</span>&#160;<span class="comment">  /// Write the data any time later to the returned buffer pointer `buf`.</span></div><div class="line"><a name="l01487"></a><span class="lineno"> 1487</span>&#160;<span class="comment">  /// @param[in] len The number of elements to store in the `vector`.</span></div><div class="line"><a name="l01488"></a><span class="lineno"> 1488</span>&#160;<span class="comment">  /// @param[in] elemsize The size of each element in the `vector`.</span></div><div class="line"><a name="l01489"></a><span class="lineno"> 1489</span>&#160;<span class="comment">  /// @param[out] buf A pointer to a `uint8_t` pointer that can be</span></div><div class="line"><a name="l01490"></a><span class="lineno"> 1490</span>&#160;<span class="comment">  /// written to at a later time to serialize the data into a `vector`</span></div><div class="line"><a name="l01491"></a><span class="lineno"> 1491</span>&#160;<span class="comment">  /// in the buffer.</span></div><div class="line"><a name="l01492"></a><span class="lineno"><a class="line" href="classflatbuffers_1_1_flat_buffer_builder.html#ac2b96292fa0fb1534fe7fd218a094d0c"> 1492</a></span>&#160;<span class="comment"></span>  uoffset_t <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#ac2b96292fa0fb1534fe7fd218a094d0c">CreateUninitializedVector</a>(<span class="keywordtype">size_t</span> len, <span class="keywordtype">size_t</span> elemsize,</div><div class="line"><a name="l01493"></a><span class="lineno"> 1493</span>&#160;                                      uint8_t **buf) {</div><div class="line"><a name="l01494"></a><span class="lineno"> 1494</span>&#160;    NotNested();</div><div class="line"><a name="l01495"></a><span class="lineno"> 1495</span>&#160;    StartVector(len, elemsize);</div><div class="line"><a name="l01496"></a><span class="lineno"> 1496</span>&#160;    buf_.make_space(len * elemsize);</div><div class="line"><a name="l01497"></a><span class="lineno"> 1497</span>&#160;    <span class="keyword">auto</span> vec_start = GetSize();</div><div class="line"><a name="l01498"></a><span class="lineno"> 1498</span>&#160;    <span class="keyword">auto</span> vec_end = EndVector(len);</div><div class="line"><a name="l01499"></a><span class="lineno"> 1499</span>&#160;    *buf = buf_.data_at(vec_start);</div><div class="line"><a name="l01500"></a><span class="lineno"> 1500</span>&#160;    <span class="keywordflow">return</span> vec_end;</div><div class="line"><a name="l01501"></a><span class="lineno"> 1501</span>&#160;  }</div><div class="line"><a name="l01502"></a><span class="lineno"> 1502</span>&#160;<span class="comment"></span></div><div class="line"><a name="l01503"></a><span class="lineno"> 1503</span>&#160;<span class="comment">  /// @brief Specialized version of `CreateVector` for non-copying use cases.</span></div><div class="line"><a name="l01504"></a><span class="lineno"> 1504</span>&#160;<span class="comment">  /// Write the data any time later to the returned buffer pointer `buf`.</span></div><div class="line"><a name="l01505"></a><span class="lineno"> 1505</span>&#160;<span class="comment">  /// @tparam T The data type of the data that will be stored in the buffer</span></div><div class="line"><a name="l01506"></a><span class="lineno"> 1506</span>&#160;<span class="comment">  /// as a `vector`.</span></div><div class="line"><a name="l01507"></a><span class="lineno"> 1507</span>&#160;<span class="comment">  /// @param[in] len The number of elements to store in the `vector`.</span></div><div class="line"><a name="l01508"></a><span class="lineno"> 1508</span>&#160;<span class="comment">  /// @param[out] buf A pointer to a pointer of type `T` that can be</span></div><div class="line"><a name="l01509"></a><span class="lineno"> 1509</span>&#160;<span class="comment">  /// written to at a later time to serialize the data into a `vector`</span></div><div class="line"><a name="l01510"></a><span class="lineno"> 1510</span>&#160;<span class="comment">  /// in the buffer.</span></div><div class="line"><a name="l01511"></a><span class="lineno"> 1511</span>&#160;<span class="comment"></span>  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div><div class="line"><a name="l01512"></a><span class="lineno"><a class="line" href="classflatbuffers_1_1_flat_buffer_builder.html#a2305b63d367845972b51669dd995cc50"> 1512</a></span>&#160;  <a class="code" href="structflatbuffers_1_1_offset.html">Offset&lt;Vector&lt;T&gt;</a>&gt; <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#a2305b63d367845972b51669dd995cc50">CreateUninitializedVector</a>(<span class="keywordtype">size_t</span> len, T **buf) {</div><div class="line"><a name="l01513"></a><span class="lineno"> 1513</span>&#160;    <span class="keywordflow">return</span> CreateUninitializedVector(len, <span class="keyword">sizeof</span>(T),</div><div class="line"><a name="l01514"></a><span class="lineno"> 1514</span>&#160;                                     reinterpret_cast&lt;uint8_t **&gt;(buf));</div><div class="line"><a name="l01515"></a><span class="lineno"> 1515</span>&#160;  }</div><div class="line"><a name="l01516"></a><span class="lineno"> 1516</span>&#160;<span class="comment"></span></div><div class="line"><a name="l01517"></a><span class="lineno"> 1517</span>&#160;<span class="comment">  /// @brief Write a struct by itself, typically to be part of a union.</span></div><div class="line"><a name="l01518"></a><span class="lineno"><a class="line" href="classflatbuffers_1_1_flat_buffer_builder.html#a43f51ba9c8f4f24ea2247a3979d095b8"> 1518</a></span>&#160;<span class="comment"></span>  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt; <a class="code" href="structflatbuffers_1_1_offset.html">Offset&lt;const T *&gt;</a> <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#a43f51ba9c8f4f24ea2247a3979d095b8">CreateStruct</a>(<span class="keyword">const</span> T &amp;structobj) {</div><div class="line"><a name="l01519"></a><span class="lineno"> 1519</span>&#160;    NotNested();</div><div class="line"><a name="l01520"></a><span class="lineno"> 1520</span>&#160;    Align(AlignOf&lt;T&gt;());</div><div class="line"><a name="l01521"></a><span class="lineno"> 1521</span>&#160;    buf_.push_small(structobj);</div><div class="line"><a name="l01522"></a><span class="lineno"> 1522</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="structflatbuffers_1_1_offset.html">Offset&lt;const T *&gt;</a>(GetSize());</div><div class="line"><a name="l01523"></a><span class="lineno"> 1523</span>&#160;  }</div><div class="line"><a name="l01524"></a><span class="lineno"> 1524</span>&#160;<span class="comment"></span></div><div class="line"><a name="l01525"></a><span class="lineno"> 1525</span>&#160;<span class="comment">  /// @brief The length of a FlatBuffer file header.</span></div><div class="line"><a name="l01526"></a><span class="lineno"><a class="line" href="classflatbuffers_1_1_flat_buffer_builder.html#af8c7583c92e1d1d6f438977da5158d19"> 1526</a></span>&#160;<span class="comment"></span>  <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">size_t</span> kFileIdentifierLength = 4;</div><div class="line"><a name="l01527"></a><span class="lineno"> 1527</span>&#160;<span class="comment"></span></div><div class="line"><a name="l01528"></a><span class="lineno"> 1528</span>&#160;<span class="comment">  /// @brief Finish serializing a buffer by writing the root offset.</span></div><div class="line"><a name="l01529"></a><span class="lineno"> 1529</span>&#160;<span class="comment">  /// @param[in] file_identifier If a `file_identifier` is given, the buffer</span></div><div class="line"><a name="l01530"></a><span class="lineno"> 1530</span>&#160;<span class="comment">  /// will be prefixed with a standard FlatBuffers file header.</span></div><div class="line"><a name="l01531"></a><span class="lineno"> 1531</span>&#160;<span class="comment"></span>  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div><div class="line"><a name="l01532"></a><span class="lineno"><a class="line" href="classflatbuffers_1_1_flat_buffer_builder.html#a0c9e507b373d598b51052fab4fa34912"> 1532</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#a0c9e507b373d598b51052fab4fa34912">Finish</a>(<a class="code" href="structflatbuffers_1_1_offset.html">Offset&lt;T&gt;</a> root, <span class="keyword">const</span> <span class="keywordtype">char</span> *file_identifier = <span class="keyword">nullptr</span>) {</div><div class="line"><a name="l01533"></a><span class="lineno"> 1533</span>&#160;    Finish(root.o, file_identifier, <span class="keyword">false</span>);</div><div class="line"><a name="l01534"></a><span class="lineno"> 1534</span>&#160;  }</div><div class="line"><a name="l01535"></a><span class="lineno"> 1535</span>&#160;<span class="comment"></span></div><div class="line"><a name="l01536"></a><span class="lineno"> 1536</span>&#160;<span class="comment">  /// @brief Finish a buffer with a 32 bit size field pre-fixed (size of the</span></div><div class="line"><a name="l01537"></a><span class="lineno"> 1537</span>&#160;<span class="comment">  /// buffer following the size field). These buffers are NOT compatible</span></div><div class="line"><a name="l01538"></a><span class="lineno"> 1538</span>&#160;<span class="comment">  /// with standard buffers created by Finish, i.e. you can&#39;t call GetRoot</span></div><div class="line"><a name="l01539"></a><span class="lineno"> 1539</span>&#160;<span class="comment">  /// on them, you have to use GetSizePrefixedRoot instead.</span></div><div class="line"><a name="l01540"></a><span class="lineno"> 1540</span>&#160;<span class="comment">  /// All &gt;32 bit quantities in this buffer will be aligned when the whole</span></div><div class="line"><a name="l01541"></a><span class="lineno"> 1541</span>&#160;<span class="comment">  /// size pre-fixed buffer is aligned.</span></div><div class="line"><a name="l01542"></a><span class="lineno"> 1542</span>&#160;<span class="comment">  /// These kinds of buffers are useful for creating a stream of FlatBuffers.</span></div><div class="line"><a name="l01543"></a><span class="lineno"> 1543</span>&#160;<span class="comment"></span>  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div><div class="line"><a name="l01544"></a><span class="lineno"><a class="line" href="classflatbuffers_1_1_flat_buffer_builder.html#a7ba8462e408431054c99d25120326220"> 1544</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#a7ba8462e408431054c99d25120326220">FinishSizePrefixed</a>(<a class="code" href="structflatbuffers_1_1_offset.html">Offset&lt;T&gt;</a> root,</div><div class="line"><a name="l01545"></a><span class="lineno"> 1545</span>&#160;                          <span class="keyword">const</span> <span class="keywordtype">char</span> *file_identifier = <span class="keyword">nullptr</span>) {</div><div class="line"><a name="l01546"></a><span class="lineno"> 1546</span>&#160;    Finish(root.o, file_identifier, <span class="keyword">true</span>);</div><div class="line"><a name="l01547"></a><span class="lineno"> 1547</span>&#160;  }</div><div class="line"><a name="l01548"></a><span class="lineno"> 1548</span>&#160;</div><div class="line"><a name="l01549"></a><span class="lineno"> 1549</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l01550"></a><span class="lineno"> 1550</span>&#160;  <span class="comment">// You shouldn&#39;t really be copying instances of this class.</span></div><div class="line"><a name="l01551"></a><span class="lineno"> 1551</span>&#160;  <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html">FlatBufferBuilder</a>(<span class="keyword">const</span> <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html">FlatBufferBuilder</a> &amp;);</div><div class="line"><a name="l01552"></a><span class="lineno"> 1552</span>&#160;  <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html">FlatBufferBuilder</a> &amp;operator=(<span class="keyword">const</span> <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html">FlatBufferBuilder</a> &amp;);</div><div class="line"><a name="l01553"></a><span class="lineno"> 1553</span>&#160;</div><div class="line"><a name="l01554"></a><span class="lineno"> 1554</span>&#160;  <span class="keywordtype">void</span> Finish(uoffset_t root, <span class="keyword">const</span> <span class="keywordtype">char</span> *file_identifier, <span class="keywordtype">bool</span> size_prefix) {</div><div class="line"><a name="l01555"></a><span class="lineno"> 1555</span>&#160;    NotNested();</div><div class="line"><a name="l01556"></a><span class="lineno"> 1556</span>&#160;    buf_.clear_scratch();</div><div class="line"><a name="l01557"></a><span class="lineno"> 1557</span>&#160;    <span class="comment">// This will cause the whole buffer to be aligned.</span></div><div class="line"><a name="l01558"></a><span class="lineno"> 1558</span>&#160;    PreAlign((size_prefix ? <span class="keyword">sizeof</span>(uoffset_t) : 0) + <span class="keyword">sizeof</span>(uoffset_t) +</div><div class="line"><a name="l01559"></a><span class="lineno"> 1559</span>&#160;                 (file_identifier ? kFileIdentifierLength : 0),</div><div class="line"><a name="l01560"></a><span class="lineno"> 1560</span>&#160;             minalign_);</div><div class="line"><a name="l01561"></a><span class="lineno"> 1561</span>&#160;    <span class="keywordflow">if</span> (file_identifier) {</div><div class="line"><a name="l01562"></a><span class="lineno"> 1562</span>&#160;      assert(strlen(file_identifier) == kFileIdentifierLength);</div><div class="line"><a name="l01563"></a><span class="lineno"> 1563</span>&#160;      PushBytes(reinterpret_cast&lt;const uint8_t *&gt;(file_identifier),</div><div class="line"><a name="l01564"></a><span class="lineno"> 1564</span>&#160;                kFileIdentifierLength);</div><div class="line"><a name="l01565"></a><span class="lineno"> 1565</span>&#160;    }</div><div class="line"><a name="l01566"></a><span class="lineno"> 1566</span>&#160;    PushElement(ReferTo(root));  <span class="comment">// Location of root.</span></div><div class="line"><a name="l01567"></a><span class="lineno"> 1567</span>&#160;    <span class="keywordflow">if</span> (size_prefix) { PushElement(GetSize()); }</div><div class="line"><a name="l01568"></a><span class="lineno"> 1568</span>&#160;    finished = <span class="keyword">true</span>;</div><div class="line"><a name="l01569"></a><span class="lineno"> 1569</span>&#160;  }</div><div class="line"><a name="l01570"></a><span class="lineno"> 1570</span>&#160;</div><div class="line"><a name="l01571"></a><span class="lineno"><a class="line" href="structflatbuffers_1_1_flat_buffer_builder_1_1_field_loc.html"> 1571</a></span>&#160;  <span class="keyword">struct </span><a class="code" href="structflatbuffers_1_1_flat_buffer_builder_1_1_field_loc.html">FieldLoc</a> {</div><div class="line"><a name="l01572"></a><span class="lineno"> 1572</span>&#160;    uoffset_t off;</div><div class="line"><a name="l01573"></a><span class="lineno"> 1573</span>&#160;    voffset_t id;</div><div class="line"><a name="l01574"></a><span class="lineno"> 1574</span>&#160;  };</div><div class="line"><a name="l01575"></a><span class="lineno"> 1575</span>&#160;</div><div class="line"><a name="l01576"></a><span class="lineno"> 1576</span>&#160;  <a class="code" href="classflatbuffers_1_1vector__downward.html">vector_downward</a> buf_;</div><div class="line"><a name="l01577"></a><span class="lineno"> 1577</span>&#160;</div><div class="line"><a name="l01578"></a><span class="lineno"> 1578</span>&#160;  <span class="comment">// Accumulating offsets of table members while it is being built.</span></div><div class="line"><a name="l01579"></a><span class="lineno"> 1579</span>&#160;  <span class="comment">// We store these in the scratch pad of buf_, after the vtable offsets.</span></div><div class="line"><a name="l01580"></a><span class="lineno"> 1580</span>&#160;  uoffset_t num_field_loc;</div><div class="line"><a name="l01581"></a><span class="lineno"> 1581</span>&#160;  <span class="comment">// Track how much of the vtable is in use, so we can output the most compact</span></div><div class="line"><a name="l01582"></a><span class="lineno"> 1582</span>&#160;  <span class="comment">// possible vtable.</span></div><div class="line"><a name="l01583"></a><span class="lineno"> 1583</span>&#160;  voffset_t max_voffset_;</div><div class="line"><a name="l01584"></a><span class="lineno"> 1584</span>&#160;</div><div class="line"><a name="l01585"></a><span class="lineno"> 1585</span>&#160;  <span class="comment">// Ensure objects are not nested.</span></div><div class="line"><a name="l01586"></a><span class="lineno"> 1586</span>&#160;  <span class="keywordtype">bool</span> nested;</div><div class="line"><a name="l01587"></a><span class="lineno"> 1587</span>&#160;</div><div class="line"><a name="l01588"></a><span class="lineno"> 1588</span>&#160;  <span class="comment">// Ensure the buffer is finished before it is being accessed.</span></div><div class="line"><a name="l01589"></a><span class="lineno"> 1589</span>&#160;  <span class="keywordtype">bool</span> finished;</div><div class="line"><a name="l01590"></a><span class="lineno"> 1590</span>&#160;</div><div class="line"><a name="l01591"></a><span class="lineno"> 1591</span>&#160;  <span class="keywordtype">size_t</span> minalign_;</div><div class="line"><a name="l01592"></a><span class="lineno"> 1592</span>&#160;</div><div class="line"><a name="l01593"></a><span class="lineno"> 1593</span>&#160;  <span class="keywordtype">bool</span> force_defaults_;  <span class="comment">// Serialize values equal to their defaults anyway.</span></div><div class="line"><a name="l01594"></a><span class="lineno"> 1594</span>&#160;</div><div class="line"><a name="l01595"></a><span class="lineno"> 1595</span>&#160;  <span class="keywordtype">bool</span> dedup_vtables_;</div><div class="line"><a name="l01596"></a><span class="lineno"> 1596</span>&#160;</div><div class="line"><a name="l01597"></a><span class="lineno"><a class="line" href="structflatbuffers_1_1_flat_buffer_builder_1_1_string_offset_compare.html"> 1597</a></span>&#160;  <span class="keyword">struct </span><a class="code" href="structflatbuffers_1_1_flat_buffer_builder_1_1_string_offset_compare.html">StringOffsetCompare</a> {</div><div class="line"><a name="l01598"></a><span class="lineno"> 1598</span>&#160;    <a class="code" href="structflatbuffers_1_1_flat_buffer_builder_1_1_string_offset_compare.html">StringOffsetCompare</a>(<span class="keyword">const</span> <a class="code" href="classflatbuffers_1_1vector__downward.html">vector_downward</a> &amp;buf) : buf_(&amp;buf) {}</div><div class="line"><a name="l01599"></a><span class="lineno"> 1599</span>&#160;    <span class="keywordtype">bool</span> operator()(<span class="keyword">const</span> <a class="code" href="structflatbuffers_1_1_offset.html">Offset&lt;String&gt;</a> &amp;a, <span class="keyword">const</span> <a class="code" href="structflatbuffers_1_1_offset.html">Offset&lt;String&gt;</a> &amp;b)<span class="keyword"> const </span>{</div><div class="line"><a name="l01600"></a><span class="lineno"> 1600</span>&#160;      <span class="keyword">auto</span> stra = <span class="keyword">reinterpret_cast&lt;</span><span class="keyword">const </span><a class="code" href="structflatbuffers_1_1_string.html">String</a> *<span class="keyword">&gt;</span>(buf_-&gt;data_at(a.o));</div><div class="line"><a name="l01601"></a><span class="lineno"> 1601</span>&#160;      <span class="keyword">auto</span> strb = <span class="keyword">reinterpret_cast&lt;</span><span class="keyword">const </span><a class="code" href="structflatbuffers_1_1_string.html">String</a> *<span class="keyword">&gt;</span>(buf_-&gt;data_at(b.o));</div><div class="line"><a name="l01602"></a><span class="lineno"> 1602</span>&#160;      <span class="keywordflow">return</span> strncmp(stra-&gt;c_str(), strb-&gt;c_str(),</div><div class="line"><a name="l01603"></a><span class="lineno"> 1603</span>&#160;                     (std::min)(stra-&gt;size(), strb-&gt;size()) + 1) &lt; 0;</div><div class="line"><a name="l01604"></a><span class="lineno"> 1604</span>&#160;    }</div><div class="line"><a name="l01605"></a><span class="lineno"> 1605</span>&#160;    <span class="keyword">const</span> <a class="code" href="classflatbuffers_1_1vector__downward.html">vector_downward</a> *buf_;</div><div class="line"><a name="l01606"></a><span class="lineno"> 1606</span>&#160;  };</div><div class="line"><a name="l01607"></a><span class="lineno"> 1607</span>&#160;</div><div class="line"><a name="l01608"></a><span class="lineno"> 1608</span>&#160;  <span class="comment">// For use with CreateSharedString. Instantiated on first use only.</span></div><div class="line"><a name="l01609"></a><span class="lineno"> 1609</span>&#160;  <span class="keyword">typedef</span> std::set&lt;Offset&lt;String&gt;, <a class="code" href="structflatbuffers_1_1_flat_buffer_builder_1_1_string_offset_compare.html">StringOffsetCompare</a>&gt; StringOffsetMap;</div><div class="line"><a name="l01610"></a><span class="lineno"> 1610</span>&#160;  StringOffsetMap *string_pool;</div><div class="line"><a name="l01611"></a><span class="lineno"> 1611</span>&#160;</div><div class="line"><a name="l01612"></a><span class="lineno"> 1612</span>&#160; <span class="keyword">private</span>:</div><div class="line"><a name="l01613"></a><span class="lineno"> 1613</span>&#160;  <span class="comment">// Allocates space for a vector of structures.</span></div><div class="line"><a name="l01614"></a><span class="lineno"> 1614</span>&#160;  <span class="comment">// Must be completed with EndVectorOfStructs().</span></div><div class="line"><a name="l01615"></a><span class="lineno"> 1615</span>&#160;  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt; T *StartVectorOfStructs(<span class="keywordtype">size_t</span> vector_size) {</div><div class="line"><a name="l01616"></a><span class="lineno"> 1616</span>&#160;    StartVector(vector_size * <span class="keyword">sizeof</span>(T) / AlignOf&lt;T&gt;(), AlignOf&lt;T&gt;());</div><div class="line"><a name="l01617"></a><span class="lineno"> 1617</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">reinterpret_cast&lt;</span>T *<span class="keyword">&gt;</span>(buf_.make_space(vector_size * <span class="keyword">sizeof</span>(T)));</div><div class="line"><a name="l01618"></a><span class="lineno"> 1618</span>&#160;  }</div><div class="line"><a name="l01619"></a><span class="lineno"> 1619</span>&#160;</div><div class="line"><a name="l01620"></a><span class="lineno"> 1620</span>&#160;  <span class="comment">// End the vector of structues in the flatbuffers.</span></div><div class="line"><a name="l01621"></a><span class="lineno"> 1621</span>&#160;  <span class="comment">// Vector should have previously be started with StartVectorOfStructs().</span></div><div class="line"><a name="l01622"></a><span class="lineno"> 1622</span>&#160;  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div><div class="line"><a name="l01623"></a><span class="lineno"> 1623</span>&#160;  <a class="code" href="structflatbuffers_1_1_offset.html">Offset&lt;Vector&lt;const T *&gt;</a>&gt; EndVectorOfStructs(<span class="keywordtype">size_t</span> vector_size) {</div><div class="line"><a name="l01624"></a><span class="lineno"> 1624</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="structflatbuffers_1_1_offset.html">Offset&lt;Vector&lt;const T *&gt;</a>&gt;(EndVector(vector_size));</div><div class="line"><a name="l01625"></a><span class="lineno"> 1625</span>&#160;  }</div><div class="line"><a name="l01626"></a><span class="lineno"> 1626</span>&#160;};<span class="comment"></span></div><div class="line"><a name="l01627"></a><span class="lineno"> 1627</span>&#160;<span class="comment">/// @}</span></div><div class="line"><a name="l01628"></a><span class="lineno"> 1628</span>&#160;<span class="comment"></span><span class="comment"></span></div><div class="line"><a name="l01629"></a><span class="lineno"> 1629</span>&#160;<span class="comment">/// @cond FLATBUFFERS_INTERNAL</span></div><div class="line"><a name="l01630"></a><span class="lineno"> 1630</span>&#160;<span class="comment"></span><span class="comment">// Helpers to get a typed pointer to the root object contained in the buffer.</span></div><div class="line"><a name="l01631"></a><span class="lineno"> 1631</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt; T *GetMutableRoot(<span class="keywordtype">void</span> *buf) {</div><div class="line"><a name="l01632"></a><span class="lineno"> 1632</span>&#160;  EndianCheck();</div><div class="line"><a name="l01633"></a><span class="lineno"> 1633</span>&#160;  <span class="keywordflow">return</span> <span class="keyword">reinterpret_cast&lt;</span>T *<span class="keyword">&gt;</span>(</div><div class="line"><a name="l01634"></a><span class="lineno"> 1634</span>&#160;      <span class="keyword">reinterpret_cast&lt;</span>uint8_t *<span class="keyword">&gt;</span>(buf) +</div><div class="line"><a name="l01635"></a><span class="lineno"> 1635</span>&#160;      EndianScalar(*reinterpret_cast&lt;uoffset_t *&gt;(buf)));</div><div class="line"><a name="l01636"></a><span class="lineno"> 1636</span>&#160;}</div><div class="line"><a name="l01637"></a><span class="lineno"> 1637</span>&#160;</div><div class="line"><a name="l01638"></a><span class="lineno"> 1638</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt; <span class="keyword">const</span> T *GetRoot(<span class="keyword">const</span> <span class="keywordtype">void</span> *buf) {</div><div class="line"><a name="l01639"></a><span class="lineno"> 1639</span>&#160;  <span class="keywordflow">return</span> GetMutableRoot&lt;T&gt;(<span class="keyword">const_cast&lt;</span><span class="keywordtype">void</span> *<span class="keyword">&gt;</span>(buf));</div><div class="line"><a name="l01640"></a><span class="lineno"> 1640</span>&#160;}</div><div class="line"><a name="l01641"></a><span class="lineno"> 1641</span>&#160;</div><div class="line"><a name="l01642"></a><span class="lineno"> 1642</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt; <span class="keyword">const</span> T *GetSizePrefixedRoot(<span class="keyword">const</span> <span class="keywordtype">void</span> *buf) {</div><div class="line"><a name="l01643"></a><span class="lineno"> 1643</span>&#160;  <span class="keywordflow">return</span> GetRoot&lt;T&gt;(<span class="keyword">reinterpret_cast&lt;</span><span class="keyword">const </span>uint8_t *<span class="keyword">&gt;</span>(buf) + <span class="keyword">sizeof</span>(uoffset_t));</div><div class="line"><a name="l01644"></a><span class="lineno"> 1644</span>&#160;}</div><div class="line"><a name="l01645"></a><span class="lineno"> 1645</span>&#160;<span class="comment"></span></div><div class="line"><a name="l01646"></a><span class="lineno"> 1646</span>&#160;<span class="comment">/// Helpers to get a typed pointer to objects that are currently being built.</span></div><div class="line"><a name="l01647"></a><span class="lineno"> 1647</span>&#160;<span class="comment">/// @warning Creating new objects will lead to reallocations and invalidates</span></div><div class="line"><a name="l01648"></a><span class="lineno"> 1648</span>&#160;<span class="comment">/// the pointer!</span></div><div class="line"><a name="l01649"></a><span class="lineno"> 1649</span>&#160;<span class="comment"></span><span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div><div class="line"><a name="l01650"></a><span class="lineno"> 1650</span>&#160;T *GetMutableTemporaryPointer(<a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html">FlatBufferBuilder</a> &amp;fbb, <a class="code" href="structflatbuffers_1_1_offset.html">Offset&lt;T&gt;</a> offset) {</div><div class="line"><a name="l01651"></a><span class="lineno"> 1651</span>&#160;  <span class="keywordflow">return</span> <span class="keyword">reinterpret_cast&lt;</span>T *<span class="keyword">&gt;</span>(fbb.<a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#a099810f03046139d1854d20a1c2a2e41">GetCurrentBufferPointer</a>() + fbb.<a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#a66c8fd33ab9b3b237954c9ea38648f7f">GetSize</a>() -</div><div class="line"><a name="l01652"></a><span class="lineno"> 1652</span>&#160;                               offset.o);</div><div class="line"><a name="l01653"></a><span class="lineno"> 1653</span>&#160;}</div><div class="line"><a name="l01654"></a><span class="lineno"> 1654</span>&#160;</div><div class="line"><a name="l01655"></a><span class="lineno"> 1655</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div><div class="line"><a name="l01656"></a><span class="lineno"> 1656</span>&#160;<span class="keyword">const</span> T *GetTemporaryPointer(<a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html">FlatBufferBuilder</a> &amp;fbb, <a class="code" href="structflatbuffers_1_1_offset.html">Offset&lt;T&gt;</a> offset) {</div><div class="line"><a name="l01657"></a><span class="lineno"> 1657</span>&#160;  <span class="keywordflow">return</span> GetMutableTemporaryPointer&lt;T&gt;(fbb, offset);</div><div class="line"><a name="l01658"></a><span class="lineno"> 1658</span>&#160;}</div><div class="line"><a name="l01659"></a><span class="lineno"> 1659</span>&#160;<span class="comment"></span></div><div class="line"><a name="l01660"></a><span class="lineno"> 1660</span>&#160;<span class="comment">/// @brief Get a pointer to the the file_identifier section of the buffer.</span></div><div class="line"><a name="l01661"></a><span class="lineno"> 1661</span>&#160;<span class="comment">/// @return Returns a const char pointer to the start of the file_identifier</span></div><div class="line"><a name="l01662"></a><span class="lineno"> 1662</span>&#160;<span class="comment">/// characters in the buffer.  The returned char * has length</span></div><div class="line"><a name="l01663"></a><span class="lineno"> 1663</span>&#160;<span class="comment">/// &#39;flatbuffers::FlatBufferBuilder::kFileIdentifierLength&#39;.</span></div><div class="line"><a name="l01664"></a><span class="lineno"> 1664</span>&#160;<span class="comment">/// This function is UNDEFINED for FlatBuffers whose schema does not include</span></div><div class="line"><a name="l01665"></a><span class="lineno"> 1665</span>&#160;<span class="comment">/// a file_identifier (likely points at padding or the start of a the root</span></div><div class="line"><a name="l01666"></a><span class="lineno"> 1666</span>&#160;<span class="comment">/// vtable).</span></div><div class="line"><a name="l01667"></a><span class="lineno"> 1667</span>&#160;<span class="comment"></span><span class="keyword">inline</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *GetBufferIdentifier(<span class="keyword">const</span> <span class="keywordtype">void</span> *buf, <span class="keywordtype">bool</span> size_prefixed = <span class="keyword">false</span>) {</div><div class="line"><a name="l01668"></a><span class="lineno"> 1668</span>&#160;  <span class="keywordflow">return</span> <span class="keyword">reinterpret_cast&lt;</span><span class="keyword">const </span><span class="keywordtype">char</span> *<span class="keyword">&gt;</span>(buf) +</div><div class="line"><a name="l01669"></a><span class="lineno"> 1669</span>&#160;         ((size_prefixed) ? 2 * <span class="keyword">sizeof</span>(uoffset_t) : <span class="keyword">sizeof</span>(uoffset_t));</div><div class="line"><a name="l01670"></a><span class="lineno"> 1670</span>&#160;}</div><div class="line"><a name="l01671"></a><span class="lineno"> 1671</span>&#160;</div><div class="line"><a name="l01672"></a><span class="lineno"> 1672</span>&#160;<span class="comment">// Helper to see if the identifier in a buffer has the expected value.</span></div><div class="line"><a name="l01673"></a><span class="lineno"> 1673</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> BufferHasIdentifier(<span class="keyword">const</span> <span class="keywordtype">void</span> *buf, <span class="keyword">const</span> <span class="keywordtype">char</span> *identifier, <span class="keywordtype">bool</span> size_prefixed = <span class="keyword">false</span>) {</div><div class="line"><a name="l01674"></a><span class="lineno"> 1674</span>&#160;  <span class="keywordflow">return</span> strncmp(GetBufferIdentifier(buf, size_prefixed), identifier,</div><div class="line"><a name="l01675"></a><span class="lineno"> 1675</span>&#160;                 <a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#af8c7583c92e1d1d6f438977da5158d19">FlatBufferBuilder::kFileIdentifierLength</a>) == 0;</div><div class="line"><a name="l01676"></a><span class="lineno"> 1676</span>&#160;}</div><div class="line"><a name="l01677"></a><span class="lineno"> 1677</span>&#160;</div><div class="line"><a name="l01678"></a><span class="lineno"> 1678</span>&#160;<span class="comment">// Helper class to verify the integrity of a FlatBuffer</span></div><div class="line"><a name="l01679"></a><span class="lineno"> 1679</span>&#160;<span class="keyword">class </span>Verifier FLATBUFFERS_FINAL_CLASS {</div><div class="line"><a name="l01680"></a><span class="lineno"> 1680</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l01681"></a><span class="lineno"> 1681</span>&#160;  Verifier(<span class="keyword">const</span> uint8_t *buf, <span class="keywordtype">size_t</span> buf_len, uoffset_t _max_depth = 64,</div><div class="line"><a name="l01682"></a><span class="lineno"> 1682</span>&#160;           uoffset_t _max_tables = 1000000)</div><div class="line"><a name="l01683"></a><span class="lineno"> 1683</span>&#160;      : buf_(buf),</div><div class="line"><a name="l01684"></a><span class="lineno"> 1684</span>&#160;        end_(buf + buf_len),</div><div class="line"><a name="l01685"></a><span class="lineno"> 1685</span>&#160;        depth_(0),</div><div class="line"><a name="l01686"></a><span class="lineno"> 1686</span>&#160;        max_depth_(_max_depth),</div><div class="line"><a name="l01687"></a><span class="lineno"> 1687</span>&#160;        num_tables_(0),</div><div class="line"><a name="l01688"></a><span class="lineno"> 1688</span>&#160;        max_tables_(_max_tables)</div><div class="line"><a name="l01689"></a><span class="lineno"> 1689</span>&#160;  <span class="comment">// clang-format off</span></div><div class="line"><a name="l01690"></a><span class="lineno"> 1690</span>&#160;    <span class="preprocessor">#ifdef FLATBUFFERS_TRACK_VERIFIER_BUFFER_SIZE</span></div><div class="line"><a name="l01691"></a><span class="lineno"> 1691</span>&#160;        , upper_bound_(buf)</div><div class="line"><a name="l01692"></a><span class="lineno"> 1692</span>&#160;    <span class="preprocessor">#endif</span></div><div class="line"><a name="l01693"></a><span class="lineno"> 1693</span>&#160;  <span class="comment">// clang-format on</span></div><div class="line"><a name="l01694"></a><span class="lineno"> 1694</span>&#160;  {</div><div class="line"><a name="l01695"></a><span class="lineno"> 1695</span>&#160;  }</div><div class="line"><a name="l01696"></a><span class="lineno"> 1696</span>&#160;</div><div class="line"><a name="l01697"></a><span class="lineno"> 1697</span>&#160;  <span class="comment">// Central location where any verification failures register.</span></div><div class="line"><a name="l01698"></a><span class="lineno"> 1698</span>&#160;  <span class="keywordtype">bool</span> Check(<span class="keywordtype">bool</span> ok)<span class="keyword"> const </span>{</div><div class="line"><a name="l01699"></a><span class="lineno"> 1699</span>&#160;    <span class="comment">// clang-format off</span></div><div class="line"><a name="l01700"></a><span class="lineno"> 1700</span>&#160;<span class="preprocessor">    #ifdef FLATBUFFERS_DEBUG_VERIFICATION_FAILURE</span></div><div class="line"><a name="l01701"></a><span class="lineno"> 1701</span>&#160;      assert(ok);</div><div class="line"><a name="l01702"></a><span class="lineno"> 1702</span>&#160;<span class="preprocessor">    #endif</span></div><div class="line"><a name="l01703"></a><span class="lineno"> 1703</span>&#160;<span class="preprocessor">    #ifdef FLATBUFFERS_TRACK_VERIFIER_BUFFER_SIZE</span></div><div class="line"><a name="l01704"></a><span class="lineno"> 1704</span>&#160;      <span class="keywordflow">if</span> (!ok)</div><div class="line"><a name="l01705"></a><span class="lineno"> 1705</span>&#160;        upper_bound_ = buf_;</div><div class="line"><a name="l01706"></a><span class="lineno"> 1706</span>&#160;<span class="preprocessor">    #endif</span></div><div class="line"><a name="l01707"></a><span class="lineno"> 1707</span>&#160;    <span class="comment">// clang-format on</span></div><div class="line"><a name="l01708"></a><span class="lineno"> 1708</span>&#160;    <span class="keywordflow">return</span> ok;</div><div class="line"><a name="l01709"></a><span class="lineno"> 1709</span>&#160;  }</div><div class="line"><a name="l01710"></a><span class="lineno"> 1710</span>&#160;</div><div class="line"><a name="l01711"></a><span class="lineno"> 1711</span>&#160;  <span class="comment">// Verify any range within the buffer.</span></div><div class="line"><a name="l01712"></a><span class="lineno"> 1712</span>&#160;  <span class="keywordtype">bool</span> Verify(<span class="keyword">const</span> <span class="keywordtype">void</span> *elem, <span class="keywordtype">size_t</span> elem_len)<span class="keyword"> const </span>{</div><div class="line"><a name="l01713"></a><span class="lineno"> 1713</span>&#160;    <span class="comment">// clang-format off</span></div><div class="line"><a name="l01714"></a><span class="lineno"> 1714</span>&#160;<span class="preprocessor">    #ifdef FLATBUFFERS_TRACK_VERIFIER_BUFFER_SIZE</span></div><div class="line"><a name="l01715"></a><span class="lineno"> 1715</span>&#160;      <span class="keyword">auto</span> upper_bound = <span class="keyword">reinterpret_cast&lt;</span><span class="keyword">const </span>uint8_t *<span class="keyword">&gt;</span>(elem) + elem_len;</div><div class="line"><a name="l01716"></a><span class="lineno"> 1716</span>&#160;      <span class="keywordflow">if</span> (upper_bound_ &lt; upper_bound)</div><div class="line"><a name="l01717"></a><span class="lineno"> 1717</span>&#160;        upper_bound_ =  upper_bound;</div><div class="line"><a name="l01718"></a><span class="lineno"> 1718</span>&#160;<span class="preprocessor">    #endif</span></div><div class="line"><a name="l01719"></a><span class="lineno"> 1719</span>&#160;    <span class="comment">// clang-format on</span></div><div class="line"><a name="l01720"></a><span class="lineno"> 1720</span>&#160;    <span class="keywordflow">return</span> Check(elem_len &lt;= (<span class="keywordtype">size_t</span>)(end_ - buf_) &amp;&amp; elem &gt;= buf_ &amp;&amp;</div><div class="line"><a name="l01721"></a><span class="lineno"> 1721</span>&#160;                 elem &lt;= end_ - elem_len);</div><div class="line"><a name="l01722"></a><span class="lineno"> 1722</span>&#160;  }</div><div class="line"><a name="l01723"></a><span class="lineno"> 1723</span>&#160;</div><div class="line"><a name="l01724"></a><span class="lineno"> 1724</span>&#160;  <span class="comment">// Verify a range indicated by sizeof(T).</span></div><div class="line"><a name="l01725"></a><span class="lineno"> 1725</span>&#160;  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt; <span class="keywordtype">bool</span> Verify(<span class="keyword">const</span> <span class="keywordtype">void</span> *elem)<span class="keyword"> const </span>{</div><div class="line"><a name="l01726"></a><span class="lineno"> 1726</span>&#160;    <span class="keywordflow">return</span> Verify(elem, <span class="keyword">sizeof</span>(T));</div><div class="line"><a name="l01727"></a><span class="lineno"> 1727</span>&#160;  }</div><div class="line"><a name="l01728"></a><span class="lineno"> 1728</span>&#160;</div><div class="line"><a name="l01729"></a><span class="lineno"> 1729</span>&#160;  <span class="comment">// Verify a pointer (may be NULL) of a table type.</span></div><div class="line"><a name="l01730"></a><span class="lineno"> 1730</span>&#160;  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt; <span class="keywordtype">bool</span> VerifyTable(<span class="keyword">const</span> T *table) {</div><div class="line"><a name="l01731"></a><span class="lineno"> 1731</span>&#160;    <span class="keywordflow">return</span> !table || table-&gt;Verify(*<span class="keyword">this</span>);</div><div class="line"><a name="l01732"></a><span class="lineno"> 1732</span>&#160;  }</div><div class="line"><a name="l01733"></a><span class="lineno"> 1733</span>&#160;</div><div class="line"><a name="l01734"></a><span class="lineno"> 1734</span>&#160;  <span class="comment">// Verify a pointer (may be NULL) of any vector type.</span></div><div class="line"><a name="l01735"></a><span class="lineno"> 1735</span>&#160;  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt; <span class="keywordtype">bool</span> Verify(<span class="keyword">const</span> <a class="code" href="classflatbuffers_1_1_vector.html">Vector&lt;T&gt;</a> *vec)<span class="keyword"> const </span>{</div><div class="line"><a name="l01736"></a><span class="lineno"> 1736</span>&#160;    <span class="keyword">const</span> uint8_t *end;</div><div class="line"><a name="l01737"></a><span class="lineno"> 1737</span>&#160;    <span class="keywordflow">return</span> !vec || VerifyVector(reinterpret_cast&lt;const uint8_t *&gt;(vec),</div><div class="line"><a name="l01738"></a><span class="lineno"> 1738</span>&#160;                                <span class="keyword">sizeof</span>(T), &amp;end);</div><div class="line"><a name="l01739"></a><span class="lineno"> 1739</span>&#160;  }</div><div class="line"><a name="l01740"></a><span class="lineno"> 1740</span>&#160;</div><div class="line"><a name="l01741"></a><span class="lineno"> 1741</span>&#160;  <span class="comment">// Verify a pointer (may be NULL) of a vector to struct.</span></div><div class="line"><a name="l01742"></a><span class="lineno"> 1742</span>&#160;  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt; <span class="keywordtype">bool</span> Verify(<span class="keyword">const</span> <a class="code" href="classflatbuffers_1_1_vector.html">Vector&lt;const T *&gt;</a> *vec)<span class="keyword"> const </span>{</div><div class="line"><a name="l01743"></a><span class="lineno"> 1743</span>&#160;    <span class="keywordflow">return</span> Verify(<span class="keyword">reinterpret_cast&lt;</span><span class="keyword">const </span><a class="code" href="classflatbuffers_1_1_vector.html">Vector&lt;T&gt;</a> *<span class="keyword">&gt;</span>(vec));</div><div class="line"><a name="l01744"></a><span class="lineno"> 1744</span>&#160;  }</div><div class="line"><a name="l01745"></a><span class="lineno"> 1745</span>&#160;</div><div class="line"><a name="l01746"></a><span class="lineno"> 1746</span>&#160;  <span class="comment">// Verify a pointer (may be NULL) to string.</span></div><div class="line"><a name="l01747"></a><span class="lineno"> 1747</span>&#160;  <span class="keywordtype">bool</span> Verify(<span class="keyword">const</span> <a class="code" href="structflatbuffers_1_1_string.html">String</a> *str)<span class="keyword"> const </span>{</div><div class="line"><a name="l01748"></a><span class="lineno"> 1748</span>&#160;    <span class="keyword">const</span> uint8_t *end;</div><div class="line"><a name="l01749"></a><span class="lineno"> 1749</span>&#160;    <span class="keywordflow">return</span> !str ||</div><div class="line"><a name="l01750"></a><span class="lineno"> 1750</span>&#160;           (VerifyVector(reinterpret_cast&lt;const uint8_t *&gt;(str), 1, &amp;end) &amp;&amp;</div><div class="line"><a name="l01751"></a><span class="lineno"> 1751</span>&#160;            Verify(end, 1) &amp;&amp;      <span class="comment">// Must have terminator</span></div><div class="line"><a name="l01752"></a><span class="lineno"> 1752</span>&#160;            Check(*end == <span class="charliteral">&#39;\0&#39;</span>));  <span class="comment">// Terminating byte must be 0.</span></div><div class="line"><a name="l01753"></a><span class="lineno"> 1753</span>&#160;  }</div><div class="line"><a name="l01754"></a><span class="lineno"> 1754</span>&#160;</div><div class="line"><a name="l01755"></a><span class="lineno"> 1755</span>&#160;  <span class="comment">// Common code between vectors and strings.</span></div><div class="line"><a name="l01756"></a><span class="lineno"> 1756</span>&#160;  <span class="keywordtype">bool</span> VerifyVector(<span class="keyword">const</span> uint8_t *vec, <span class="keywordtype">size_t</span> elem_size,</div><div class="line"><a name="l01757"></a><span class="lineno"> 1757</span>&#160;                    <span class="keyword">const</span> uint8_t **end)<span class="keyword"> const </span>{</div><div class="line"><a name="l01758"></a><span class="lineno"> 1758</span>&#160;    <span class="comment">// Check we can read the size field.</span></div><div class="line"><a name="l01759"></a><span class="lineno"> 1759</span>&#160;    <span class="keywordflow">if</span> (!Verify&lt;uoffset_t&gt;(vec)) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01760"></a><span class="lineno"> 1760</span>&#160;    <span class="comment">// Check the whole array. If this is a string, the byte past the array</span></div><div class="line"><a name="l01761"></a><span class="lineno"> 1761</span>&#160;    <span class="comment">// must be 0.</span></div><div class="line"><a name="l01762"></a><span class="lineno"> 1762</span>&#160;    <span class="keyword">auto</span> size = ReadScalar&lt;uoffset_t&gt;(vec);</div><div class="line"><a name="l01763"></a><span class="lineno"> 1763</span>&#160;    <span class="keyword">auto</span> max_elems = FLATBUFFERS_MAX_BUFFER_SIZE / elem_size;</div><div class="line"><a name="l01764"></a><span class="lineno"> 1764</span>&#160;    <span class="keywordflow">if</span> (!Check(size &lt; max_elems))</div><div class="line"><a name="l01765"></a><span class="lineno"> 1765</span>&#160;      <span class="keywordflow">return</span> <span class="keyword">false</span>;  <span class="comment">// Protect against byte_size overflowing.</span></div><div class="line"><a name="l01766"></a><span class="lineno"> 1766</span>&#160;    <span class="keyword">auto</span> byte_size = <span class="keyword">sizeof</span>(size) + elem_size * size;</div><div class="line"><a name="l01767"></a><span class="lineno"> 1767</span>&#160;    *end = vec + byte_size;</div><div class="line"><a name="l01768"></a><span class="lineno"> 1768</span>&#160;    <span class="keywordflow">return</span> Verify(vec, byte_size);</div><div class="line"><a name="l01769"></a><span class="lineno"> 1769</span>&#160;  }</div><div class="line"><a name="l01770"></a><span class="lineno"> 1770</span>&#160;</div><div class="line"><a name="l01771"></a><span class="lineno"> 1771</span>&#160;  <span class="comment">// Special case for string contents, after the above has been called.</span></div><div class="line"><a name="l01772"></a><span class="lineno"> 1772</span>&#160;  <span class="keywordtype">bool</span> VerifyVectorOfStrings(<span class="keyword">const</span> <a class="code" href="classflatbuffers_1_1_vector.html">Vector</a>&lt;<a class="code" href="structflatbuffers_1_1_offset.html">Offset&lt;String&gt;</a>&gt; *vec)<span class="keyword"> const </span>{</div><div class="line"><a name="l01773"></a><span class="lineno"> 1773</span>&#160;    <span class="keywordflow">if</span> (vec) {</div><div class="line"><a name="l01774"></a><span class="lineno"> 1774</span>&#160;      <span class="keywordflow">for</span> (uoffset_t i = 0; i &lt; vec-&gt;size(); i++) {</div><div class="line"><a name="l01775"></a><span class="lineno"> 1775</span>&#160;        <span class="keywordflow">if</span> (!Verify(vec-&gt;Get(i))) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01776"></a><span class="lineno"> 1776</span>&#160;      }</div><div class="line"><a name="l01777"></a><span class="lineno"> 1777</span>&#160;    }</div><div class="line"><a name="l01778"></a><span class="lineno"> 1778</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l01779"></a><span class="lineno"> 1779</span>&#160;  }</div><div class="line"><a name="l01780"></a><span class="lineno"> 1780</span>&#160;</div><div class="line"><a name="l01781"></a><span class="lineno"> 1781</span>&#160;  <span class="comment">// Special case for table contents, after the above has been called.</span></div><div class="line"><a name="l01782"></a><span class="lineno"> 1782</span>&#160;  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt; <span class="keywordtype">bool</span> VerifyVectorOfTables(<span class="keyword">const</span> <a class="code" href="classflatbuffers_1_1_vector.html">Vector</a>&lt;<a class="code" href="structflatbuffers_1_1_offset.html">Offset&lt;T&gt;</a>&gt; *vec) {</div><div class="line"><a name="l01783"></a><span class="lineno"> 1783</span>&#160;    <span class="keywordflow">if</span> (vec) {</div><div class="line"><a name="l01784"></a><span class="lineno"> 1784</span>&#160;      <span class="keywordflow">for</span> (uoffset_t i = 0; i &lt; vec-&gt;size(); i++) {</div><div class="line"><a name="l01785"></a><span class="lineno"> 1785</span>&#160;        <span class="keywordflow">if</span> (!vec-&gt;Get(i)-&gt;Verify(*<span class="keyword">this</span>)) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01786"></a><span class="lineno"> 1786</span>&#160;      }</div><div class="line"><a name="l01787"></a><span class="lineno"> 1787</span>&#160;    }</div><div class="line"><a name="l01788"></a><span class="lineno"> 1788</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l01789"></a><span class="lineno"> 1789</span>&#160;  }</div><div class="line"><a name="l01790"></a><span class="lineno"> 1790</span>&#160;</div><div class="line"><a name="l01791"></a><span class="lineno"> 1791</span>&#160;  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div><div class="line"><a name="l01792"></a><span class="lineno"> 1792</span>&#160;  <span class="keywordtype">bool</span> VerifyBufferFromStart(<span class="keyword">const</span> <span class="keywordtype">char</span> *identifier, <span class="keyword">const</span> uint8_t *start) {</div><div class="line"><a name="l01793"></a><span class="lineno"> 1793</span>&#160;    <span class="keywordflow">if</span> (identifier &amp;&amp;</div><div class="line"><a name="l01794"></a><span class="lineno"> 1794</span>&#160;        (<span class="keywordtype">size_t</span>(end_ - start) &lt; 2 * <span class="keyword">sizeof</span>(flatbuffers::uoffset_t) ||</div><div class="line"><a name="l01795"></a><span class="lineno"> 1795</span>&#160;         !BufferHasIdentifier(start, identifier))) {</div><div class="line"><a name="l01796"></a><span class="lineno"> 1796</span>&#160;      <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01797"></a><span class="lineno"> 1797</span>&#160;    }</div><div class="line"><a name="l01798"></a><span class="lineno"> 1798</span>&#160;</div><div class="line"><a name="l01799"></a><span class="lineno"> 1799</span>&#160;    <span class="comment">// Call T::Verify, which must be in the generated code for this type.</span></div><div class="line"><a name="l01800"></a><span class="lineno"> 1800</span>&#160;    <span class="keyword">auto</span> o = VerifyOffset(start);</div><div class="line"><a name="l01801"></a><span class="lineno"> 1801</span>&#160;    <span class="keywordflow">return</span> o &amp;&amp; <span class="keyword">reinterpret_cast&lt;</span><span class="keyword">const </span>T *<span class="keyword">&gt;</span>(start + o)-&gt;Verify(*<span class="keyword">this</span>)</div><div class="line"><a name="l01802"></a><span class="lineno"> 1802</span>&#160;<span class="preprocessor">#ifdef FLATBUFFERS_TRACK_VERIFIER_BUFFER_SIZE</span></div><div class="line"><a name="l01803"></a><span class="lineno"> 1803</span>&#160;           &amp;&amp; GetComputedSize()</div><div class="line"><a name="l01804"></a><span class="lineno"> 1804</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l01805"></a><span class="lineno"> 1805</span>&#160;        ;</div><div class="line"><a name="l01806"></a><span class="lineno"> 1806</span>&#160;  }</div><div class="line"><a name="l01807"></a><span class="lineno"> 1807</span>&#160;</div><div class="line"><a name="l01808"></a><span class="lineno"> 1808</span>&#160;  <span class="comment">// Verify this whole buffer, starting with root type T.</span></div><div class="line"><a name="l01809"></a><span class="lineno"> 1809</span>&#160;  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt; <span class="keywordtype">bool</span> VerifyBuffer() { <span class="keywordflow">return</span> VerifyBuffer&lt;T&gt;(<span class="keyword">nullptr</span>); }</div><div class="line"><a name="l01810"></a><span class="lineno"> 1810</span>&#160;</div><div class="line"><a name="l01811"></a><span class="lineno"> 1811</span>&#160;  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt; <span class="keywordtype">bool</span> VerifyBuffer(<span class="keyword">const</span> <span class="keywordtype">char</span> *identifier) {</div><div class="line"><a name="l01812"></a><span class="lineno"> 1812</span>&#160;    <span class="keywordflow">return</span> VerifyBufferFromStart&lt;T&gt;(identifier, buf_);</div><div class="line"><a name="l01813"></a><span class="lineno"> 1813</span>&#160;  }</div><div class="line"><a name="l01814"></a><span class="lineno"> 1814</span>&#160;</div><div class="line"><a name="l01815"></a><span class="lineno"> 1815</span>&#160;  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt; <span class="keywordtype">bool</span> VerifySizePrefixedBuffer(<span class="keyword">const</span> <span class="keywordtype">char</span> *identifier) {</div><div class="line"><a name="l01816"></a><span class="lineno"> 1816</span>&#160;    <span class="keywordflow">return</span> Verify&lt;uoffset_t&gt;(buf_) &amp;&amp;</div><div class="line"><a name="l01817"></a><span class="lineno"> 1817</span>&#160;           ReadScalar&lt;uoffset_t&gt;(buf_) == end_ - buf_ - <span class="keyword">sizeof</span>(uoffset_t) &amp;&amp;</div><div class="line"><a name="l01818"></a><span class="lineno"> 1818</span>&#160;           VerifyBufferFromStart&lt;T&gt;(identifier, buf_ + <span class="keyword">sizeof</span>(uoffset_t));</div><div class="line"><a name="l01819"></a><span class="lineno"> 1819</span>&#160;  }</div><div class="line"><a name="l01820"></a><span class="lineno"> 1820</span>&#160;</div><div class="line"><a name="l01821"></a><span class="lineno"> 1821</span>&#160;  uoffset_t VerifyOffset(<span class="keyword">const</span> uint8_t *start)<span class="keyword"> const </span>{</div><div class="line"><a name="l01822"></a><span class="lineno"> 1822</span>&#160;    <span class="keywordflow">if</span> (!Verify&lt;uoffset_t&gt;(start)) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01823"></a><span class="lineno"> 1823</span>&#160;    <span class="keyword">auto</span> o = ReadScalar&lt;uoffset_t&gt;(start);</div><div class="line"><a name="l01824"></a><span class="lineno"> 1824</span>&#160;    Check(o != 0);</div><div class="line"><a name="l01825"></a><span class="lineno"> 1825</span>&#160;    <span class="keywordflow">return</span> o;</div><div class="line"><a name="l01826"></a><span class="lineno"> 1826</span>&#160;  }</div><div class="line"><a name="l01827"></a><span class="lineno"> 1827</span>&#160;</div><div class="line"><a name="l01828"></a><span class="lineno"> 1828</span>&#160;  <span class="comment">// Called at the start of a table to increase counters measuring data</span></div><div class="line"><a name="l01829"></a><span class="lineno"> 1829</span>&#160;  <span class="comment">// structure depth and amount, and possibly bails out with false if</span></div><div class="line"><a name="l01830"></a><span class="lineno"> 1830</span>&#160;  <span class="comment">// limits set by the constructor have been hit. Needs to be balanced</span></div><div class="line"><a name="l01831"></a><span class="lineno"> 1831</span>&#160;  <span class="comment">// with EndTable().</span></div><div class="line"><a name="l01832"></a><span class="lineno"> 1832</span>&#160;  <span class="keywordtype">bool</span> VerifyComplexity() {</div><div class="line"><a name="l01833"></a><span class="lineno"> 1833</span>&#160;    depth_++;</div><div class="line"><a name="l01834"></a><span class="lineno"> 1834</span>&#160;    num_tables_++;</div><div class="line"><a name="l01835"></a><span class="lineno"> 1835</span>&#160;    <span class="keywordflow">return</span> Check(depth_ &lt;= max_depth_ &amp;&amp; num_tables_ &lt;= max_tables_);</div><div class="line"><a name="l01836"></a><span class="lineno"> 1836</span>&#160;  }</div><div class="line"><a name="l01837"></a><span class="lineno"> 1837</span>&#160;</div><div class="line"><a name="l01838"></a><span class="lineno"> 1838</span>&#160;  <span class="comment">// Called at the end of a table to pop the depth count.</span></div><div class="line"><a name="l01839"></a><span class="lineno"> 1839</span>&#160;  <span class="keywordtype">bool</span> EndTable() {</div><div class="line"><a name="l01840"></a><span class="lineno"> 1840</span>&#160;    depth_--;</div><div class="line"><a name="l01841"></a><span class="lineno"> 1841</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l01842"></a><span class="lineno"> 1842</span>&#160;  }</div><div class="line"><a name="l01843"></a><span class="lineno"> 1843</span>&#160;</div><div class="line"><a name="l01844"></a><span class="lineno"> 1844</span>&#160;  <span class="comment">// clang-format off</span></div><div class="line"><a name="l01845"></a><span class="lineno"> 1845</span>&#160;<span class="preprocessor">  #ifdef FLATBUFFERS_TRACK_VERIFIER_BUFFER_SIZE</span></div><div class="line"><a name="l01846"></a><span class="lineno"> 1846</span>&#160;  <span class="comment">// Returns the message size in bytes</span></div><div class="line"><a name="l01847"></a><span class="lineno"> 1847</span>&#160;  <span class="keywordtype">size_t</span> GetComputedSize()<span class="keyword"> const </span>{</div><div class="line"><a name="l01848"></a><span class="lineno"> 1848</span>&#160;    uintptr_t size = upper_bound_ - buf_;</div><div class="line"><a name="l01849"></a><span class="lineno"> 1849</span>&#160;    <span class="comment">// Align the size to uoffset_t</span></div><div class="line"><a name="l01850"></a><span class="lineno"> 1850</span>&#160;    size = (size - 1 + <span class="keyword">sizeof</span>(uoffset_t)) &amp; ~(<span class="keyword">sizeof</span>(uoffset_t) - 1);</div><div class="line"><a name="l01851"></a><span class="lineno"> 1851</span>&#160;    <span class="keywordflow">return</span> (buf_  + size &gt; end_) ?  0 : size;</div><div class="line"><a name="l01852"></a><span class="lineno"> 1852</span>&#160;  }</div><div class="line"><a name="l01853"></a><span class="lineno"> 1853</span>&#160;<span class="preprocessor">  #endif</span></div><div class="line"><a name="l01854"></a><span class="lineno"> 1854</span>&#160;  <span class="comment">// clang-format on</span></div><div class="line"><a name="l01855"></a><span class="lineno"> 1855</span>&#160;</div><div class="line"><a name="l01856"></a><span class="lineno"> 1856</span>&#160; <span class="keyword">private</span>:</div><div class="line"><a name="l01857"></a><span class="lineno"> 1857</span>&#160;  <span class="keyword">const</span> uint8_t *buf_;</div><div class="line"><a name="l01858"></a><span class="lineno"> 1858</span>&#160;  <span class="keyword">const</span> uint8_t *end_;</div><div class="line"><a name="l01859"></a><span class="lineno"> 1859</span>&#160;  uoffset_t depth_;</div><div class="line"><a name="l01860"></a><span class="lineno"> 1860</span>&#160;  uoffset_t max_depth_;</div><div class="line"><a name="l01861"></a><span class="lineno"> 1861</span>&#160;  uoffset_t num_tables_;</div><div class="line"><a name="l01862"></a><span class="lineno"> 1862</span>&#160;  uoffset_t max_tables_;</div><div class="line"><a name="l01863"></a><span class="lineno"> 1863</span>&#160;  <span class="comment">// clang-format off</span></div><div class="line"><a name="l01864"></a><span class="lineno"> 1864</span>&#160;<span class="preprocessor">  #ifdef FLATBUFFERS_TRACK_VERIFIER_BUFFER_SIZE</span></div><div class="line"><a name="l01865"></a><span class="lineno"> 1865</span>&#160;    <span class="keyword">mutable</span> <span class="keyword">const</span> uint8_t *upper_bound_;</div><div class="line"><a name="l01866"></a><span class="lineno"> 1866</span>&#160;<span class="preprocessor">  #endif</span></div><div class="line"><a name="l01867"></a><span class="lineno"> 1867</span>&#160;  <span class="comment">// clang-format on</span></div><div class="line"><a name="l01868"></a><span class="lineno"> 1868</span>&#160;};</div><div class="line"><a name="l01869"></a><span class="lineno"> 1869</span>&#160;</div><div class="line"><a name="l01870"></a><span class="lineno"> 1870</span>&#160;<span class="comment">// Convenient way to bundle a buffer and its length, to pass it around</span></div><div class="line"><a name="l01871"></a><span class="lineno"> 1871</span>&#160;<span class="comment">// typed by its root.</span></div><div class="line"><a name="l01872"></a><span class="lineno"> 1872</span>&#160;<span class="comment">// A BufferRef does not own its buffer.</span></div><div class="line"><a name="l01873"></a><span class="lineno"> 1873</span>&#160;<span class="keyword">struct </span>BufferRefBase {};  <span class="comment">// for std::is_base_of</span></div><div class="line"><a name="l01874"></a><span class="lineno"> 1874</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt; <span class="keyword">struct </span>BufferRef : BufferRefBase {</div><div class="line"><a name="l01875"></a><span class="lineno"> 1875</span>&#160;  BufferRef() : buf(<span class="keyword">nullptr</span>), len(0), must_free(<span class="keyword">false</span>) {}</div><div class="line"><a name="l01876"></a><span class="lineno"> 1876</span>&#160;  BufferRef(uint8_t *_buf, uoffset_t _len)</div><div class="line"><a name="l01877"></a><span class="lineno"> 1877</span>&#160;      : buf(_buf), len(_len), must_free(<span class="keyword">false</span>) {}</div><div class="line"><a name="l01878"></a><span class="lineno"> 1878</span>&#160;</div><div class="line"><a name="l01879"></a><span class="lineno"> 1879</span>&#160;  ~BufferRef() {</div><div class="line"><a name="l01880"></a><span class="lineno"> 1880</span>&#160;    <span class="keywordflow">if</span> (must_free) free(buf);</div><div class="line"><a name="l01881"></a><span class="lineno"> 1881</span>&#160;  }</div><div class="line"><a name="l01882"></a><span class="lineno"> 1882</span>&#160;</div><div class="line"><a name="l01883"></a><span class="lineno"> 1883</span>&#160;  <span class="keyword">const</span> T *GetRoot()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> flatbuffers::GetRoot&lt;T&gt;(buf); }</div><div class="line"><a name="l01884"></a><span class="lineno"> 1884</span>&#160;</div><div class="line"><a name="l01885"></a><span class="lineno"> 1885</span>&#160;  <span class="keywordtype">bool</span> Verify() {</div><div class="line"><a name="l01886"></a><span class="lineno"> 1886</span>&#160;    Verifier verifier(buf, len);</div><div class="line"><a name="l01887"></a><span class="lineno"> 1887</span>&#160;    <span class="keywordflow">return</span> verifier.VerifyBuffer&lt;T&gt;(<span class="keyword">nullptr</span>);</div><div class="line"><a name="l01888"></a><span class="lineno"> 1888</span>&#160;  }</div><div class="line"><a name="l01889"></a><span class="lineno"> 1889</span>&#160;</div><div class="line"><a name="l01890"></a><span class="lineno"> 1890</span>&#160;  uint8_t *buf;</div><div class="line"><a name="l01891"></a><span class="lineno"> 1891</span>&#160;  uoffset_t len;</div><div class="line"><a name="l01892"></a><span class="lineno"> 1892</span>&#160;  <span class="keywordtype">bool</span> must_free;</div><div class="line"><a name="l01893"></a><span class="lineno"> 1893</span>&#160;};</div><div class="line"><a name="l01894"></a><span class="lineno"> 1894</span>&#160;</div><div class="line"><a name="l01895"></a><span class="lineno"> 1895</span>&#160;<span class="comment">// &quot;structs&quot; are flat structures that do not have an offset table, thus</span></div><div class="line"><a name="l01896"></a><span class="lineno"> 1896</span>&#160;<span class="comment">// always have all members present and do not support forwards/backwards</span></div><div class="line"><a name="l01897"></a><span class="lineno"> 1897</span>&#160;<span class="comment">// compatible extensions.</span></div><div class="line"><a name="l01898"></a><span class="lineno"> 1898</span>&#160;</div><div class="line"><a name="l01899"></a><span class="lineno"> 1899</span>&#160;<span class="keyword">class </span>Struct FLATBUFFERS_FINAL_CLASS {</div><div class="line"><a name="l01900"></a><span class="lineno"> 1900</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l01901"></a><span class="lineno"> 1901</span>&#160;  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt; T GetField(uoffset_t o)<span class="keyword"> const </span>{</div><div class="line"><a name="l01902"></a><span class="lineno"> 1902</span>&#160;    <span class="keywordflow">return</span> ReadScalar&lt;T&gt;(&amp;data_[o]);</div><div class="line"><a name="l01903"></a><span class="lineno"> 1903</span>&#160;  }</div><div class="line"><a name="l01904"></a><span class="lineno"> 1904</span>&#160;</div><div class="line"><a name="l01905"></a><span class="lineno"> 1905</span>&#160;  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt; T GetStruct(uoffset_t o)<span class="keyword"> const </span>{</div><div class="line"><a name="l01906"></a><span class="lineno"> 1906</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">reinterpret_cast&lt;</span>T<span class="keyword">&gt;</span>(&amp;data_[o]);</div><div class="line"><a name="l01907"></a><span class="lineno"> 1907</span>&#160;  }</div><div class="line"><a name="l01908"></a><span class="lineno"> 1908</span>&#160;</div><div class="line"><a name="l01909"></a><span class="lineno"> 1909</span>&#160;  <span class="keyword">const</span> uint8_t *GetAddressOf(uoffset_t o)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> &amp;data_[o]; }</div><div class="line"><a name="l01910"></a><span class="lineno"> 1910</span>&#160;  uint8_t *GetAddressOf(uoffset_t o) { <span class="keywordflow">return</span> &amp;data_[o]; }</div><div class="line"><a name="l01911"></a><span class="lineno"> 1911</span>&#160;</div><div class="line"><a name="l01912"></a><span class="lineno"> 1912</span>&#160; <span class="keyword">private</span>:</div><div class="line"><a name="l01913"></a><span class="lineno"> 1913</span>&#160;  uint8_t data_[1];</div><div class="line"><a name="l01914"></a><span class="lineno"> 1914</span>&#160;};</div><div class="line"><a name="l01915"></a><span class="lineno"> 1915</span>&#160;</div><div class="line"><a name="l01916"></a><span class="lineno"> 1916</span>&#160;<span class="comment">// &quot;tables&quot; use an offset table (possibly shared) that allows fields to be</span></div><div class="line"><a name="l01917"></a><span class="lineno"> 1917</span>&#160;<span class="comment">// omitted and added at will, but uses an extra indirection to read.</span></div><div class="line"><a name="l01918"></a><span class="lineno"> 1918</span>&#160;<span class="keyword">class </span>Table {</div><div class="line"><a name="l01919"></a><span class="lineno"> 1919</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l01920"></a><span class="lineno"> 1920</span>&#160;  <span class="keyword">const</span> uint8_t *GetVTable()<span class="keyword"> const </span>{</div><div class="line"><a name="l01921"></a><span class="lineno"> 1921</span>&#160;    <span class="keywordflow">return</span> data_ - ReadScalar&lt;soffset_t&gt;(data_);</div><div class="line"><a name="l01922"></a><span class="lineno"> 1922</span>&#160;  }</div><div class="line"><a name="l01923"></a><span class="lineno"> 1923</span>&#160;</div><div class="line"><a name="l01924"></a><span class="lineno"> 1924</span>&#160;  <span class="comment">// This gets the field offset for any of the functions below it, or 0</span></div><div class="line"><a name="l01925"></a><span class="lineno"> 1925</span>&#160;  <span class="comment">// if the field was not present.</span></div><div class="line"><a name="l01926"></a><span class="lineno"> 1926</span>&#160;  voffset_t GetOptionalFieldOffset(voffset_t field)<span class="keyword"> const </span>{</div><div class="line"><a name="l01927"></a><span class="lineno"> 1927</span>&#160;    <span class="comment">// The vtable offset is always at the start.</span></div><div class="line"><a name="l01928"></a><span class="lineno"> 1928</span>&#160;    <span class="keyword">auto</span> vtable = GetVTable();</div><div class="line"><a name="l01929"></a><span class="lineno"> 1929</span>&#160;    <span class="comment">// The first element is the size of the vtable (fields + type id + itself).</span></div><div class="line"><a name="l01930"></a><span class="lineno"> 1930</span>&#160;    <span class="keyword">auto</span> vtsize = ReadScalar&lt;voffset_t&gt;(vtable);</div><div class="line"><a name="l01931"></a><span class="lineno"> 1931</span>&#160;    <span class="comment">// If the field we&#39;re accessing is outside the vtable, we&#39;re reading older</span></div><div class="line"><a name="l01932"></a><span class="lineno"> 1932</span>&#160;    <span class="comment">// data, so it&#39;s the same as if the offset was 0 (not present).</span></div><div class="line"><a name="l01933"></a><span class="lineno"> 1933</span>&#160;    <span class="keywordflow">return</span> field &lt; vtsize ? ReadScalar&lt;voffset_t&gt;(vtable + field) : 0;</div><div class="line"><a name="l01934"></a><span class="lineno"> 1934</span>&#160;  }</div><div class="line"><a name="l01935"></a><span class="lineno"> 1935</span>&#160;</div><div class="line"><a name="l01936"></a><span class="lineno"> 1936</span>&#160;  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt; T GetField(voffset_t field, T defaultval)<span class="keyword"> const </span>{</div><div class="line"><a name="l01937"></a><span class="lineno"> 1937</span>&#160;    <span class="keyword">auto</span> field_offset = GetOptionalFieldOffset(field);</div><div class="line"><a name="l01938"></a><span class="lineno"> 1938</span>&#160;    <span class="keywordflow">return</span> field_offset ? ReadScalar&lt;T&gt;(data_ + field_offset) : defaultval;</div><div class="line"><a name="l01939"></a><span class="lineno"> 1939</span>&#160;  }</div><div class="line"><a name="l01940"></a><span class="lineno"> 1940</span>&#160;</div><div class="line"><a name="l01941"></a><span class="lineno"> 1941</span>&#160;  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> P&gt; P GetPointer(voffset_t field) {</div><div class="line"><a name="l01942"></a><span class="lineno"> 1942</span>&#160;    <span class="keyword">auto</span> field_offset = GetOptionalFieldOffset(field);</div><div class="line"><a name="l01943"></a><span class="lineno"> 1943</span>&#160;    <span class="keyword">auto</span> p = data_ + field_offset;</div><div class="line"><a name="l01944"></a><span class="lineno"> 1944</span>&#160;    <span class="keywordflow">return</span> field_offset ? <span class="keyword">reinterpret_cast&lt;</span>P<span class="keyword">&gt;</span>(p + ReadScalar&lt;uoffset_t&gt;(p))</div><div class="line"><a name="l01945"></a><span class="lineno"> 1945</span>&#160;                        : <span class="keyword">nullptr</span>;</div><div class="line"><a name="l01946"></a><span class="lineno"> 1946</span>&#160;  }</div><div class="line"><a name="l01947"></a><span class="lineno"> 1947</span>&#160;  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> P&gt; P GetPointer(voffset_t field)<span class="keyword"> const </span>{</div><div class="line"><a name="l01948"></a><span class="lineno"> 1948</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">const_cast&lt;</span>Table *<span class="keyword">&gt;</span>(<span class="keyword">this</span>)-&gt;GetPointer&lt;P&gt;(field);</div><div class="line"><a name="l01949"></a><span class="lineno"> 1949</span>&#160;  }</div><div class="line"><a name="l01950"></a><span class="lineno"> 1950</span>&#160;</div><div class="line"><a name="l01951"></a><span class="lineno"> 1951</span>&#160;  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> P&gt; P GetStruct(voffset_t field)<span class="keyword"> const </span>{</div><div class="line"><a name="l01952"></a><span class="lineno"> 1952</span>&#160;    <span class="keyword">auto</span> field_offset = GetOptionalFieldOffset(field);</div><div class="line"><a name="l01953"></a><span class="lineno"> 1953</span>&#160;    <span class="keyword">auto</span> p = <span class="keyword">const_cast&lt;</span>uint8_t *<span class="keyword">&gt;</span>(data_ + field_offset);</div><div class="line"><a name="l01954"></a><span class="lineno"> 1954</span>&#160;    <span class="keywordflow">return</span> field_offset ? <span class="keyword">reinterpret_cast&lt;</span>P<span class="keyword">&gt;</span>(p) : <span class="keyword">nullptr</span>;</div><div class="line"><a name="l01955"></a><span class="lineno"> 1955</span>&#160;  }</div><div class="line"><a name="l01956"></a><span class="lineno"> 1956</span>&#160;</div><div class="line"><a name="l01957"></a><span class="lineno"> 1957</span>&#160;  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt; <span class="keywordtype">bool</span> SetField(voffset_t field, T val, T def) {</div><div class="line"><a name="l01958"></a><span class="lineno"> 1958</span>&#160;    <span class="keyword">auto</span> field_offset = GetOptionalFieldOffset(field);</div><div class="line"><a name="l01959"></a><span class="lineno"> 1959</span>&#160;    <span class="keywordflow">if</span> (!field_offset) <span class="keywordflow">return</span> val == def;</div><div class="line"><a name="l01960"></a><span class="lineno"> 1960</span>&#160;    WriteScalar(data_ + field_offset, val);</div><div class="line"><a name="l01961"></a><span class="lineno"> 1961</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l01962"></a><span class="lineno"> 1962</span>&#160;  }</div><div class="line"><a name="l01963"></a><span class="lineno"> 1963</span>&#160;</div><div class="line"><a name="l01964"></a><span class="lineno"> 1964</span>&#160;  <span class="keywordtype">bool</span> SetPointer(voffset_t field, <span class="keyword">const</span> uint8_t *val) {</div><div class="line"><a name="l01965"></a><span class="lineno"> 1965</span>&#160;    <span class="keyword">auto</span> field_offset = GetOptionalFieldOffset(field);</div><div class="line"><a name="l01966"></a><span class="lineno"> 1966</span>&#160;    <span class="keywordflow">if</span> (!field_offset) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01967"></a><span class="lineno"> 1967</span>&#160;    WriteScalar(data_ + field_offset,</div><div class="line"><a name="l01968"></a><span class="lineno"> 1968</span>&#160;                static_cast&lt;uoffset_t&gt;(val - (data_ + field_offset)));</div><div class="line"><a name="l01969"></a><span class="lineno"> 1969</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l01970"></a><span class="lineno"> 1970</span>&#160;  }</div><div class="line"><a name="l01971"></a><span class="lineno"> 1971</span>&#160;</div><div class="line"><a name="l01972"></a><span class="lineno"> 1972</span>&#160;  uint8_t *GetAddressOf(voffset_t field) {</div><div class="line"><a name="l01973"></a><span class="lineno"> 1973</span>&#160;    <span class="keyword">auto</span> field_offset = GetOptionalFieldOffset(field);</div><div class="line"><a name="l01974"></a><span class="lineno"> 1974</span>&#160;    <span class="keywordflow">return</span> field_offset ? data_ + field_offset : <span class="keyword">nullptr</span>;</div><div class="line"><a name="l01975"></a><span class="lineno"> 1975</span>&#160;  }</div><div class="line"><a name="l01976"></a><span class="lineno"> 1976</span>&#160;  <span class="keyword">const</span> uint8_t *GetAddressOf(voffset_t field)<span class="keyword"> const </span>{</div><div class="line"><a name="l01977"></a><span class="lineno"> 1977</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">const_cast&lt;</span>Table *<span class="keyword">&gt;</span>(<span class="keyword">this</span>)-&gt;GetAddressOf(field);</div><div class="line"><a name="l01978"></a><span class="lineno"> 1978</span>&#160;  }</div><div class="line"><a name="l01979"></a><span class="lineno"> 1979</span>&#160;</div><div class="line"><a name="l01980"></a><span class="lineno"> 1980</span>&#160;  <span class="keywordtype">bool</span> CheckField(voffset_t field)<span class="keyword"> const </span>{</div><div class="line"><a name="l01981"></a><span class="lineno"> 1981</span>&#160;    <span class="keywordflow">return</span> GetOptionalFieldOffset(field) != 0;</div><div class="line"><a name="l01982"></a><span class="lineno"> 1982</span>&#160;  }</div><div class="line"><a name="l01983"></a><span class="lineno"> 1983</span>&#160;</div><div class="line"><a name="l01984"></a><span class="lineno"> 1984</span>&#160;  <span class="comment">// Verify the vtable of this table.</span></div><div class="line"><a name="l01985"></a><span class="lineno"> 1985</span>&#160;  <span class="comment">// Call this once per table, followed by VerifyField once per field.</span></div><div class="line"><a name="l01986"></a><span class="lineno"> 1986</span>&#160;  <span class="keywordtype">bool</span> VerifyTableStart(Verifier &amp;verifier)<span class="keyword"> const </span>{</div><div class="line"><a name="l01987"></a><span class="lineno"> 1987</span>&#160;    <span class="comment">// Check the vtable offset.</span></div><div class="line"><a name="l01988"></a><span class="lineno"> 1988</span>&#160;    <span class="keywordflow">if</span> (!verifier.Verify&lt;soffset_t&gt;(data_)) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01989"></a><span class="lineno"> 1989</span>&#160;    <span class="keyword">auto</span> vtable = GetVTable();</div><div class="line"><a name="l01990"></a><span class="lineno"> 1990</span>&#160;    <span class="comment">// Check the vtable size field, then check vtable fits in its entirety.</span></div><div class="line"><a name="l01991"></a><span class="lineno"> 1991</span>&#160;    <span class="keywordflow">return</span> verifier.VerifyComplexity() &amp;&amp; verifier.Verify&lt;voffset_t&gt;(vtable) &amp;&amp;</div><div class="line"><a name="l01992"></a><span class="lineno"> 1992</span>&#160;           (ReadScalar&lt;voffset_t&gt;(vtable) &amp; (<span class="keyword">sizeof</span>(voffset_t) - 1)) == 0 &amp;&amp;</div><div class="line"><a name="l01993"></a><span class="lineno"> 1993</span>&#160;           verifier.Verify(vtable, ReadScalar&lt;voffset_t&gt;(vtable));</div><div class="line"><a name="l01994"></a><span class="lineno"> 1994</span>&#160;  }</div><div class="line"><a name="l01995"></a><span class="lineno"> 1995</span>&#160;</div><div class="line"><a name="l01996"></a><span class="lineno"> 1996</span>&#160;  <span class="comment">// Verify a particular field.</span></div><div class="line"><a name="l01997"></a><span class="lineno"> 1997</span>&#160;  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div><div class="line"><a name="l01998"></a><span class="lineno"> 1998</span>&#160;  <span class="keywordtype">bool</span> VerifyField(<span class="keyword">const</span> Verifier &amp;verifier, voffset_t field)<span class="keyword"> const </span>{</div><div class="line"><a name="l01999"></a><span class="lineno"> 1999</span>&#160;    <span class="comment">// Calling GetOptionalFieldOffset should be safe now thanks to</span></div><div class="line"><a name="l02000"></a><span class="lineno"> 2000</span>&#160;    <span class="comment">// VerifyTable().</span></div><div class="line"><a name="l02001"></a><span class="lineno"> 2001</span>&#160;    <span class="keyword">auto</span> field_offset = GetOptionalFieldOffset(field);</div><div class="line"><a name="l02002"></a><span class="lineno"> 2002</span>&#160;    <span class="comment">// Check the actual field.</span></div><div class="line"><a name="l02003"></a><span class="lineno"> 2003</span>&#160;    <span class="keywordflow">return</span> !field_offset || verifier.Verify&lt;T&gt;(data_ + field_offset);</div><div class="line"><a name="l02004"></a><span class="lineno"> 2004</span>&#160;  }</div><div class="line"><a name="l02005"></a><span class="lineno"> 2005</span>&#160;</div><div class="line"><a name="l02006"></a><span class="lineno"> 2006</span>&#160;  <span class="comment">// VerifyField for required fields.</span></div><div class="line"><a name="l02007"></a><span class="lineno"> 2007</span>&#160;  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div><div class="line"><a name="l02008"></a><span class="lineno"> 2008</span>&#160;  <span class="keywordtype">bool</span> VerifyFieldRequired(<span class="keyword">const</span> Verifier &amp;verifier, voffset_t field)<span class="keyword"> const </span>{</div><div class="line"><a name="l02009"></a><span class="lineno"> 2009</span>&#160;    <span class="keyword">auto</span> field_offset = GetOptionalFieldOffset(field);</div><div class="line"><a name="l02010"></a><span class="lineno"> 2010</span>&#160;    <span class="keywordflow">return</span> verifier.Check(field_offset != 0) &amp;&amp;</div><div class="line"><a name="l02011"></a><span class="lineno"> 2011</span>&#160;           verifier.Verify&lt;T&gt;(data_ + field_offset);</div><div class="line"><a name="l02012"></a><span class="lineno"> 2012</span>&#160;  }</div><div class="line"><a name="l02013"></a><span class="lineno"> 2013</span>&#160;</div><div class="line"><a name="l02014"></a><span class="lineno"> 2014</span>&#160;  <span class="comment">// Versions for offsets.</span></div><div class="line"><a name="l02015"></a><span class="lineno"> 2015</span>&#160;  <span class="keywordtype">bool</span> VerifyOffset(<span class="keyword">const</span> Verifier &amp;verifier, voffset_t field)<span class="keyword"> const </span>{</div><div class="line"><a name="l02016"></a><span class="lineno"> 2016</span>&#160;    <span class="keyword">auto</span> field_offset = GetOptionalFieldOffset(field);</div><div class="line"><a name="l02017"></a><span class="lineno"> 2017</span>&#160;    <span class="keywordflow">return</span> !field_offset || verifier.VerifyOffset(data_ + field_offset);</div><div class="line"><a name="l02018"></a><span class="lineno"> 2018</span>&#160;  }</div><div class="line"><a name="l02019"></a><span class="lineno"> 2019</span>&#160;</div><div class="line"><a name="l02020"></a><span class="lineno"> 2020</span>&#160;  <span class="keywordtype">bool</span> VerifyOffsetRequired(<span class="keyword">const</span> Verifier &amp;verifier, voffset_t field)<span class="keyword"> const </span>{</div><div class="line"><a name="l02021"></a><span class="lineno"> 2021</span>&#160;    <span class="keyword">auto</span> field_offset = GetOptionalFieldOffset(field);</div><div class="line"><a name="l02022"></a><span class="lineno"> 2022</span>&#160;    <span class="keywordflow">return</span> verifier.Check(field_offset != 0) &amp;&amp;</div><div class="line"><a name="l02023"></a><span class="lineno"> 2023</span>&#160;           verifier.VerifyOffset(data_ + field_offset);</div><div class="line"><a name="l02024"></a><span class="lineno"> 2024</span>&#160;  }</div><div class="line"><a name="l02025"></a><span class="lineno"> 2025</span>&#160;</div><div class="line"><a name="l02026"></a><span class="lineno"> 2026</span>&#160; <span class="keyword">private</span>:</div><div class="line"><a name="l02027"></a><span class="lineno"> 2027</span>&#160;  <span class="comment">// private constructor &amp; copy constructor: you obtain instances of this</span></div><div class="line"><a name="l02028"></a><span class="lineno"> 2028</span>&#160;  <span class="comment">// class by pointing to existing data only</span></div><div class="line"><a name="l02029"></a><span class="lineno"> 2029</span>&#160;  Table();</div><div class="line"><a name="l02030"></a><span class="lineno"> 2030</span>&#160;  Table(<span class="keyword">const</span> Table &amp;other);</div><div class="line"><a name="l02031"></a><span class="lineno"> 2031</span>&#160;</div><div class="line"><a name="l02032"></a><span class="lineno"> 2032</span>&#160;  uint8_t data_[1];</div><div class="line"><a name="l02033"></a><span class="lineno"> 2033</span>&#160;};</div><div class="line"><a name="l02034"></a><span class="lineno"> 2034</span>&#160;<span class="comment"></span></div><div class="line"><a name="l02035"></a><span class="lineno"> 2035</span>&#160;<span class="comment">/// @brief This can compute the start of a FlatBuffer from a root pointer, i.e.</span></div><div class="line"><a name="l02036"></a><span class="lineno"> 2036</span>&#160;<span class="comment">/// it is the opposite transformation of GetRoot().</span></div><div class="line"><a name="l02037"></a><span class="lineno"> 2037</span>&#160;<span class="comment">/// This may be useful if you want to pass on a root and have the recipient</span></div><div class="line"><a name="l02038"></a><span class="lineno"> 2038</span>&#160;<span class="comment">/// delete the buffer afterwards.</span></div><div class="line"><a name="l02039"></a><span class="lineno"> 2039</span>&#160;<span class="comment"></span><span class="keyword">inline</span> <span class="keyword">const</span> uint8_t *GetBufferStartFromRootPointer(<span class="keyword">const</span> <span class="keywordtype">void</span> *root) {</div><div class="line"><a name="l02040"></a><span class="lineno"> 2040</span>&#160;  <span class="keyword">auto</span> table = <span class="keyword">reinterpret_cast&lt;</span><span class="keyword">const </span>Table *<span class="keyword">&gt;</span>(root);</div><div class="line"><a name="l02041"></a><span class="lineno"> 2041</span>&#160;  <span class="keyword">auto</span> vtable = table-&gt;GetVTable();</div><div class="line"><a name="l02042"></a><span class="lineno"> 2042</span>&#160;  <span class="comment">// Either the vtable is before the root or after the root.</span></div><div class="line"><a name="l02043"></a><span class="lineno"> 2043</span>&#160;  <span class="keyword">auto</span> start = (std::min)(vtable, reinterpret_cast&lt;const uint8_t *&gt;(root));</div><div class="line"><a name="l02044"></a><span class="lineno"> 2044</span>&#160;  <span class="comment">// Align to at least sizeof(uoffset_t).</span></div><div class="line"><a name="l02045"></a><span class="lineno"> 2045</span>&#160;  start = <span class="keyword">reinterpret_cast&lt;</span><span class="keyword">const </span>uint8_t *<span class="keyword">&gt;</span>(<span class="keyword">reinterpret_cast&lt;</span>uintptr_t<span class="keyword">&gt;</span>(start) &amp;</div><div class="line"><a name="l02046"></a><span class="lineno"> 2046</span>&#160;                                            ~(<span class="keyword">sizeof</span>(uoffset_t) - 1));</div><div class="line"><a name="l02047"></a><span class="lineno"> 2047</span>&#160;  <span class="comment">// Additionally, there may be a file_identifier in the buffer, and the root</span></div><div class="line"><a name="l02048"></a><span class="lineno"> 2048</span>&#160;  <span class="comment">// offset. The buffer may have been aligned to any size between</span></div><div class="line"><a name="l02049"></a><span class="lineno"> 2049</span>&#160;  <span class="comment">// sizeof(uoffset_t) and FLATBUFFERS_MAX_ALIGNMENT (see &quot;force_align&quot;).</span></div><div class="line"><a name="l02050"></a><span class="lineno"> 2050</span>&#160;  <span class="comment">// Sadly, the exact alignment is only known when constructing the buffer,</span></div><div class="line"><a name="l02051"></a><span class="lineno"> 2051</span>&#160;  <span class="comment">// since it depends on the presence of values with said alignment properties.</span></div><div class="line"><a name="l02052"></a><span class="lineno"> 2052</span>&#160;  <span class="comment">// So instead, we simply look at the next uoffset_t values (root,</span></div><div class="line"><a name="l02053"></a><span class="lineno"> 2053</span>&#160;  <span class="comment">// file_identifier, and alignment padding) to see which points to the root.</span></div><div class="line"><a name="l02054"></a><span class="lineno"> 2054</span>&#160;  <span class="comment">// None of the other values can &quot;impersonate&quot; the root since they will either</span></div><div class="line"><a name="l02055"></a><span class="lineno"> 2055</span>&#160;  <span class="comment">// be 0 or four ASCII characters.</span></div><div class="line"><a name="l02056"></a><span class="lineno"> 2056</span>&#160;  static_assert(<a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html#af8c7583c92e1d1d6f438977da5158d19">FlatBufferBuilder::kFileIdentifierLength</a> == <span class="keyword">sizeof</span>(uoffset_t),</div><div class="line"><a name="l02057"></a><span class="lineno"> 2057</span>&#160;                <span class="stringliteral">&quot;file_identifier is assumed to be the same size as uoffset_t&quot;</span>);</div><div class="line"><a name="l02058"></a><span class="lineno"> 2058</span>&#160;  <span class="keywordflow">for</span> (<span class="keyword">auto</span> possible_roots = FLATBUFFERS_MAX_ALIGNMENT / <span class="keyword">sizeof</span>(uoffset_t) + 1;</div><div class="line"><a name="l02059"></a><span class="lineno"> 2059</span>&#160;       possible_roots; possible_roots--) {</div><div class="line"><a name="l02060"></a><span class="lineno"> 2060</span>&#160;    start -= <span class="keyword">sizeof</span>(uoffset_t);</div><div class="line"><a name="l02061"></a><span class="lineno"> 2061</span>&#160;    <span class="keywordflow">if</span> (ReadScalar&lt;uoffset_t&gt;(start) + start ==</div><div class="line"><a name="l02062"></a><span class="lineno"> 2062</span>&#160;        <span class="keyword">reinterpret_cast&lt;</span><span class="keyword">const </span>uint8_t *<span class="keyword">&gt;</span>(root))</div><div class="line"><a name="l02063"></a><span class="lineno"> 2063</span>&#160;      <span class="keywordflow">return</span> start;</div><div class="line"><a name="l02064"></a><span class="lineno"> 2064</span>&#160;  }</div><div class="line"><a name="l02065"></a><span class="lineno"> 2065</span>&#160;  <span class="comment">// We didn&#39;t find the root, either the &quot;root&quot; passed isn&#39;t really a root,</span></div><div class="line"><a name="l02066"></a><span class="lineno"> 2066</span>&#160;  <span class="comment">// or the buffer is corrupt.</span></div><div class="line"><a name="l02067"></a><span class="lineno"> 2067</span>&#160;  <span class="comment">// Assert, because calling this function with bad data may cause reads</span></div><div class="line"><a name="l02068"></a><span class="lineno"> 2068</span>&#160;  <span class="comment">// outside of buffer boundaries.</span></div><div class="line"><a name="l02069"></a><span class="lineno"> 2069</span>&#160;  assert(<span class="keyword">false</span>);</div><div class="line"><a name="l02070"></a><span class="lineno"> 2070</span>&#160;  <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l02071"></a><span class="lineno"> 2071</span>&#160;}</div><div class="line"><a name="l02072"></a><span class="lineno"> 2072</span>&#160;<span class="comment"></span></div><div class="line"><a name="l02073"></a><span class="lineno"> 2073</span>&#160;<span class="comment">/// @brief This return the prefixed size of a FlatBuffer.</span></div><div class="line"><a name="l02074"></a><span class="lineno"> 2074</span>&#160;<span class="comment"></span><span class="keyword">inline</span> uoffset_t GetPrefixedSize(<span class="keyword">const</span> uint8_t* buf){ <span class="keywordflow">return</span> ReadScalar&lt;uoffset_t&gt;(buf); }</div><div class="line"><a name="l02075"></a><span class="lineno"> 2075</span>&#160;</div><div class="line"><a name="l02076"></a><span class="lineno"> 2076</span>&#160;<span class="comment">// Base class for native objects (FlatBuffer data de-serialized into native</span></div><div class="line"><a name="l02077"></a><span class="lineno"> 2077</span>&#160;<span class="comment">// C++ data structures).</span></div><div class="line"><a name="l02078"></a><span class="lineno"> 2078</span>&#160;<span class="comment">// Contains no functionality, purely documentative.</span></div><div class="line"><a name="l02079"></a><span class="lineno"> 2079</span>&#160;<span class="keyword">struct </span>NativeTable {};</div><div class="line"><a name="l02080"></a><span class="lineno"> 2080</span>&#160;<span class="comment"></span></div><div class="line"><a name="l02081"></a><span class="lineno"> 2081</span>&#160;<span class="comment">/// @brief Function types to be used with resolving hashes into objects and</span></div><div class="line"><a name="l02082"></a><span class="lineno"> 2082</span>&#160;<span class="comment">/// back again. The resolver gets a pointer to a field inside an object API</span></div><div class="line"><a name="l02083"></a><span class="lineno"> 2083</span>&#160;<span class="comment">/// object that is of the type specified in the schema using the attribute</span></div><div class="line"><a name="l02084"></a><span class="lineno"> 2084</span>&#160;<span class="comment">/// `cpp_type` (it is thus important whatever you write to this address</span></div><div class="line"><a name="l02085"></a><span class="lineno"> 2085</span>&#160;<span class="comment">/// matches that type). The value of this field is initially null, so you</span></div><div class="line"><a name="l02086"></a><span class="lineno"> 2086</span>&#160;<span class="comment">/// may choose to implement a delayed binding lookup using this function</span></div><div class="line"><a name="l02087"></a><span class="lineno"> 2087</span>&#160;<span class="comment">/// if you wish. The resolver does the opposite lookup, for when the object</span></div><div class="line"><a name="l02088"></a><span class="lineno"> 2088</span>&#160;<span class="comment">/// is being serialized again.</span></div><div class="line"><a name="l02089"></a><span class="lineno"> 2089</span>&#160;<span class="comment"></span><span class="keyword">typedef</span> uint64_t hash_value_t;</div><div class="line"><a name="l02090"></a><span class="lineno"> 2090</span>&#160;<span class="comment">// clang-format off</span></div><div class="line"><a name="l02091"></a><span class="lineno"> 2091</span>&#160;<span class="preprocessor">#ifdef FLATBUFFERS_CPP98_STL</span></div><div class="line"><a name="l02092"></a><span class="lineno"> 2092</span>&#160;  <span class="keyword">typedef</span> void (*resolver_function_t)(<span class="keywordtype">void</span> **pointer_adr, hash_value_t hash);</div><div class="line"><a name="l02093"></a><span class="lineno"> 2093</span>&#160;  <span class="keyword">typedef</span> hash_value_t (*rehasher_function_t)(<span class="keywordtype">void</span> *pointer);</div><div class="line"><a name="l02094"></a><span class="lineno"> 2094</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l02095"></a><span class="lineno"> 2095</span>&#160;  <span class="keyword">typedef</span> std::function&lt;void (void **pointer_adr, hash_value_t hash)&gt;</div><div class="line"><a name="l02096"></a><span class="lineno"> 2096</span>&#160;          resolver_function_t;</div><div class="line"><a name="l02097"></a><span class="lineno"> 2097</span>&#160;  <span class="keyword">typedef</span> std::function&lt;hash_value_t (void *pointer)&gt; rehasher_function_t;</div><div class="line"><a name="l02098"></a><span class="lineno"> 2098</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l02099"></a><span class="lineno"> 2099</span>&#160;<span class="comment">// clang-format on</span></div><div class="line"><a name="l02100"></a><span class="lineno"> 2100</span>&#160;</div><div class="line"><a name="l02101"></a><span class="lineno"> 2101</span>&#160;<span class="comment">// Helper function to test if a field is present, using any of the field</span></div><div class="line"><a name="l02102"></a><span class="lineno"> 2102</span>&#160;<span class="comment">// enums in the generated code.</span></div><div class="line"><a name="l02103"></a><span class="lineno"> 2103</span>&#160;<span class="comment">// `table` must be a generated table type. Since this is a template parameter,</span></div><div class="line"><a name="l02104"></a><span class="lineno"> 2104</span>&#160;<span class="comment">// this is not typechecked to be a subclass of Table, so beware!</span></div><div class="line"><a name="l02105"></a><span class="lineno"> 2105</span>&#160;<span class="comment">// Note: this function will return false for fields equal to the default</span></div><div class="line"><a name="l02106"></a><span class="lineno"> 2106</span>&#160;<span class="comment">// value, since they&#39;re not stored in the buffer (unless force_defaults was</span></div><div class="line"><a name="l02107"></a><span class="lineno"> 2107</span>&#160;<span class="comment">// used).</span></div><div class="line"><a name="l02108"></a><span class="lineno"> 2108</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt; <span class="keywordtype">bool</span> IsFieldPresent(<span class="keyword">const</span> T *table, voffset_t field) {</div><div class="line"><a name="l02109"></a><span class="lineno"> 2109</span>&#160;  <span class="comment">// Cast, since Table is a private baseclass of any table types.</span></div><div class="line"><a name="l02110"></a><span class="lineno"> 2110</span>&#160;  <span class="keywordflow">return</span> <span class="keyword">reinterpret_cast&lt;</span><span class="keyword">const </span>Table *<span class="keyword">&gt;</span>(table)-&gt;CheckField(field);</div><div class="line"><a name="l02111"></a><span class="lineno"> 2111</span>&#160;}</div><div class="line"><a name="l02112"></a><span class="lineno"> 2112</span>&#160;</div><div class="line"><a name="l02113"></a><span class="lineno"> 2113</span>&#160;<span class="comment">// Utility function for reverse lookups on the EnumNames*() functions</span></div><div class="line"><a name="l02114"></a><span class="lineno"> 2114</span>&#160;<span class="comment">// (in the generated C++ code)</span></div><div class="line"><a name="l02115"></a><span class="lineno"> 2115</span>&#160;<span class="comment">// names must be NULL terminated.</span></div><div class="line"><a name="l02116"></a><span class="lineno"> 2116</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">int</span> LookupEnum(<span class="keyword">const</span> <span class="keywordtype">char</span> **names, <span class="keyword">const</span> <span class="keywordtype">char</span> *name) {</div><div class="line"><a name="l02117"></a><span class="lineno"> 2117</span>&#160;  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keywordtype">char</span> **p = names; *p; p++)</div><div class="line"><a name="l02118"></a><span class="lineno"> 2118</span>&#160;    <span class="keywordflow">if</span> (!strcmp(*p, name)) <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span>(p - names);</div><div class="line"><a name="l02119"></a><span class="lineno"> 2119</span>&#160;  <span class="keywordflow">return</span> -1;</div><div class="line"><a name="l02120"></a><span class="lineno"> 2120</span>&#160;}</div><div class="line"><a name="l02121"></a><span class="lineno"> 2121</span>&#160;</div><div class="line"><a name="l02122"></a><span class="lineno"> 2122</span>&#160;<span class="comment">// These macros allow us to layout a struct with a guarantee that they&#39;ll end</span></div><div class="line"><a name="l02123"></a><span class="lineno"> 2123</span>&#160;<span class="comment">// up looking the same on different compilers and platforms.</span></div><div class="line"><a name="l02124"></a><span class="lineno"> 2124</span>&#160;<span class="comment">// It does this by disallowing the compiler to do any padding, and then</span></div><div class="line"><a name="l02125"></a><span class="lineno"> 2125</span>&#160;<span class="comment">// does padding itself by inserting extra padding fields that make every</span></div><div class="line"><a name="l02126"></a><span class="lineno"> 2126</span>&#160;<span class="comment">// element aligned to its own size.</span></div><div class="line"><a name="l02127"></a><span class="lineno"> 2127</span>&#160;<span class="comment">// Additionally, it manually sets the alignment of the struct as a whole,</span></div><div class="line"><a name="l02128"></a><span class="lineno"> 2128</span>&#160;<span class="comment">// which is typically its largest element, or a custom size set in the schema</span></div><div class="line"><a name="l02129"></a><span class="lineno"> 2129</span>&#160;<span class="comment">// by the force_align attribute.</span></div><div class="line"><a name="l02130"></a><span class="lineno"> 2130</span>&#160;<span class="comment">// These are used in the generated code only.</span></div><div class="line"><a name="l02131"></a><span class="lineno"> 2131</span>&#160;</div><div class="line"><a name="l02132"></a><span class="lineno"> 2132</span>&#160;<span class="comment">// clang-format off</span></div><div class="line"><a name="l02133"></a><span class="lineno"> 2133</span>&#160;<span class="preprocessor">#if defined(_MSC_VER)</span></div><div class="line"><a name="l02134"></a><span class="lineno"> 2134</span>&#160;<span class="preprocessor">  #define MANUALLY_ALIGNED_STRUCT(alignment) \</span></div><div class="line"><a name="l02135"></a><span class="lineno"> 2135</span>&#160;<span class="preprocessor">    __pragma(pack(1)); \</span></div><div class="line"><a name="l02136"></a><span class="lineno"> 2136</span>&#160;<span class="preprocessor">    struct __declspec(align(alignment))</span></div><div class="line"><a name="l02137"></a><span class="lineno"> 2137</span>&#160;<span class="preprocessor">  #define STRUCT_END(name, size) \</span></div><div class="line"><a name="l02138"></a><span class="lineno"> 2138</span>&#160;<span class="preprocessor">    __pragma(pack()); \</span></div><div class="line"><a name="l02139"></a><span class="lineno"> 2139</span>&#160;<span class="preprocessor">    static_assert(sizeof(name) == size, &quot;compiler breaks packing rules&quot;)</span></div><div class="line"><a name="l02140"></a><span class="lineno"> 2140</span>&#160;<span class="preprocessor">#elif defined(__GNUC__) || defined(__clang__)</span></div><div class="line"><a name="l02141"></a><span class="lineno"> 2141</span>&#160;<span class="preprocessor">  #define MANUALLY_ALIGNED_STRUCT(alignment) \</span></div><div class="line"><a name="l02142"></a><span class="lineno"> 2142</span>&#160;<span class="preprocessor">    _Pragma(&quot;pack(1)&quot;) \</span></div><div class="line"><a name="l02143"></a><span class="lineno"> 2143</span>&#160;<span class="preprocessor">    struct __attribute__((aligned(alignment)))</span></div><div class="line"><a name="l02144"></a><span class="lineno"> 2144</span>&#160;<span class="preprocessor">  #define STRUCT_END(name, size) \</span></div><div class="line"><a name="l02145"></a><span class="lineno"> 2145</span>&#160;<span class="preprocessor">    _Pragma(&quot;pack()&quot;) \</span></div><div class="line"><a name="l02146"></a><span class="lineno"> 2146</span>&#160;<span class="preprocessor">    static_assert(sizeof(name) == size, &quot;compiler breaks packing rules&quot;)</span></div><div class="line"><a name="l02147"></a><span class="lineno"> 2147</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l02148"></a><span class="lineno"> 2148</span>&#160;<span class="preprocessor">  #error Unknown compiler, please define structure alignment macros</span></div><div class="line"><a name="l02149"></a><span class="lineno"> 2149</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l02150"></a><span class="lineno"> 2150</span>&#160;<span class="comment">// clang-format on</span></div><div class="line"><a name="l02151"></a><span class="lineno"> 2151</span>&#160;</div><div class="line"><a name="l02152"></a><span class="lineno"> 2152</span>&#160;<span class="comment">// Minimal reflection via code generation.</span></div><div class="line"><a name="l02153"></a><span class="lineno"> 2153</span>&#160;<span class="comment">// Besides full-fat reflection (see reflection.h) and parsing/printing by</span></div><div class="line"><a name="l02154"></a><span class="lineno"> 2154</span>&#160;<span class="comment">// loading schemas (see idl.h), we can also have code generation for mimimal</span></div><div class="line"><a name="l02155"></a><span class="lineno"> 2155</span>&#160;<span class="comment">// reflection data which allows pretty-printing and other uses without needing</span></div><div class="line"><a name="l02156"></a><span class="lineno"> 2156</span>&#160;<span class="comment">// a schema or a parser.</span></div><div class="line"><a name="l02157"></a><span class="lineno"> 2157</span>&#160;<span class="comment">// Generate code with --reflect-types (types only) or --reflect-names (names</span></div><div class="line"><a name="l02158"></a><span class="lineno"> 2158</span>&#160;<span class="comment">// also) to enable.</span></div><div class="line"><a name="l02159"></a><span class="lineno"> 2159</span>&#160;<span class="comment">// See minireflect.h for utilities using this functionality.</span></div><div class="line"><a name="l02160"></a><span class="lineno"> 2160</span>&#160;</div><div class="line"><a name="l02161"></a><span class="lineno"> 2161</span>&#160;<span class="comment">// These types are organized slightly differently as the ones in idl.h.</span></div><div class="line"><a name="l02162"></a><span class="lineno"> 2162</span>&#160;<span class="keyword">enum</span> SequenceType { ST_TABLE, ST_STRUCT, ST_UNION, ST_ENUM };</div><div class="line"><a name="l02163"></a><span class="lineno"> 2163</span>&#160;</div><div class="line"><a name="l02164"></a><span class="lineno"> 2164</span>&#160;<span class="comment">// Scalars have the same order as in idl.h</span></div><div class="line"><a name="l02165"></a><span class="lineno"> 2165</span>&#160;<span class="comment">// clang-format off</span></div><div class="line"><a name="l02166"></a><span class="lineno"> 2166</span>&#160;<span class="preprocessor">#define FLATBUFFERS_GEN_ELEMENTARY_TYPES(ET) \</span></div><div class="line"><a name="l02167"></a><span class="lineno"> 2167</span>&#160;<span class="preprocessor">  ET(ET_UTYPE) \</span></div><div class="line"><a name="l02168"></a><span class="lineno"> 2168</span>&#160;<span class="preprocessor">  ET(ET_BOOL) \</span></div><div class="line"><a name="l02169"></a><span class="lineno"> 2169</span>&#160;<span class="preprocessor">  ET(ET_CHAR) \</span></div><div class="line"><a name="l02170"></a><span class="lineno"> 2170</span>&#160;<span class="preprocessor">  ET(ET_UCHAR) \</span></div><div class="line"><a name="l02171"></a><span class="lineno"> 2171</span>&#160;<span class="preprocessor">  ET(ET_SHORT) \</span></div><div class="line"><a name="l02172"></a><span class="lineno"> 2172</span>&#160;<span class="preprocessor">  ET(ET_USHORT) \</span></div><div class="line"><a name="l02173"></a><span class="lineno"> 2173</span>&#160;<span class="preprocessor">  ET(ET_INT) \</span></div><div class="line"><a name="l02174"></a><span class="lineno"> 2174</span>&#160;<span class="preprocessor">  ET(ET_UINT) \</span></div><div class="line"><a name="l02175"></a><span class="lineno"> 2175</span>&#160;<span class="preprocessor">  ET(ET_LONG) \</span></div><div class="line"><a name="l02176"></a><span class="lineno"> 2176</span>&#160;<span class="preprocessor">  ET(ET_ULONG) \</span></div><div class="line"><a name="l02177"></a><span class="lineno"> 2177</span>&#160;<span class="preprocessor">  ET(ET_FLOAT) \</span></div><div class="line"><a name="l02178"></a><span class="lineno"> 2178</span>&#160;<span class="preprocessor">  ET(ET_DOUBLE) \</span></div><div class="line"><a name="l02179"></a><span class="lineno"> 2179</span>&#160;<span class="preprocessor">  ET(ET_STRING) \</span></div><div class="line"><a name="l02180"></a><span class="lineno"> 2180</span>&#160;<span class="preprocessor">  ET(ET_SEQUENCE)  // See SequenceType.</span></div><div class="line"><a name="l02181"></a><span class="lineno"> 2181</span>&#160;</div><div class="line"><a name="l02182"></a><span class="lineno"> 2182</span>&#160;<span class="keyword">enum</span> ElementaryType {</div><div class="line"><a name="l02183"></a><span class="lineno"> 2183</span>&#160;<span class="preprocessor">  #define FLATBUFFERS_ET(E) E,</span></div><div class="line"><a name="l02184"></a><span class="lineno"> 2184</span>&#160;    FLATBUFFERS_GEN_ELEMENTARY_TYPES(FLATBUFFERS_ET)</div><div class="line"><a name="l02185"></a><span class="lineno"> 2185</span>&#160;  <span class="preprocessor">#undef FLATBUFFERS_ET</span></div><div class="line"><a name="l02186"></a><span class="lineno"> 2186</span>&#160;};</div><div class="line"><a name="l02187"></a><span class="lineno"> 2187</span>&#160;</div><div class="line"><a name="l02188"></a><span class="lineno"> 2188</span>&#160;<span class="keyword">inline</span> <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> *ElementaryTypeNames() {</div><div class="line"><a name="l02189"></a><span class="lineno"> 2189</span>&#160;  <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> names[] = {</div><div class="line"><a name="l02190"></a><span class="lineno"> 2190</span>&#160;<span class="preprocessor">    #define FLATBUFFERS_ET(E) #E,</span></div><div class="line"><a name="l02191"></a><span class="lineno"> 2191</span>&#160;      FLATBUFFERS_GEN_ELEMENTARY_TYPES(FLATBUFFERS_ET)</div><div class="line"><a name="l02192"></a><span class="lineno"> 2192</span>&#160;    <span class="preprocessor">#undef FLATBUFFERS_ET</span></div><div class="line"><a name="l02193"></a><span class="lineno"> 2193</span>&#160;  };</div><div class="line"><a name="l02194"></a><span class="lineno"> 2194</span>&#160;  <span class="keywordflow">return</span> names;</div><div class="line"><a name="l02195"></a><span class="lineno"> 2195</span>&#160;}</div><div class="line"><a name="l02196"></a><span class="lineno"> 2196</span>&#160;<span class="comment">// clang-format on</span></div><div class="line"><a name="l02197"></a><span class="lineno"> 2197</span>&#160;</div><div class="line"><a name="l02198"></a><span class="lineno"> 2198</span>&#160;<span class="comment">// Basic type info cost just 16bits per field!</span></div><div class="line"><a name="l02199"></a><span class="lineno"> 2199</span>&#160;<span class="keyword">struct </span>TypeCode {</div><div class="line"><a name="l02200"></a><span class="lineno"> 2200</span>&#160;  uint16_t base_type : 4;  <span class="comment">// ElementaryType</span></div><div class="line"><a name="l02201"></a><span class="lineno"> 2201</span>&#160;  uint16_t is_vector : 1;</div><div class="line"><a name="l02202"></a><span class="lineno"> 2202</span>&#160;  int16_t sequence_ref : 11;  <span class="comment">// Index into type_refs below, or -1 for none.</span></div><div class="line"><a name="l02203"></a><span class="lineno"> 2203</span>&#160;};</div><div class="line"><a name="l02204"></a><span class="lineno"> 2204</span>&#160;</div><div class="line"><a name="l02205"></a><span class="lineno"> 2205</span>&#160;static_assert(<span class="keyword">sizeof</span>(TypeCode) == 2, <span class="stringliteral">&quot;TypeCode&quot;</span>);</div><div class="line"><a name="l02206"></a><span class="lineno"> 2206</span>&#160;</div><div class="line"><a name="l02207"></a><span class="lineno"> 2207</span>&#160;<span class="keyword">struct </span>TypeTable;</div><div class="line"><a name="l02208"></a><span class="lineno"> 2208</span>&#160;</div><div class="line"><a name="l02209"></a><span class="lineno"> 2209</span>&#160;<span class="comment">// Signature of the static method present in each type.</span></div><div class="line"><a name="l02210"></a><span class="lineno"> 2210</span>&#160;<span class="keyword">typedef</span> <span class="keyword">const</span> TypeTable *(*TypeFunction)();</div><div class="line"><a name="l02211"></a><span class="lineno"> 2211</span>&#160;</div><div class="line"><a name="l02212"></a><span class="lineno"> 2212</span>&#160;<span class="keyword">struct </span>TypeTable {</div><div class="line"><a name="l02213"></a><span class="lineno"> 2213</span>&#160;  SequenceType st;</div><div class="line"><a name="l02214"></a><span class="lineno"> 2214</span>&#160;  <span class="keywordtype">size_t</span> num_elems;  <span class="comment">// of each of the arrays below.</span></div><div class="line"><a name="l02215"></a><span class="lineno"> 2215</span>&#160;  <span class="keyword">const</span> TypeCode *type_codes;</div><div class="line"><a name="l02216"></a><span class="lineno"> 2216</span>&#160;  <span class="keyword">const</span> TypeFunction *type_refs;</div><div class="line"><a name="l02217"></a><span class="lineno"> 2217</span>&#160;  <span class="keyword">const</span> int32_t *values;  <span class="comment">// Only set for non-consecutive enum/union or structs.</span></div><div class="line"><a name="l02218"></a><span class="lineno"> 2218</span>&#160;  <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> *names;     <span class="comment">// Only set if compiled with --reflect-names.</span></div><div class="line"><a name="l02219"></a><span class="lineno"> 2219</span>&#160;};</div><div class="line"><a name="l02220"></a><span class="lineno"> 2220</span>&#160;</div><div class="line"><a name="l02221"></a><span class="lineno"> 2221</span>&#160;<span class="comment">// String which identifies the current version of FlatBuffers.</span></div><div class="line"><a name="l02222"></a><span class="lineno"> 2222</span>&#160;<span class="comment">// flatbuffer_version_string is used by Google developers to identify which</span></div><div class="line"><a name="l02223"></a><span class="lineno"> 2223</span>&#160;<span class="comment">// applications uploaded to Google Play are using this library.  This allows</span></div><div class="line"><a name="l02224"></a><span class="lineno"> 2224</span>&#160;<span class="comment">// the development team at Google to determine the popularity of the library.</span></div><div class="line"><a name="l02225"></a><span class="lineno"> 2225</span>&#160;<span class="comment">// How it works: Applications that are uploaded to the Google Play Store are</span></div><div class="line"><a name="l02226"></a><span class="lineno"> 2226</span>&#160;<span class="comment">// scanned for this version string.  We track which applications are using it</span></div><div class="line"><a name="l02227"></a><span class="lineno"> 2227</span>&#160;<span class="comment">// to measure popularity.  You are free to remove it (of course) but we would</span></div><div class="line"><a name="l02228"></a><span class="lineno"> 2228</span>&#160;<span class="comment">// appreciate if you left it in.</span></div><div class="line"><a name="l02229"></a><span class="lineno"> 2229</span>&#160;</div><div class="line"><a name="l02230"></a><span class="lineno"> 2230</span>&#160;<span class="comment">// Weak linkage is culled by VS &amp; doesn&#39;t work on cygwin.</span></div><div class="line"><a name="l02231"></a><span class="lineno"> 2231</span>&#160;<span class="comment">// clang-format off</span></div><div class="line"><a name="l02232"></a><span class="lineno"> 2232</span>&#160;<span class="preprocessor">#if !defined(_WIN32) &amp;&amp; !defined(__CYGWIN__)</span></div><div class="line"><a name="l02233"></a><span class="lineno"> 2233</span>&#160;</div><div class="line"><a name="l02234"></a><span class="lineno"> 2234</span>&#160;<span class="keyword">extern</span> <span class="keyword">volatile</span> __attribute__((weak)) <span class="keyword">const</span> <span class="keywordtype">char</span> *flatbuffer_version_string;</div><div class="line"><a name="l02235"></a><span class="lineno"> 2235</span>&#160;<span class="keyword">volatile</span> __attribute__((weak)) <span class="keyword">const</span> <span class="keywordtype">char</span> *flatbuffer_version_string =</div><div class="line"><a name="l02236"></a><span class="lineno"> 2236</span>&#160;  <span class="stringliteral">&quot;FlatBuffers &quot;</span></div><div class="line"><a name="l02237"></a><span class="lineno"> 2237</span>&#160;  FLATBUFFERS_STRING(FLATBUFFERS_VERSION_MAJOR) <span class="stringliteral">&quot;.&quot;</span></div><div class="line"><a name="l02238"></a><span class="lineno"> 2238</span>&#160;  FLATBUFFERS_STRING(FLATBUFFERS_VERSION_MINOR) <span class="stringliteral">&quot;.&quot;</span></div><div class="line"><a name="l02239"></a><span class="lineno"> 2239</span>&#160;  FLATBUFFERS_STRING(FLATBUFFERS_VERSION_REVISION);</div><div class="line"><a name="l02240"></a><span class="lineno"> 2240</span>&#160;</div><div class="line"><a name="l02241"></a><span class="lineno"> 2241</span>&#160;<span class="preprocessor">#endif  // !defined(_WIN32) &amp;&amp; !defined(__CYGWIN__)</span></div><div class="line"><a name="l02242"></a><span class="lineno"> 2242</span>&#160;</div><div class="line"><a name="l02243"></a><span class="lineno"> 2243</span>&#160;<span class="preprocessor">#define DEFINE_BITMASK_OPERATORS(E, T)\</span></div><div class="line"><a name="l02244"></a><span class="lineno"> 2244</span>&#160;<span class="preprocessor">    inline E operator | (E lhs, E rhs){\</span></div><div class="line"><a name="l02245"></a><span class="lineno"> 2245</span>&#160;<span class="preprocessor">        return E(T(lhs) | T(rhs));\</span></div><div class="line"><a name="l02246"></a><span class="lineno"> 2246</span>&#160;<span class="preprocessor">    }\</span></div><div class="line"><a name="l02247"></a><span class="lineno"> 2247</span>&#160;<span class="preprocessor">    inline E operator &amp; (E lhs, E rhs){\</span></div><div class="line"><a name="l02248"></a><span class="lineno"> 2248</span>&#160;<span class="preprocessor">        return E(T(lhs) &amp; T(rhs));\</span></div><div class="line"><a name="l02249"></a><span class="lineno"> 2249</span>&#160;<span class="preprocessor">    }\</span></div><div class="line"><a name="l02250"></a><span class="lineno"> 2250</span>&#160;<span class="preprocessor">    inline E operator ^ (E lhs, E rhs){\</span></div><div class="line"><a name="l02251"></a><span class="lineno"> 2251</span>&#160;<span class="preprocessor">        return E(T(lhs) ^ T(rhs));\</span></div><div class="line"><a name="l02252"></a><span class="lineno"> 2252</span>&#160;<span class="preprocessor">    }\</span></div><div class="line"><a name="l02253"></a><span class="lineno"> 2253</span>&#160;<span class="preprocessor">    inline E operator ~ (E lhs){\</span></div><div class="line"><a name="l02254"></a><span class="lineno"> 2254</span>&#160;<span class="preprocessor">        return E(~T(lhs));\</span></div><div class="line"><a name="l02255"></a><span class="lineno"> 2255</span>&#160;<span class="preprocessor">    }\</span></div><div class="line"><a name="l02256"></a><span class="lineno"> 2256</span>&#160;<span class="preprocessor">    inline E operator |= (E &amp;lhs, E rhs){\</span></div><div class="line"><a name="l02257"></a><span class="lineno"> 2257</span>&#160;<span class="preprocessor">        lhs = lhs | rhs;\</span></div><div class="line"><a name="l02258"></a><span class="lineno"> 2258</span>&#160;<span class="preprocessor">        return lhs;\</span></div><div class="line"><a name="l02259"></a><span class="lineno"> 2259</span>&#160;<span class="preprocessor">    }\</span></div><div class="line"><a name="l02260"></a><span class="lineno"> 2260</span>&#160;<span class="preprocessor">    inline E operator &amp;= (E &amp;lhs, E rhs){\</span></div><div class="line"><a name="l02261"></a><span class="lineno"> 2261</span>&#160;<span class="preprocessor">        lhs = lhs &amp; rhs;\</span></div><div class="line"><a name="l02262"></a><span class="lineno"> 2262</span>&#160;<span class="preprocessor">        return lhs;\</span></div><div class="line"><a name="l02263"></a><span class="lineno"> 2263</span>&#160;<span class="preprocessor">    }\</span></div><div class="line"><a name="l02264"></a><span class="lineno"> 2264</span>&#160;<span class="preprocessor">    inline E operator ^= (E &amp;lhs, E rhs){\</span></div><div class="line"><a name="l02265"></a><span class="lineno"> 2265</span>&#160;<span class="preprocessor">        lhs = lhs ^ rhs;\</span></div><div class="line"><a name="l02266"></a><span class="lineno"> 2266</span>&#160;<span class="preprocessor">        return lhs;\</span></div><div class="line"><a name="l02267"></a><span class="lineno"> 2267</span>&#160;<span class="preprocessor">    }\</span></div><div class="line"><a name="l02268"></a><span class="lineno"> 2268</span>&#160;<span class="preprocessor">    inline bool operator !(E rhs) \</span></div><div class="line"><a name="l02269"></a><span class="lineno"> 2269</span>&#160;<span class="preprocessor">    {\</span></div><div class="line"><a name="l02270"></a><span class="lineno"> 2270</span>&#160;<span class="preprocessor">        return !bool(T(rhs)); \</span></div><div class="line"><a name="l02271"></a><span class="lineno"> 2271</span>&#160;<span class="preprocessor">    }</span></div><div class="line"><a name="l02272"></a><span class="lineno"> 2272</span>&#160;<span class="comment">/// @endcond</span></div><div class="line"><a name="l02273"></a><span class="lineno"> 2273</span>&#160;<span class="comment"></span>}  <span class="comment">// namespace flatbuffers</span></div><div class="line"><a name="l02274"></a><span class="lineno"> 2274</span>&#160;</div><div class="line"><a name="l02275"></a><span class="lineno"> 2275</span>&#160;<span class="preprocessor">#if defined(_MSC_VER)</span></div><div class="line"><a name="l02276"></a><span class="lineno"> 2276</span>&#160;<span class="preprocessor">  #pragma warning(pop)</span></div><div class="line"><a name="l02277"></a><span class="lineno"> 2277</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l02278"></a><span class="lineno"> 2278</span>&#160;<span class="comment">// clang-format on</span></div><div class="line"><a name="l02279"></a><span class="lineno"> 2279</span>&#160;</div><div class="line"><a name="l02280"></a><span class="lineno"> 2280</span>&#160;<span class="preprocessor">#endif  // FLATBUFFERS_H_</span></div><div class="ttc" id="structflatbuffers_1_1_offset_html"><div class="ttname"><a href="structflatbuffers_1_1_offset.html">flatbuffers::Offset</a></div><div class="ttdef"><b>Definition:</b> flatbuffers.h:25</div></div>
+<div class="ttc" id="classflatbuffers_1_1_flat_buffer_builder_html_a1080c9e370e2d9d9d872dadd1131436b"><div class="ttname"><a href="classflatbuffers_1_1_flat_buffer_builder.html#a1080c9e370e2d9d9d872dadd1131436b">flatbuffers::FlatBufferBuilder::CreateVector</a></div><div class="ttdeci">Offset&lt; Vector&lt; T &gt; &gt; CreateVector(size_t vector_size, const std::function&lt; T(size_t i)&gt; &amp;f)</div><div class="ttdoc">Serialize values returned by a function into a FlatBuffer vector. </div><div class="ttdef"><b>Definition:</b> flatbuffers.h:1234</div></div>
+<div class="ttc" id="classflatbuffers_1_1_flat_buffer_builder_html_ac2b96292fa0fb1534fe7fd218a094d0c"><div class="ttname"><a href="classflatbuffers_1_1_flat_buffer_builder.html#ac2b96292fa0fb1534fe7fd218a094d0c">flatbuffers::FlatBufferBuilder::CreateUninitializedVector</a></div><div class="ttdeci">uoffset_t CreateUninitializedVector(size_t len, size_t elemsize, uint8_t **buf)</div><div class="ttdoc">Specialized version of CreateVector for non-copying use cases. </div><div class="ttdef"><b>Definition:</b> flatbuffers.h:1492</div></div>
+<div class="ttc" id="classflatbuffers_1_1_flat_buffer_builder_html_a6e90ada59d9553636f72ce8e4a892f72"><div class="ttname"><a href="classflatbuffers_1_1_flat_buffer_builder.html#a6e90ada59d9553636f72ce8e4a892f72">flatbuffers::FlatBufferBuilder::CreateVectorOfStructs</a></div><div class="ttdeci">Offset&lt; Vector&lt; const T * &gt; &gt; CreateVectorOfStructs(size_t vector_size, const std::function&lt; void(size_t i, T *)&gt; &amp;filler)</div><div class="ttdoc">Serialize an array of structs into a FlatBuffer vector. </div><div class="ttdef"><b>Definition:</b> flatbuffers.h:1314</div></div>
+<div class="ttc" id="classflatbuffers_1_1_flat_buffer_builder_html_ab1f44cc1b130e13b41e9a80de76e25cf"><div class="ttname"><a href="classflatbuffers_1_1_flat_buffer_builder.html#ab1f44cc1b130e13b41e9a80de76e25cf">flatbuffers::FlatBufferBuilder::CreateVectorOfSortedStructs</a></div><div class="ttdeci">Offset&lt; Vector&lt; const T * &gt; &gt; CreateVectorOfSortedStructs(T *v, size_t len)</div><div class="ttdoc">Serialize an array of structs into a FlatBuffer vector in sorted order. </div><div class="ttdef"><b>Definition:</b> flatbuffers.h:1418</div></div>
+<div class="ttc" id="classflatbuffers_1_1_flat_buffer_builder_html_a23aa4c910e053446cc404bc486012e54"><div class="ttname"><a href="classflatbuffers_1_1_flat_buffer_builder.html#a23aa4c910e053446cc404bc486012e54">flatbuffers::FlatBufferBuilder::CreateVectorOfSortedNativeStructs</a></div><div class="ttdeci">Offset&lt; Vector&lt; const T * &gt; &gt; CreateVectorOfSortedNativeStructs(std::vector&lt; S &gt; *v)</div><div class="ttdoc">Serialize a std::vector of native structs into a FlatBuffer vector in sorted order. </div><div class="ttdef"><b>Definition:</b> flatbuffers.h:1404</div></div>
+<div class="ttc" id="classflatbuffers_1_1_flat_buffer_builder_html_a66c8fd33ab9b3b237954c9ea38648f7f"><div class="ttname"><a href="classflatbuffers_1_1_flat_buffer_builder.html#a66c8fd33ab9b3b237954c9ea38648f7f">flatbuffers::FlatBufferBuilder::GetSize</a></div><div class="ttdeci">uoffset_t GetSize() const</div><div class="ttdoc">The current size of the serialized buffer, counting from the end. </div><div class="ttdef"><b>Definition:</b> flatbuffers.h:770</div></div>
+<div class="ttc" id="classflatbuffers_1_1_flat_buffer_builder_html_ac64d11c219559ea51567eab556e13135"><div class="ttname"><a href="classflatbuffers_1_1_flat_buffer_builder.html#ac64d11c219559ea51567eab556e13135">flatbuffers::FlatBufferBuilder::CreateVectorOfSortedTables</a></div><div class="ttdeci">Offset&lt; Vector&lt; Offset&lt; T &gt; &gt; &gt; CreateVectorOfSortedTables(std::vector&lt; Offset&lt; T &gt;&gt; *v)</div><div class="ttdoc">Serialize an array of table offsets as a vector in the buffer in sorted order. </div><div class="ttdef"><b>Definition:</b> flatbuffers.h:1480</div></div>
+<div class="ttc" id="structflatbuffers_1_1_vector_iterator_html"><div class="ttname"><a href="structflatbuffers_1_1_vector_iterator.html">flatbuffers::VectorIterator</a></div><div class="ttdef"><b>Definition:</b> flatbuffers.h:90</div></div>
+<div class="ttc" id="classflatbuffers_1_1_flat_buffer_builder_html"><div class="ttname"><a href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a></div><div class="ttdoc">Helper class to hold data needed in creation of a FlatBuffer. </div><div class="ttdef"><b>Definition:</b> flatbuffers.h:718</div></div>
+<div class="ttc" id="classflatbuffers_1_1_flat_buffer_builder_html_ac51db9083ac815eb81420b6d51f42154"><div class="ttname"><a href="classflatbuffers_1_1_flat_buffer_builder.html#ac51db9083ac815eb81420b6d51f42154">flatbuffers::FlatBufferBuilder::CreateString</a></div><div class="ttdeci">Offset&lt; String &gt; CreateString(char *str)</div><div class="ttdoc">Store a string in the buffer, which is null-terminated. </div><div class="ttdef"><b>Definition:</b> flatbuffers.h:1066</div></div>
+<div class="ttc" id="classflatbuffers_1_1_flat_buffer_builder_html_ae94b94ba71ea0aeb2d9a98c43b713412"><div class="ttname"><a href="classflatbuffers_1_1_flat_buffer_builder.html#ae94b94ba71ea0aeb2d9a98c43b713412">flatbuffers::FlatBufferBuilder::Clear</a></div><div class="ttdeci">void Clear()</div><div class="ttdoc">Reset all the state in this FlatBufferBuilder so it can be reused to construct another buffer...</div><div class="ttdef"><b>Definition:</b> flatbuffers.h:759</div></div>
+<div class="ttc" id="classflatbuffers_1_1_flat_buffer_builder_html_a9cc09fa59ff9732e972877cfe911c8a5"><div class="ttname"><a href="classflatbuffers_1_1_flat_buffer_builder.html#a9cc09fa59ff9732e972877cfe911c8a5">flatbuffers::FlatBufferBuilder::CreateVectorOfStructs</a></div><div class="ttdeci">Offset&lt; Vector&lt; const T * &gt; &gt; CreateVectorOfStructs(size_t vector_size, F f, S *state)</div><div class="ttdoc">Serialize an array of structs into a FlatBuffer vector. </div><div class="ttdef"><b>Definition:</b> flatbuffers.h:1336</div></div>
+<div class="ttc" id="classflatbuffers_1_1_flat_buffer_builder_html_a3d57074082aaab8cdeb8474ff9df0b53"><div class="ttname"><a href="classflatbuffers_1_1_flat_buffer_builder.html#a3d57074082aaab8cdeb8474ff9df0b53">flatbuffers::FlatBufferBuilder::CreateVectorOfNativeStructs</a></div><div class="ttdeci">Offset&lt; Vector&lt; const T * &gt; &gt; CreateVectorOfNativeStructs(const S *v, size_t len)</div><div class="ttdoc">Serialize an array of native structs into a FlatBuffer vector. </div><div class="ttdef"><b>Definition:</b> flatbuffers.h:1295</div></div>
+<div class="ttc" id="classflatbuffers_1_1_flat_buffer_builder_html_a43f51ba9c8f4f24ea2247a3979d095b8"><div class="ttname"><a href="classflatbuffers_1_1_flat_buffer_builder.html#a43f51ba9c8f4f24ea2247a3979d095b8">flatbuffers::FlatBufferBuilder::CreateStruct</a></div><div class="ttdeci">Offset&lt; const T * &gt; CreateStruct(const T &amp;structobj)</div><div class="ttdoc">Write a struct by itself, typically to be part of a union. </div><div class="ttdef"><b>Definition:</b> flatbuffers.h:1518</div></div>
+<div class="ttc" id="namespaceflatbuffers_html"><div class="ttname"><a href="namespaceflatbuffers.html">flatbuffers</a></div><div class="ttdef"><b>Definition:</b> flatbuffers.h:22</div></div>
+<div class="ttc" id="classflatbuffers_1_1_flat_buffer_builder_html_a7ba8462e408431054c99d25120326220"><div class="ttname"><a href="classflatbuffers_1_1_flat_buffer_builder.html#a7ba8462e408431054c99d25120326220">flatbuffers::FlatBufferBuilder::FinishSizePrefixed</a></div><div class="ttdeci">void FinishSizePrefixed(Offset&lt; T &gt; root, const char *file_identifier=nullptr)</div><div class="ttdoc">Finish a buffer with a 32 bit size field pre-fixed (size of the buffer following the size field)...</div><div class="ttdef"><b>Definition:</b> flatbuffers.h:1544</div></div>
+<div class="ttc" id="classflatbuffers_1_1_detached_buffer_html"><div class="ttname"><a href="classflatbuffers_1_1_detached_buffer.html">flatbuffers::DetachedBuffer</a></div><div class="ttdef"><b>Definition:</b> flatbuffers.h:413</div></div>
+<div class="ttc" id="classflatbuffers_1_1_flat_buffer_builder_html_a3eb68613e5883dc4b8fff6cf7d1223d7"><div class="ttname"><a href="classflatbuffers_1_1_flat_buffer_builder.html#a3eb68613e5883dc4b8fff6cf7d1223d7">flatbuffers::FlatBufferBuilder::CreateSharedString</a></div><div class="ttdeci">Offset&lt; String &gt; CreateSharedString(const char *str)</div><div class="ttdoc">Store a string in the buffer, which null-terminated. </div><div class="ttdef"><b>Definition:</b> flatbuffers.h:1122</div></div>
+<div class="ttc" id="classflatbuffers_1_1_vector_of_any_html"><div class="ttname"><a href="classflatbuffers_1_1_vector_of_any.html">flatbuffers::VectorOfAny</a></div><div class="ttdef"><b>Definition:</b> flatbuffers.h:304</div></div>
+<div class="ttc" id="structflatbuffers_1_1_indirect_helper_html"><div class="ttname"><a href="structflatbuffers_1_1_indirect_helper.html">flatbuffers::IndirectHelper</a></div><div class="ttdef"><b>Definition:</b> flatbuffers.h:62</div></div>
+<div class="ttc" id="classflatbuffers_1_1_flat_buffer_builder_html_aec6f9df2a0366b540b24822414d92cbe"><div class="ttname"><a href="classflatbuffers_1_1_flat_buffer_builder.html#aec6f9df2a0366b540b24822414d92cbe">flatbuffers::FlatBufferBuilder::CreateString</a></div><div class="ttdeci">Offset&lt; String &gt; CreateString(const char *str, size_t len)</div><div class="ttdoc">Store a string in the buffer, which can contain any binary data. </div><div class="ttdef"><b>Definition:</b> flatbuffers.h:1047</div></div>
+<div class="ttc" id="classflatbuffers_1_1_flat_buffer_builder_html_a16a8fd46b34ad7727406c37b65b6b27a"><div class="ttname"><a href="classflatbuffers_1_1_flat_buffer_builder.html#a16a8fd46b34ad7727406c37b65b6b27a">flatbuffers::FlatBufferBuilder::ForceDefaults</a></div><div class="ttdeci">void ForceDefaults(bool fd)</div><div class="ttdoc">In order to save space, fields that are set to their default value don&amp;#39;t get serialized into the buff...</div><div class="ttdef"><b>Definition:</b> flatbuffers.h:825</div></div>
+<div class="ttc" id="classflatbuffers_1_1_flat_buffer_builder_html_ab81ab8aa273c270b0942fd81489cad83"><div class="ttname"><a href="classflatbuffers_1_1_flat_buffer_builder.html#ab81ab8aa273c270b0942fd81489cad83">flatbuffers::FlatBufferBuilder::GetBufferPointer</a></div><div class="ttdeci">uint8_t * GetBufferPointer() const</div><div class="ttdoc">Get the serialized buffer (after you call Finish()). </div><div class="ttdef"><b>Definition:</b> flatbuffers.h:775</div></div>
+<div class="ttc" id="classflatbuffers_1_1_default_allocator_html"><div class="ttname"><a href="classflatbuffers_1_1_default_allocator.html">flatbuffers::DefaultAllocator</a></div><div class="ttdef"><b>Definition:</b> flatbuffers.h:394</div></div>
+<div class="ttc" id="classflatbuffers_1_1_flat_buffer_builder_html_aa905b29dce19a1795c7bce375cf29961"><div class="ttname"><a href="classflatbuffers_1_1_flat_buffer_builder.html#aa905b29dce19a1795c7bce375cf29961">flatbuffers::FlatBufferBuilder::DedupVtables</a></div><div class="ttdeci">void DedupVtables(bool dedup)</div><div class="ttdoc">By default vtables are deduped in order to save space. </div><div class="ttdef"><b>Definition:</b> flatbuffers.h:829</div></div>
+<div class="ttc" id="classflatbuffers_1_1_flat_buffer_builder_html_af8c7583c92e1d1d6f438977da5158d19"><div class="ttname"><a href="classflatbuffers_1_1_flat_buffer_builder.html#af8c7583c92e1d1d6f438977da5158d19">flatbuffers::FlatBufferBuilder::kFileIdentifierLength</a></div><div class="ttdeci">static const size_t kFileIdentifierLength</div><div class="ttdoc">The length of a FlatBuffer file header. </div><div class="ttdef"><b>Definition:</b> flatbuffers.h:1526</div></div>
+<div class="ttc" id="classflatbuffers_1_1_flat_buffer_builder_html_ab0173786ea4ec3e4ae10555639b2996c"><div class="ttname"><a href="classflatbuffers_1_1_flat_buffer_builder.html#ab0173786ea4ec3e4ae10555639b2996c">flatbuffers::FlatBufferBuilder::FlatBufferBuilder</a></div><div class="ttdeci">FlatBufferBuilder(size_t initial_size=1024, Allocator *allocator=nullptr, bool own_allocator=false, size_t buffer_minalign=AlignOf&lt; largest_scalar_t &gt;())</div><div class="ttdoc">Default constructor for FlatBufferBuilder. </div><div class="ttdef"><b>Definition:</b> flatbuffers.h:731</div></div>
+<div class="ttc" id="classflatbuffers_1_1_flat_buffer_builder_html_ac0b6a1c5d949f20ad84367fc0f9e1506"><div class="ttname"><a href="classflatbuffers_1_1_flat_buffer_builder.html#ac0b6a1c5d949f20ad84367fc0f9e1506">flatbuffers::FlatBufferBuilder::CreateString</a></div><div class="ttdeci">Offset&lt; String &gt; CreateString(const String *str)</div><div class="ttdoc">Store a string in the buffer, which can contain any binary data. </div><div class="ttdef"><b>Definition:</b> flatbuffers.h:1080</div></div>
+<div class="ttc" id="classflatbuffers_1_1vector__downward_html"><div class="ttname"><a href="classflatbuffers_1_1vector__downward.html">flatbuffers::vector_downward</a></div><div class="ttdef"><b>Definition:</b> flatbuffers.h:526</div></div>
+<div class="ttc" id="classflatbuffers_1_1_flat_buffer_builder_html_a799701af34c398d8eb86e049b73bcecf"><div class="ttname"><a href="classflatbuffers_1_1_flat_buffer_builder.html#a799701af34c398d8eb86e049b73bcecf">flatbuffers::FlatBufferBuilder::CreateVectorOfSortedNativeStructs</a></div><div class="ttdeci">Offset&lt; Vector&lt; const T * &gt; &gt; CreateVectorOfSortedNativeStructs(S *v, size_t len)</div><div class="ttdoc">Serialize an array of native structs into a FlatBuffer vector in sorted order. </div><div class="ttdef"><b>Definition:</b> flatbuffers.h:1433</div></div>
+<div class="ttc" id="classflatbuffers_1_1_flat_buffer_builder_html_a840b769fbb4148f97d3eed266e4690c3"><div class="ttname"><a href="classflatbuffers_1_1_flat_buffer_builder.html#a840b769fbb4148f97d3eed266e4690c3">flatbuffers::FlatBufferBuilder::CreateSharedString</a></div><div class="ttdeci">Offset&lt; String &gt; CreateSharedString(const String *str)</div><div class="ttdoc">Store a string in the buffer, which can contain any binary data. </div><div class="ttdef"><b>Definition:</b> flatbuffers.h:1140</div></div>
+<div class="ttc" id="classflatbuffers_1_1_flat_buffer_builder_html_a099810f03046139d1854d20a1c2a2e41"><div class="ttname"><a href="classflatbuffers_1_1_flat_buffer_builder.html#a099810f03046139d1854d20a1c2a2e41">flatbuffers::FlatBufferBuilder::GetCurrentBufferPointer</a></div><div class="ttdeci">uint8_t * GetCurrentBufferPointer() const</div><div class="ttdoc">Get a pointer to an unfinished buffer. </div><div class="ttdef"><b>Definition:</b> flatbuffers.h:782</div></div>
+<div class="ttc" id="classflatbuffers_1_1_flat_buffer_builder_html_ab77d800e77fa76bc758a6c399fd37685"><div class="ttname"><a href="classflatbuffers_1_1_flat_buffer_builder.html#ab77d800e77fa76bc758a6c399fd37685">flatbuffers::FlatBufferBuilder::CreateString</a></div><div class="ttdeci">Offset&lt; String &gt; CreateString(const T &amp;str)</div><div class="ttdoc">Store a string in the buffer, which can contain any binary data. </div><div class="ttdef"><b>Definition:</b> flatbuffers.h:1088</div></div>
+<div class="ttc" id="classflatbuffers_1_1_flat_buffer_builder_html_a7cc10b709dfa3e72083843d1a5e36c15"><div class="ttname"><a href="classflatbuffers_1_1_flat_buffer_builder.html#a7cc10b709dfa3e72083843d1a5e36c15">flatbuffers::FlatBufferBuilder::CreateVectorOfSortedStructs</a></div><div class="ttdeci">Offset&lt; Vector&lt; const T * &gt; &gt; CreateVectorOfSortedStructs(std::vector&lt; T &gt; *v)</div><div class="ttdoc">Serialize a std::vector of structs into a FlatBuffer vector in sorted order. </div><div class="ttdef"><b>Definition:</b> flatbuffers.h:1391</div></div>
+<div class="ttc" id="classflatbuffers_1_1_flat_buffer_builder_html_a592110519a6c8db1926f1365bf2a58e6"><div class="ttname"><a href="classflatbuffers_1_1_flat_buffer_builder.html#a592110519a6c8db1926f1365bf2a58e6">flatbuffers::FlatBufferBuilder::CreateVectorOfStrings</a></div><div class="ttdeci">Offset&lt; Vector&lt; Offset&lt; String &gt; &gt; &gt; CreateVectorOfStrings(const std::vector&lt; std::string &gt; &amp;v)</div><div class="ttdoc">Serialize a std::vector&lt;std::string&gt; into a FlatBuffer vector. </div><div class="ttdef"><b>Definition:</b> flatbuffers.h:1265</div></div>
+<div class="ttc" id="classflatbuffers_1_1_flat_buffer_builder_html_a53504fc2cab681a7980b03260f8b2f7a"><div class="ttname"><a href="classflatbuffers_1_1_flat_buffer_builder.html#a53504fc2cab681a7980b03260f8b2f7a">flatbuffers::FlatBufferBuilder::CreateVector</a></div><div class="ttdeci">Offset&lt; Vector&lt; T &gt; &gt; CreateVector(size_t vector_size, F f, S *state)</div><div class="ttdoc">Serialize values returned by a function into a FlatBuffer vector. </div><div class="ttdef"><b>Definition:</b> flatbuffers.h:1253</div></div>
+<div class="ttc" id="classflatbuffers_1_1_flat_buffer_builder_html_aa1ebce1f3f46832946a95952af1e9c2b"><div class="ttname"><a href="classflatbuffers_1_1_flat_buffer_builder.html#aa1ebce1f3f46832946a95952af1e9c2b">flatbuffers::FlatBufferBuilder::GetBufferMinAlignment</a></div><div class="ttdeci">size_t GetBufferMinAlignment()</div><div class="ttdoc">get the minimum alignment this buffer needs to be accessed properly. </div><div class="ttdef"><b>Definition:</b> flatbuffers.h:806</div></div>
+<div class="ttc" id="classflatbuffers_1_1_flat_buffer_builder_html_a110c2a3298aebef1a9dfa3c44ee84f42"><div class="ttname"><a href="classflatbuffers_1_1_flat_buffer_builder.html#a110c2a3298aebef1a9dfa3c44ee84f42">flatbuffers::FlatBufferBuilder::CreateVectorOfStructs</a></div><div class="ttdeci">Offset&lt; Vector&lt; const T * &gt; &gt; CreateVectorOfStructs(const std::vector&lt; T, Alloc &gt; &amp;v)</div><div class="ttdoc">Serialize a std::vector of structs into a FlatBuffer vector. </div><div class="ttdef"><b>Definition:</b> flatbuffers.h:1353</div></div>
+<div class="ttc" id="classflatbuffers_1_1_flat_buffer_builder_html_afede51fd9c32d146cbb1832f57c5e1b7"><div class="ttname"><a href="classflatbuffers_1_1_flat_buffer_builder.html#afede51fd9c32d146cbb1832f57c5e1b7">flatbuffers::FlatBufferBuilder::CreateVectorOfStructs</a></div><div class="ttdeci">Offset&lt; Vector&lt; const T * &gt; &gt; CreateVectorOfStructs(const T *v, size_t len)</div><div class="ttdoc">Serialize an array of structs into a FlatBuffer vector. </div><div class="ttdef"><b>Definition:</b> flatbuffers.h:1280</div></div>
+<div class="ttc" id="classflatbuffers_1_1_flat_buffer_builder_html_a11c291ccd2159604c149600ee6180b95"><div class="ttname"><a href="classflatbuffers_1_1_flat_buffer_builder.html#a11c291ccd2159604c149600ee6180b95">flatbuffers::FlatBufferBuilder::CreateVectorOfNativeStructs</a></div><div class="ttdeci">Offset&lt; Vector&lt; const T * &gt; &gt; CreateVectorOfNativeStructs(const std::vector&lt; S &gt; &amp;v)</div><div class="ttdoc">Serialize a std::vector of native structs into a FlatBuffer vector. </div><div class="ttdef"><b>Definition:</b> flatbuffers.h:1367</div></div>
+<div class="ttc" id="classflatbuffers_1_1_flat_buffer_builder_html_aad93d113ac24e86ed04b5236b3f4c0c5"><div class="ttname"><a href="classflatbuffers_1_1_flat_buffer_builder.html#aad93d113ac24e86ed04b5236b3f4c0c5">flatbuffers::FlatBufferBuilder::CreateString</a></div><div class="ttdeci">Offset&lt; String &gt; CreateString(const char *str)</div><div class="ttdoc">Store a string in the buffer, which is null-terminated. </div><div class="ttdef"><b>Definition:</b> flatbuffers.h:1059</div></div>
+<div class="ttc" id="classflatbuffers_1_1_allocator_html"><div class="ttname"><a href="classflatbuffers_1_1_allocator.html">flatbuffers::Allocator</a></div><div class="ttdef"><b>Definition:</b> flatbuffers.h:353</div></div>
+<div class="ttc" id="structflatbuffers_1_1_string_html"><div class="ttname"><a href="structflatbuffers_1_1_string.html">flatbuffers::String</a></div><div class="ttdef"><b>Definition:</b> flatbuffers.h:342</div></div>
+<div class="ttc" id="structflatbuffers_1_1_flat_buffer_builder_1_1_field_loc_html"><div class="ttname"><a href="structflatbuffers_1_1_flat_buffer_builder_1_1_field_loc.html">flatbuffers::FlatBufferBuilder::FieldLoc</a></div><div class="ttdef"><b>Definition:</b> flatbuffers.h:1571</div></div>
+<div class="ttc" id="classflatbuffers_1_1_flat_buffer_builder_html_a8c3af55e64f5cda9aefa38ac5287ef9f"><div class="ttname"><a href="classflatbuffers_1_1_flat_buffer_builder.html#a8c3af55e64f5cda9aefa38ac5287ef9f">flatbuffers::FlatBufferBuilder::CreateString</a></div><div class="ttdeci">Offset&lt; String &gt; CreateString(const std::string &amp;str)</div><div class="ttdoc">Store a string in the buffer, which can contain any binary data. </div><div class="ttdef"><b>Definition:</b> flatbuffers.h:1073</div></div>
+<div class="ttc" id="classflatbuffers_1_1_flat_buffer_builder_html_af715dd24dd37cb0151dc7a980ad0f207"><div class="ttname"><a href="classflatbuffers_1_1_flat_buffer_builder.html#af715dd24dd37cb0151dc7a980ad0f207">flatbuffers::FlatBufferBuilder::CreateVector</a></div><div class="ttdeci">Offset&lt; Vector&lt; T &gt; &gt; CreateVector(const std::vector&lt; T &gt; &amp;v)</div><div class="ttdoc">Serialize a std::vector into a FlatBuffer vector. </div><div class="ttdef"><b>Definition:</b> flatbuffers.h:1210</div></div>
+<div class="ttc" id="classflatbuffers_1_1_flat_buffer_builder_html_a2305b63d367845972b51669dd995cc50"><div class="ttname"><a href="classflatbuffers_1_1_flat_buffer_builder.html#a2305b63d367845972b51669dd995cc50">flatbuffers::FlatBufferBuilder::CreateUninitializedVector</a></div><div class="ttdeci">Offset&lt; Vector&lt; T &gt; &gt; CreateUninitializedVector(size_t len, T **buf)</div><div class="ttdoc">Specialized version of CreateVector for non-copying use cases. </div><div class="ttdef"><b>Definition:</b> flatbuffers.h:1512</div></div>
+<div class="ttc" id="classflatbuffers_1_1_flat_buffer_builder_html_a2cca5c89246a53e80e6ad9487f4c36f3"><div class="ttname"><a href="classflatbuffers_1_1_flat_buffer_builder.html#a2cca5c89246a53e80e6ad9487f4c36f3">flatbuffers::FlatBufferBuilder::CreateVector</a></div><div class="ttdeci">Offset&lt; Vector&lt; T &gt; &gt; CreateVector(const T *v, size_t len)</div><div class="ttdoc">Serialize an array into a FlatBuffer vector. </div><div class="ttdef"><b>Definition:</b> flatbuffers.h:1176</div></div>
+<div class="ttc" id="classflatbuffers_1_1_flat_buffer_builder_html_a10e8ec7d1c8fbdc21b1c7047bbbe38d9"><div class="ttname"><a href="classflatbuffers_1_1_flat_buffer_builder.html#a10e8ec7d1c8fbdc21b1c7047bbbe38d9">flatbuffers::FlatBufferBuilder::CreateSharedString</a></div><div class="ttdeci">Offset&lt; String &gt; CreateSharedString(const std::string &amp;str)</div><div class="ttdoc">Store a string in the buffer, which can contain any binary data. </div><div class="ttdef"><b>Definition:</b> flatbuffers.h:1131</div></div>
+<div class="ttc" id="classflatbuffers_1_1_flat_buffer_builder_html_a2130ef232ff405eebe2e7f184ecd06e6"><div class="ttname"><a href="classflatbuffers_1_1_flat_buffer_builder.html#a2130ef232ff405eebe2e7f184ecd06e6">flatbuffers::FlatBufferBuilder::CreateVectorOfSortedTables</a></div><div class="ttdeci">Offset&lt; Vector&lt; Offset&lt; T &gt; &gt; &gt; CreateVectorOfSortedTables(Offset&lt; T &gt; *v, size_t len)</div><div class="ttdoc">Serialize an array of table offsets as a vector in the buffer in sorted order. </div><div class="ttdef"><b>Definition:</b> flatbuffers.h:1466</div></div>
+<div class="ttc" id="classflatbuffers_1_1_flat_buffer_builder_html_a5e2c3a1e47f0ab4a3a3f07a07a52fb45"><div class="ttname"><a href="classflatbuffers_1_1_flat_buffer_builder.html#a5e2c3a1e47f0ab4a3a3f07a07a52fb45">flatbuffers::FlatBufferBuilder::Release</a></div><div class="ttdeci">DetachedBuffer Release()</div><div class="ttdoc">Get the released DetachedBuffer. </div><div class="ttdef"><b>Definition:</b> flatbuffers.h:796</div></div>
+<div class="ttc" id="classflatbuffers_1_1_flat_buffer_builder_html_ab478a645216d2d613fc7b7c29b0ff9d1"><div class="ttname"><a href="classflatbuffers_1_1_flat_buffer_builder.html#ab478a645216d2d613fc7b7c29b0ff9d1">flatbuffers::FlatBufferBuilder::CreateSharedString</a></div><div class="ttdeci">Offset&lt; String &gt; CreateSharedString(const char *str, size_t len)</div><div class="ttdoc">Store a string in the buffer, which can contain any binary data. </div><div class="ttdef"><b>Definition:</b> flatbuffers.h:1098</div></div>
+<div class="ttc" id="classflatbuffers_1_1_vector_html"><div class="ttname"><a href="classflatbuffers_1_1_vector.html">flatbuffers::Vector</a></div><div class="ttdef"><b>Definition:</b> flatbuffers.h:181</div></div>
+<div class="ttc" id="classflatbuffers_1_1_flat_buffer_builder_html_a0e715d9019060b4b753c4e5228be56e8"><div class="ttname"><a href="classflatbuffers_1_1_flat_buffer_builder.html#a0e715d9019060b4b753c4e5228be56e8">flatbuffers::FlatBufferBuilder::ReleaseBufferPointer</a></div><div class="ttdeci">DetachedBuffer ReleaseBufferPointer()</div><div class="ttdoc">Get the released pointer to the serialized buffer. </div><div class="ttdef"><b>Definition:</b> flatbuffers.h:789</div></div>
+<div class="ttc" id="classflatbuffers_1_1_flat_buffer_builder_html_a0c9e507b373d598b51052fab4fa34912"><div class="ttname"><a href="classflatbuffers_1_1_flat_buffer_builder.html#a0c9e507b373d598b51052fab4fa34912">flatbuffers::FlatBufferBuilder::Finish</a></div><div class="ttdeci">void Finish(Offset&lt; T &gt; root, const char *file_identifier=nullptr)</div><div class="ttdoc">Finish serializing a buffer by writing the root offset. </div><div class="ttdef"><b>Definition:</b> flatbuffers.h:1532</div></div>
+<div class="ttc" id="structflatbuffers_1_1_flat_buffer_builder_1_1_string_offset_compare_html"><div class="ttname"><a href="structflatbuffers_1_1_flat_buffer_builder_1_1_string_offset_compare.html">flatbuffers::FlatBufferBuilder::StringOffsetCompare</a></div><div class="ttdef"><b>Definition:</b> flatbuffers.h:1597</div></div>
 </div><!-- fragment --></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- Google Analytics -->
diff --git a/flatbuffers_benchmarks.html b/flatbuffers_benchmarks.html
index 705c2f9437866027a043222bdf3e22953b75bb1e..de18adb3950d70957758e4ad78cd7ac2ed4b9bfd 100644
--- a/flatbuffers_benchmarks.html
+++ b/flatbuffers_benchmarks.html
@@ -4,23 +4,21 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <title>FlatBuffers: C++ Benchmarks</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
 <link href="navtree.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
 <script type="text/javascript" src="navtree.js"></script>
 <script type="text/javascript">
   $(document).ready(initResizable);
-  $(window).load(resizeHeight);
 </script>
 <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
 <script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
-  $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,500italic,700,700italic|Roboto+Mono:400,700" rel="stylesheet">
 <link href="style.css" rel="stylesheet" type="text/css"/>
@@ -46,39 +44,19 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.7 -->
+<!-- Generated by Doxygen 1.8.13 -->
 <script type="text/javascript">
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </script>
-  <div id="navrow1" class="tabs">
-    <ul class="tablist">
-      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
-      <li><a href="usergroup0.html"><span>Programmer's&#160;Guide</span></a></li>
-      <li><a href="flatbuffers_support.html"><span>Platform&#160;/&#160;Language&#160;/&#160;Feature&#160;support</span></a></li>
-      <li><a href="flatbuffers_benchmarks.html"><span>Benchmarks</span></a></li>
-      <li><a href="flatbuffers_white_paper.html"><span>FlatBuffers&#160;white&#160;paper</span></a></li>
-      <li><a href="flatbuffers_internals.html"><span>FlatBuffers&#160;internals</span></a></li>
-      <li><a href="flatbuffers_grammar.html"><span>Grammar&#160;of&#160;the&#160;schema&#160;language</span></a></li>
-      <li><a href="usergroup2.html"><span>API&#160;Reference</span></a></li>
-      <li><a href="contributing.html"><span>Contributing</span></a></li>
-      <li>
-        <div id="MSearchBox" class="MSearchBoxInactive">
-        <span class="left">
-          <img id="MSearchSelect" src="search/mag_sel.png"
-               onmouseover="return searchBox.OnSearchSelectShow()"
-               onmouseout="return searchBox.OnSearchSelectHide()"
-               alt=""/>
-          <input type="text" id="MSearchField" value="Search" accesskey="S"
-               onfocus="searchBox.OnSearchFieldFocus(true)" 
-               onblur="searchBox.OnSearchFieldFocus(false)" 
-               onkeyup="searchBox.OnSearchFieldChange(event)"/>
-          </span><span class="right">
-            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
-          </span>
-        </div>
-      </li>
-    </ul>
-  </div>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -99,7 +77,7 @@ $(document).ready(function(){initNavTree('flatbuffers_benchmarks.html','');});
      onmouseover="return searchBox.OnSearchSelectShow()"
      onmouseout="return searchBox.OnSearchSelectHide()"
      onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Properties</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+</div>
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
diff --git a/flatbuffers_grammar.html b/flatbuffers_grammar.html
index 6187a72d353a3219e28f79758867a227e3165f16..352187113f133821580be1db0da7525286056e75 100644
--- a/flatbuffers_grammar.html
+++ b/flatbuffers_grammar.html
@@ -4,23 +4,21 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <title>FlatBuffers: Grammar of the schema language</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
 <link href="navtree.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
 <script type="text/javascript" src="navtree.js"></script>
 <script type="text/javascript">
   $(document).ready(initResizable);
-  $(window).load(resizeHeight);
 </script>
 <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
 <script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
-  $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,500italic,700,700italic|Roboto+Mono:400,700" rel="stylesheet">
 <link href="style.css" rel="stylesheet" type="text/css"/>
@@ -46,39 +44,19 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.7 -->
+<!-- Generated by Doxygen 1.8.13 -->
 <script type="text/javascript">
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </script>
-  <div id="navrow1" class="tabs">
-    <ul class="tablist">
-      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
-      <li><a href="usergroup0.html"><span>Programmer's&#160;Guide</span></a></li>
-      <li><a href="flatbuffers_support.html"><span>Platform&#160;/&#160;Language&#160;/&#160;Feature&#160;support</span></a></li>
-      <li><a href="flatbuffers_benchmarks.html"><span>Benchmarks</span></a></li>
-      <li><a href="flatbuffers_white_paper.html"><span>FlatBuffers&#160;white&#160;paper</span></a></li>
-      <li><a href="flatbuffers_internals.html"><span>FlatBuffers&#160;internals</span></a></li>
-      <li><a href="flatbuffers_grammar.html"><span>Grammar&#160;of&#160;the&#160;schema&#160;language</span></a></li>
-      <li><a href="usergroup2.html"><span>API&#160;Reference</span></a></li>
-      <li><a href="contributing.html"><span>Contributing</span></a></li>
-      <li>
-        <div id="MSearchBox" class="MSearchBoxInactive">
-        <span class="left">
-          <img id="MSearchSelect" src="search/mag_sel.png"
-               onmouseover="return searchBox.OnSearchSelectShow()"
-               onmouseout="return searchBox.OnSearchSelectHide()"
-               alt=""/>
-          <input type="text" id="MSearchField" value="Search" accesskey="S"
-               onfocus="searchBox.OnSearchFieldFocus(true)" 
-               onblur="searchBox.OnSearchFieldFocus(false)" 
-               onkeyup="searchBox.OnSearchFieldChange(event)"/>
-          </span><span class="right">
-            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
-          </span>
-        </div>
-      </li>
-    </ul>
-  </div>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -99,7 +77,7 @@ $(document).ready(function(){initNavTree('flatbuffers_grammar.html','');});
      onmouseover="return searchBox.OnSearchSelectShow()"
      onmouseout="return searchBox.OnSearchSelectHide()"
      onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Properties</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+</div>
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
diff --git a/flatbuffers_grpc_guide_use_cpp.html b/flatbuffers_grpc_guide_use_cpp.html
index 6a6256d4c63bbf2cdaaab0b7cdb75bc436212bf7..e495798a9b8d74873ebb351688bfa4e2eaa9d25a 100644
--- a/flatbuffers_grpc_guide_use_cpp.html
+++ b/flatbuffers_grpc_guide_use_cpp.html
@@ -4,23 +4,21 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <title>FlatBuffers: Use in C++</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
 <link href="navtree.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
 <script type="text/javascript" src="navtree.js"></script>
 <script type="text/javascript">
   $(document).ready(initResizable);
-  $(window).load(resizeHeight);
 </script>
 <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
 <script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
-  $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,500italic,700,700italic|Roboto+Mono:400,700" rel="stylesheet">
 <link href="style.css" rel="stylesheet" type="text/css"/>
@@ -46,39 +44,19 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.7 -->
+<!-- Generated by Doxygen 1.8.13 -->
 <script type="text/javascript">
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </script>
-  <div id="navrow1" class="tabs">
-    <ul class="tablist">
-      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
-      <li><a href="usergroup0.html"><span>Programmer's&#160;Guide</span></a></li>
-      <li><a href="flatbuffers_support.html"><span>Platform&#160;/&#160;Language&#160;/&#160;Feature&#160;support</span></a></li>
-      <li><a href="flatbuffers_benchmarks.html"><span>Benchmarks</span></a></li>
-      <li><a href="flatbuffers_white_paper.html"><span>FlatBuffers&#160;white&#160;paper</span></a></li>
-      <li><a href="flatbuffers_internals.html"><span>FlatBuffers&#160;internals</span></a></li>
-      <li><a href="flatbuffers_grammar.html"><span>Grammar&#160;of&#160;the&#160;schema&#160;language</span></a></li>
-      <li><a href="usergroup2.html"><span>API&#160;Reference</span></a></li>
-      <li><a href="contributing.html"><span>Contributing</span></a></li>
-      <li>
-        <div id="MSearchBox" class="MSearchBoxInactive">
-        <span class="left">
-          <img id="MSearchSelect" src="search/mag_sel.png"
-               onmouseover="return searchBox.OnSearchSelectShow()"
-               onmouseout="return searchBox.OnSearchSelectHide()"
-               alt=""/>
-          <input type="text" id="MSearchField" value="Search" accesskey="S"
-               onfocus="searchBox.OnSearchFieldFocus(true)" 
-               onblur="searchBox.OnSearchFieldFocus(false)" 
-               onkeyup="searchBox.OnSearchFieldChange(event)"/>
-          </span><span class="right">
-            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
-          </span>
-        </div>
-      </li>
-    </ul>
-  </div>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -99,7 +77,7 @@ $(document).ready(function(){initNavTree('flatbuffers_grpc_guide_use_cpp.html','
      onmouseover="return searchBox.OnSearchSelectShow()"
      onmouseout="return searchBox.OnSearchSelectHide()"
      onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Properties</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+</div>
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
@@ -122,192 +100,10 @@ $(document).ready(function(){initNavTree('flatbuffers_grpc_guide_use_cpp.html','
 <h2>Using the FlatBuffers gRPC C++ library</h2>
 <p>NOTE: The examples below are also in the <code>grpc/samples/greeter</code> directory.</p>
 <p>We will illustrate usage with the following schema:</p>
-<div class="fragment"><div class="line">table HelloReply {</div>
-<div class="line">  message:string;</div>
-<div class="line">}</div>
-<div class="line"></div>
-<div class="line">table HelloRequest {</div>
-<div class="line">  name:string;</div>
-<div class="line">}</div>
-<div class="line"></div>
-<div class="line">table ManyHellosRequest {</div>
-<div class="line">  name:string;</div>
-<div class="line">  num_greetings:int;</div>
-<div class="line">}</div>
-<div class="line"></div>
-<div class="line">rpc_service Greeter {</div>
-<div class="line">  SayHello(HelloRequest):HelloReply;</div>
-<div class="line">  SayManyHellos(ManyHellosRequest):HelloReply (streaming: <span class="stringliteral">&quot;server&quot;</span>);</div>
-<div class="line">}</div>
-</div><!-- fragment --><p>When we run <code>flatc</code>, we pass in the <code>--grpc</code> option and generage an additional <code>greeter.grpc.fb.h</code> and <code>greeter.grpc.fb.cc</code>.</p>
+<div class="fragment"><div class="line">table HelloReply {</div><div class="line">  message:string;</div><div class="line">}</div><div class="line"></div><div class="line">table HelloRequest {</div><div class="line">  name:string;</div><div class="line">}</div><div class="line"></div><div class="line">table ManyHellosRequest {</div><div class="line">  name:string;</div><div class="line">  num_greetings:int;</div><div class="line">}</div><div class="line"></div><div class="line">rpc_service Greeter {</div><div class="line">  SayHello(HelloRequest):HelloReply;</div><div class="line">  SayManyHellos(ManyHellosRequest):HelloReply (streaming: &quot;server&quot;);</div><div class="line">}</div></div><!-- fragment --><p>When we run <code>flatc</code>, we pass in the <code>--grpc</code> option and generage an additional <code>greeter.grpc.fb.h</code> and <code>greeter.grpc.fb.cc</code>.</p>
 <p>Example server code looks like this:</p>
-<div class="fragment"><div class="line"><span class="preprocessor">#include &quot;greeter.grpc.fb.h&quot;</span></div>
-<div class="line"><span class="preprocessor">#include &quot;greeter_generated.h&quot;</span></div>
-<div class="line"></div>
-<div class="line"><span class="preprocessor">#include &lt;grpc++/grpc++.h&gt;</span></div>
-<div class="line"></div>
-<div class="line"><span class="preprocessor">#include &lt;iostream&gt;</span></div>
-<div class="line"><span class="preprocessor">#include &lt;memory&gt;</span></div>
-<div class="line"><span class="preprocessor">#include &lt;string&gt;</span></div>
-<div class="line"></div>
-<div class="line"><span class="keyword">class </span>GreeterServiceImpl final : <span class="keyword">public</span> Greeter::Service {</div>
-<div class="line">  <span class="keyword">virtual</span> grpc::Status SayHello(</div>
-<div class="line">      grpc::ServerContext *context,</div>
-<div class="line">      <span class="keyword">const</span> flatbuffers::grpc::Message&lt;HelloRequest&gt; *request_msg,</div>
-<div class="line">      flatbuffers::grpc::Message&lt;HelloReply&gt; *response_msg)<span class="keyword"> override </span>{</div>
-<div class="line">    <span class="comment">// flatbuffers::grpc::MessageBuilder mb_;</span></div>
-<div class="line">    <span class="comment">// We call GetRoot to &quot;parse&quot; the message. Verification is already</span></div>
-<div class="line">    <span class="comment">// performed by default. See the notes below for more details.</span></div>
-<div class="line">    <span class="keyword">const</span> HelloRequest *request = request_msg-&gt;GetRoot();</div>
-<div class="line"></div>
-<div class="line">    <span class="comment">// Fields are retrieved as usual with FlatBuffers</span></div>
-<div class="line">    <span class="keyword">const</span> std::string &amp;name = request-&gt;name()-&gt;str();</div>
-<div class="line"></div>
-<div class="line">    <span class="comment">// `flatbuffers::grpc::MessageBuilder` is a `FlatBufferBuilder` with a</span></div>
-<div class="line">    <span class="comment">// special allocator for efficient gRPC buffer transfer, but otherwise</span></div>
-<div class="line">    <span class="comment">// usage is the same as usual.</span></div>
-<div class="line">    <span class="keyword">auto</span> msg_offset = mb_.CreateString(<span class="stringliteral">&quot;Hello, &quot;</span> + name);</div>
-<div class="line">    <span class="keyword">auto</span> hello_offset = CreateHelloReply(mb_, msg_offset);</div>
-<div class="line">    mb_.Finish(hello_offset);</div>
-<div class="line"></div>
-<div class="line">    <span class="comment">// The `ReleaseMessage&lt;T&gt;()` function detaches the message from the</span></div>
-<div class="line">    <span class="comment">// builder, so we can transfer the resopnse to gRPC while simultaneously</span></div>
-<div class="line">    <span class="comment">// detaching that memory buffer from the builer.</span></div>
-<div class="line">    *response_msg = mb_.ReleaseMessage&lt;HelloReply&gt;();</div>
-<div class="line">    assert(response_msg-&gt;Verify());</div>
-<div class="line"></div>
-<div class="line">    <span class="comment">// Return an OK status.</span></div>
-<div class="line">    <span class="keywordflow">return</span> grpc::Status::OK;</div>
-<div class="line">  }</div>
-<div class="line"></div>
-<div class="line">  <span class="keyword">virtual</span> grpc::Status SayManyHellos(</div>
-<div class="line">      grpc::ServerContext *context,</div>
-<div class="line">      <span class="keyword">const</span> flatbuffers::grpc::Message&lt;ManyHellosRequest&gt; *request_msg,</div>
-<div class="line">      grpc::ServerWriter&lt;flatbuffers::grpc::Message&lt;HelloReply&gt;&gt; *writer)<span class="keyword"></span></div>
-<div class="line"><span class="keyword">      override </span>{</div>
-<div class="line">    <span class="comment">// The streaming usage below is simply a combination of standard gRPC</span></div>
-<div class="line">    <span class="comment">// streaming with the FlatBuffers usage shown above.</span></div>
-<div class="line">    <span class="keyword">const</span> ManyHellosRequest *request = request_msg-&gt;GetRoot();</div>
-<div class="line">    <span class="keyword">const</span> std::string &amp;name = request-&gt;name()-&gt;str();</div>
-<div class="line">    <span class="keywordtype">int</span> num_greetings = request-&gt;num_greetings();</div>
-<div class="line"></div>
-<div class="line">    <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; num_greetings; i++) {</div>
-<div class="line">      <span class="keyword">auto</span> msg_offset = mb_.CreateString(<span class="stringliteral">&quot;Many hellos, &quot;</span> + name);</div>
-<div class="line">      <span class="keyword">auto</span> hello_offset = CreateHelloReply(mb_, msg_offset);</div>
-<div class="line">      mb_.Finish(hello_offset);</div>
-<div class="line">      writer-&gt;Write(mb_.ReleaseMessage&lt;HelloReply&gt;());</div>
-<div class="line">    }</div>
-<div class="line"></div>
-<div class="line">    <span class="keywordflow">return</span> grpc::Status::OK;</div>
-<div class="line">  }</div>
-<div class="line"></div>
-<div class="line">  flatbuffers::grpc::MessageBuilder mb_;</div>
-<div class="line">};</div>
-<div class="line"></div>
-<div class="line"><span class="keywordtype">void</span> RunServer() {</div>
-<div class="line">  std::string server_address(<span class="stringliteral">&quot;0.0.0.0:50051&quot;</span>);</div>
-<div class="line">  GreeterServiceImpl service;</div>
-<div class="line"></div>
-<div class="line">  grpc::ServerBuilder builder;</div>
-<div class="line">  builder.AddListeningPort(server_address, grpc::InsecureServerCredentials());</div>
-<div class="line">  builder.RegisterService(&amp;service);</div>
-<div class="line">  std::unique_ptr&lt;grpc::Server&gt; server(builder.BuildAndStart());</div>
-<div class="line">  std::cerr &lt;&lt; <span class="stringliteral">&quot;Server listening on &quot;</span> &lt;&lt; server_address &lt;&lt; std::endl;</div>
-<div class="line"></div>
-<div class="line">  server-&gt;Wait();</div>
-<div class="line">}</div>
-<div class="line"></div>
-<div class="line"><span class="keywordtype">int</span> main(<span class="keywordtype">int</span> argc, <span class="keyword">const</span> <span class="keywordtype">char</span> *argv[]) {</div>
-<div class="line">  RunServer();</div>
-<div class="line">  <span class="keywordflow">return</span> 0;</div>
-<div class="line">}</div>
-</div><!-- fragment --><p>Example client code looks like this:</p>
-<div class="fragment"><div class="line"><span class="preprocessor">#include &quot;greeter.grpc.fb.h&quot;</span></div>
-<div class="line"><span class="preprocessor">#include &quot;greeter_generated.h&quot;</span></div>
-<div class="line"></div>
-<div class="line"><span class="preprocessor">#include &lt;grpc++/grpc++.h&gt;</span></div>
-<div class="line"></div>
-<div class="line"><span class="preprocessor">#include &lt;iostream&gt;</span></div>
-<div class="line"><span class="preprocessor">#include &lt;memory&gt;</span></div>
-<div class="line"><span class="preprocessor">#include &lt;string&gt;</span></div>
-<div class="line"></div>
-<div class="line"><span class="keyword">class </span>GreeterClient {</div>
-<div class="line"> <span class="keyword">public</span>:</div>
-<div class="line">  GreeterClient(std::shared_ptr&lt;grpc::Channel&gt; channel)</div>
-<div class="line">    : stub_(Greeter::NewStub(channel)) {}</div>
-<div class="line"></div>
-<div class="line">  std::string SayHello(<span class="keyword">const</span> std::string &amp;name) {</div>
-<div class="line">    flatbuffers::grpc::MessageBuilder mb;</div>
-<div class="line">    <span class="keyword">auto</span> name_offset = mb.CreateString(name);</div>
-<div class="line">    <span class="keyword">auto</span> request_offset = CreateHelloRequest(mb, name_offset);</div>
-<div class="line">    mb.Finish(request_offset);</div>
-<div class="line">    <span class="keyword">auto</span> request_msg = mb.ReleaseMessage&lt;HelloRequest&gt;();</div>
-<div class="line"></div>
-<div class="line">    flatbuffers::grpc::Message&lt;HelloReply&gt; response_msg;</div>
-<div class="line"></div>
-<div class="line">    grpc::ClientContext context;</div>
-<div class="line"></div>
-<div class="line">    <span class="keyword">auto</span> status = stub_-&gt;SayHello(&amp;context, request_msg, &amp;response_msg);</div>
-<div class="line">    <span class="keywordflow">if</span> (status.ok()) {</div>
-<div class="line">      <span class="keyword">const</span> HelloReply *response = response_msg.GetRoot();</div>
-<div class="line">      <span class="keywordflow">return</span> response-&gt;message()-&gt;str();</div>
-<div class="line">    } <span class="keywordflow">else</span> {</div>
-<div class="line">      std::cerr &lt;&lt; status.error_code() &lt;&lt; <span class="stringliteral">&quot;: &quot;</span> &lt;&lt; status.error_message()</div>
-<div class="line">                &lt;&lt; std::endl;</div>
-<div class="line">      <span class="keywordflow">return</span> <span class="stringliteral">&quot;RPC failed&quot;</span>;</div>
-<div class="line">    }</div>
-<div class="line">  }</div>
-<div class="line"></div>
-<div class="line">  <span class="keywordtype">void</span> SayManyHellos(<span class="keyword">const</span> std::string &amp;name, <span class="keywordtype">int</span> num_greetings,</div>
-<div class="line">                     std::function&lt;<span class="keywordtype">void</span>(<span class="keyword">const</span> std::string &amp;)&gt; callback) {</div>
-<div class="line">    flatbuffers::grpc::MessageBuilder mb;</div>
-<div class="line">    <span class="keyword">auto</span> name_offset = mb.CreateString(name);</div>
-<div class="line">    <span class="keyword">auto</span> request_offset =</div>
-<div class="line">        CreateManyHellosRequest(mb, name_offset, num_greetings);</div>
-<div class="line">    mb.Finish(request_offset);</div>
-<div class="line">    <span class="keyword">auto</span> request_msg = mb.ReleaseMessage&lt;ManyHellosRequest&gt;();</div>
-<div class="line"></div>
-<div class="line">    flatbuffers::grpc::Message&lt;HelloReply&gt; response_msg;</div>
-<div class="line"></div>
-<div class="line">    grpc::ClientContext context;</div>
-<div class="line"></div>
-<div class="line">    <span class="keyword">auto</span> stream = stub_-&gt;SayManyHellos(&amp;context, request_msg);</div>
-<div class="line">    <span class="keywordflow">while</span> (stream-&gt;Read(&amp;response_msg)) {</div>
-<div class="line">      <span class="keyword">const</span> HelloReply *response = response_msg.GetRoot();</div>
-<div class="line">      callback(response-&gt;message()-&gt;str());</div>
-<div class="line">    }</div>
-<div class="line">    <span class="keyword">auto</span> status = stream-&gt;Finish();</div>
-<div class="line">    <span class="keywordflow">if</span> (!status.ok()) {</div>
-<div class="line">      std::cerr &lt;&lt; status.error_code() &lt;&lt; <span class="stringliteral">&quot;: &quot;</span> &lt;&lt; status.error_message()</div>
-<div class="line">                &lt;&lt; std::endl;</div>
-<div class="line">      callback(<span class="stringliteral">&quot;RPC failed&quot;</span>);</div>
-<div class="line">    }</div>
-<div class="line">  }</div>
-<div class="line"></div>
-<div class="line"> <span class="keyword">private</span>:</div>
-<div class="line">  std::unique_ptr&lt;Greeter::Stub&gt; stub_;</div>
-<div class="line">};</div>
-<div class="line"></div>
-<div class="line"><span class="keywordtype">int</span> main(<span class="keywordtype">int</span> argc, <span class="keywordtype">char</span> **argv) {</div>
-<div class="line">  std::string server_address(<span class="stringliteral">&quot;localhost:50051&quot;</span>);</div>
-<div class="line"></div>
-<div class="line">  <span class="keyword">auto</span> channel =</div>
-<div class="line">      grpc::CreateChannel(server_address, grpc::InsecureChannelCredentials());</div>
-<div class="line">  GreeterClient greeter(channel);</div>
-<div class="line"></div>
-<div class="line">  std::string name(<span class="stringliteral">&quot;world&quot;</span>);</div>
-<div class="line"></div>
-<div class="line">  std::string message = greeter.SayHello(name);</div>
-<div class="line">  std::cerr &lt;&lt; <span class="stringliteral">&quot;Greeter received: &quot;</span> &lt;&lt; message &lt;&lt; std::endl;</div>
-<div class="line"></div>
-<div class="line">  <span class="keywordtype">int</span> num_greetings = 10;</div>
-<div class="line">  greeter.SayManyHellos(name, num_greetings, [](<span class="keyword">const</span> std::string &amp;message) {</div>
-<div class="line">    std::cerr &lt;&lt; <span class="stringliteral">&quot;Greeter received: &quot;</span> &lt;&lt; message &lt;&lt; std::endl;</div>
-<div class="line">  });</div>
-<div class="line"></div>
-<div class="line">  <span class="keywordflow">return</span> 0;</div>
-<div class="line">}</div>
-</div><!-- fragment --> </div></div><!-- contents -->
+<div class="fragment"><div class="line"><span class="preprocessor">#include &quot;greeter.grpc.fb.h&quot;</span></div><div class="line"><span class="preprocessor">#include &quot;greeter_generated.h&quot;</span></div><div class="line"></div><div class="line"><span class="preprocessor">#include &lt;grpc++/grpc++.h&gt;</span></div><div class="line"></div><div class="line"><span class="preprocessor">#include &lt;iostream&gt;</span></div><div class="line"><span class="preprocessor">#include &lt;memory&gt;</span></div><div class="line"><span class="preprocessor">#include &lt;string&gt;</span></div><div class="line"></div><div class="line"><span class="keyword">class </span>GreeterServiceImpl final : <span class="keyword">public</span> Greeter::Service {</div><div class="line">  <span class="keyword">virtual</span> grpc::Status SayHello(</div><div class="line">      grpc::ServerContext *context,</div><div class="line">      <span class="keyword">const</span> flatbuffers::grpc::Message&lt;HelloRequest&gt; *request_msg,</div><div class="line">      flatbuffers::grpc::Message&lt;HelloReply&gt; *response_msg)<span class="keyword"> override </span>{</div><div class="line">    <span class="comment">// flatbuffers::grpc::MessageBuilder mb_;</span></div><div class="line">    <span class="comment">// We call GetRoot to &quot;parse&quot; the message. Verification is already</span></div><div class="line">    <span class="comment">// performed by default. See the notes below for more details.</span></div><div class="line">    <span class="keyword">const</span> HelloRequest *request = request_msg-&gt;GetRoot();</div><div class="line"></div><div class="line">    <span class="comment">// Fields are retrieved as usual with FlatBuffers</span></div><div class="line">    <span class="keyword">const</span> std::string &amp;name = request-&gt;name()-&gt;str();</div><div class="line"></div><div class="line">    <span class="comment">// `flatbuffers::grpc::MessageBuilder` is a `FlatBufferBuilder` with a</span></div><div class="line">    <span class="comment">// special allocator for efficient gRPC buffer transfer, but otherwise</span></div><div class="line">    <span class="comment">// usage is the same as usual.</span></div><div class="line">    <span class="keyword">auto</span> msg_offset = mb_.CreateString(<span class="stringliteral">&quot;Hello, &quot;</span> + name);</div><div class="line">    <span class="keyword">auto</span> hello_offset = CreateHelloReply(mb_, msg_offset);</div><div class="line">    mb_.Finish(hello_offset);</div><div class="line"></div><div class="line">    <span class="comment">// The `ReleaseMessage&lt;T&gt;()` function detaches the message from the</span></div><div class="line">    <span class="comment">// builder, so we can transfer the resopnse to gRPC while simultaneously</span></div><div class="line">    <span class="comment">// detaching that memory buffer from the builer.</span></div><div class="line">    *response_msg = mb_.ReleaseMessage&lt;HelloReply&gt;();</div><div class="line">    assert(response_msg-&gt;Verify());</div><div class="line"></div><div class="line">    <span class="comment">// Return an OK status.</span></div><div class="line">    <span class="keywordflow">return</span> grpc::Status::OK;</div><div class="line">  }</div><div class="line"></div><div class="line">  <span class="keyword">virtual</span> grpc::Status SayManyHellos(</div><div class="line">      grpc::ServerContext *context,</div><div class="line">      <span class="keyword">const</span> flatbuffers::grpc::Message&lt;ManyHellosRequest&gt; *request_msg,</div><div class="line">      grpc::ServerWriter&lt;flatbuffers::grpc::Message&lt;HelloReply&gt;&gt; *writer)<span class="keyword"></span></div><div class="line"><span class="keyword">      override </span>{</div><div class="line">    <span class="comment">// The streaming usage below is simply a combination of standard gRPC</span></div><div class="line">    <span class="comment">// streaming with the FlatBuffers usage shown above.</span></div><div class="line">    <span class="keyword">const</span> ManyHellosRequest *request = request_msg-&gt;GetRoot();</div><div class="line">    <span class="keyword">const</span> std::string &amp;name = request-&gt;name()-&gt;str();</div><div class="line">    <span class="keywordtype">int</span> num_greetings = request-&gt;num_greetings();</div><div class="line"></div><div class="line">    <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; num_greetings; i++) {</div><div class="line">      <span class="keyword">auto</span> msg_offset = mb_.CreateString(<span class="stringliteral">&quot;Many hellos, &quot;</span> + name);</div><div class="line">      <span class="keyword">auto</span> hello_offset = CreateHelloReply(mb_, msg_offset);</div><div class="line">      mb_.Finish(hello_offset);</div><div class="line">      writer-&gt;Write(mb_.ReleaseMessage&lt;HelloReply&gt;());</div><div class="line">    }</div><div class="line"></div><div class="line">    <span class="keywordflow">return</span> grpc::Status::OK;</div><div class="line">  }</div><div class="line"></div><div class="line">  flatbuffers::grpc::MessageBuilder mb_;</div><div class="line">};</div><div class="line"></div><div class="line"><span class="keywordtype">void</span> RunServer() {</div><div class="line">  std::string server_address(<span class="stringliteral">&quot;0.0.0.0:50051&quot;</span>);</div><div class="line">  GreeterServiceImpl service;</div><div class="line"></div><div class="line">  grpc::ServerBuilder builder;</div><div class="line">  builder.AddListeningPort(server_address, grpc::InsecureServerCredentials());</div><div class="line">  builder.RegisterService(&amp;service);</div><div class="line">  std::unique_ptr&lt;grpc::Server&gt; server(builder.BuildAndStart());</div><div class="line">  std::cerr &lt;&lt; <span class="stringliteral">&quot;Server listening on &quot;</span> &lt;&lt; server_address &lt;&lt; std::endl;</div><div class="line"></div><div class="line">  server-&gt;Wait();</div><div class="line">}</div><div class="line"></div><div class="line"><span class="keywordtype">int</span> main(<span class="keywordtype">int</span> argc, <span class="keyword">const</span> <span class="keywordtype">char</span> *argv[]) {</div><div class="line">  RunServer();</div><div class="line">  <span class="keywordflow">return</span> 0;</div><div class="line">}</div></div><!-- fragment --><p>Example client code looks like this:</p>
+<div class="fragment"><div class="line"><span class="preprocessor">#include &quot;greeter.grpc.fb.h&quot;</span></div><div class="line"><span class="preprocessor">#include &quot;greeter_generated.h&quot;</span></div><div class="line"></div><div class="line"><span class="preprocessor">#include &lt;grpc++/grpc++.h&gt;</span></div><div class="line"></div><div class="line"><span class="preprocessor">#include &lt;iostream&gt;</span></div><div class="line"><span class="preprocessor">#include &lt;memory&gt;</span></div><div class="line"><span class="preprocessor">#include &lt;string&gt;</span></div><div class="line"></div><div class="line"><span class="keyword">class </span>GreeterClient {</div><div class="line"> <span class="keyword">public</span>:</div><div class="line">  GreeterClient(std::shared_ptr&lt;grpc::Channel&gt; channel)</div><div class="line">    : stub_(Greeter::NewStub(channel)) {}</div><div class="line"></div><div class="line">  std::string SayHello(<span class="keyword">const</span> std::string &amp;name) {</div><div class="line">    flatbuffers::grpc::MessageBuilder mb;</div><div class="line">    <span class="keyword">auto</span> name_offset = mb.CreateString(name);</div><div class="line">    <span class="keyword">auto</span> request_offset = CreateHelloRequest(mb, name_offset);</div><div class="line">    mb.Finish(request_offset);</div><div class="line">    <span class="keyword">auto</span> request_msg = mb.ReleaseMessage&lt;HelloRequest&gt;();</div><div class="line"></div><div class="line">    flatbuffers::grpc::Message&lt;HelloReply&gt; response_msg;</div><div class="line"></div><div class="line">    grpc::ClientContext context;</div><div class="line"></div><div class="line">    <span class="keyword">auto</span> status = stub_-&gt;SayHello(&amp;context, request_msg, &amp;response_msg);</div><div class="line">    <span class="keywordflow">if</span> (status.ok()) {</div><div class="line">      <span class="keyword">const</span> HelloReply *response = response_msg.GetRoot();</div><div class="line">      <span class="keywordflow">return</span> response-&gt;message()-&gt;str();</div><div class="line">    } <span class="keywordflow">else</span> {</div><div class="line">      std::cerr &lt;&lt; status.error_code() &lt;&lt; <span class="stringliteral">&quot;: &quot;</span> &lt;&lt; status.error_message()</div><div class="line">                &lt;&lt; std::endl;</div><div class="line">      <span class="keywordflow">return</span> <span class="stringliteral">&quot;RPC failed&quot;</span>;</div><div class="line">    }</div><div class="line">  }</div><div class="line"></div><div class="line">  <span class="keywordtype">void</span> SayManyHellos(<span class="keyword">const</span> std::string &amp;name, <span class="keywordtype">int</span> num_greetings,</div><div class="line">                     std::function&lt;<span class="keywordtype">void</span>(<span class="keyword">const</span> std::string &amp;)&gt; callback) {</div><div class="line">    flatbuffers::grpc::MessageBuilder mb;</div><div class="line">    <span class="keyword">auto</span> name_offset = mb.CreateString(name);</div><div class="line">    <span class="keyword">auto</span> request_offset =</div><div class="line">        CreateManyHellosRequest(mb, name_offset, num_greetings);</div><div class="line">    mb.Finish(request_offset);</div><div class="line">    <span class="keyword">auto</span> request_msg = mb.ReleaseMessage&lt;ManyHellosRequest&gt;();</div><div class="line"></div><div class="line">    flatbuffers::grpc::Message&lt;HelloReply&gt; response_msg;</div><div class="line"></div><div class="line">    grpc::ClientContext context;</div><div class="line"></div><div class="line">    <span class="keyword">auto</span> stream = stub_-&gt;SayManyHellos(&amp;context, request_msg);</div><div class="line">    <span class="keywordflow">while</span> (stream-&gt;Read(&amp;response_msg)) {</div><div class="line">      <span class="keyword">const</span> HelloReply *response = response_msg.GetRoot();</div><div class="line">      callback(response-&gt;message()-&gt;str());</div><div class="line">    }</div><div class="line">    <span class="keyword">auto</span> status = stream-&gt;Finish();</div><div class="line">    <span class="keywordflow">if</span> (!status.ok()) {</div><div class="line">      std::cerr &lt;&lt; status.error_code() &lt;&lt; <span class="stringliteral">&quot;: &quot;</span> &lt;&lt; status.error_message()</div><div class="line">                &lt;&lt; std::endl;</div><div class="line">      callback(<span class="stringliteral">&quot;RPC failed&quot;</span>);</div><div class="line">    }</div><div class="line">  }</div><div class="line"></div><div class="line"> <span class="keyword">private</span>:</div><div class="line">  std::unique_ptr&lt;Greeter::Stub&gt; stub_;</div><div class="line">};</div><div class="line"></div><div class="line"><span class="keywordtype">int</span> main(<span class="keywordtype">int</span> argc, <span class="keywordtype">char</span> **argv) {</div><div class="line">  std::string server_address(<span class="stringliteral">&quot;localhost:50051&quot;</span>);</div><div class="line"></div><div class="line">  <span class="keyword">auto</span> channel =</div><div class="line">      grpc::CreateChannel(server_address, grpc::InsecureChannelCredentials());</div><div class="line">  GreeterClient greeter(channel);</div><div class="line"></div><div class="line">  std::string name(<span class="stringliteral">&quot;world&quot;</span>);</div><div class="line"></div><div class="line">  std::string message = greeter.SayHello(name);</div><div class="line">  std::cerr &lt;&lt; <span class="stringliteral">&quot;Greeter received: &quot;</span> &lt;&lt; message &lt;&lt; std::endl;</div><div class="line"></div><div class="line">  <span class="keywordtype">int</span> num_greetings = 10;</div><div class="line">  greeter.SayManyHellos(name, num_greetings, [](<span class="keyword">const</span> std::string &amp;message) {</div><div class="line">    std::cerr &lt;&lt; <span class="stringliteral">&quot;Greeter received: &quot;</span> &lt;&lt; message &lt;&lt; std::endl;</div><div class="line">  });</div><div class="line"></div><div class="line">  <span class="keywordflow">return</span> 0;</div><div class="line">}</div></div><!-- fragment --> </div></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- Google Analytics -->
 <script>
diff --git a/flatbuffers_guide_building.html b/flatbuffers_guide_building.html
index 63e7fbddd32db495183a25f94450ff28d5d0d032..64e20ea58f3fbddf9cf88514dc7b7fca3f88c7fb 100644
--- a/flatbuffers_guide_building.html
+++ b/flatbuffers_guide_building.html
@@ -4,23 +4,21 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <title>FlatBuffers: Building</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
 <link href="navtree.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
 <script type="text/javascript" src="navtree.js"></script>
 <script type="text/javascript">
   $(document).ready(initResizable);
-  $(window).load(resizeHeight);
 </script>
 <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
 <script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
-  $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,500italic,700,700italic|Roboto+Mono:400,700" rel="stylesheet">
 <link href="style.css" rel="stylesheet" type="text/css"/>
@@ -46,39 +44,19 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.7 -->
+<!-- Generated by Doxygen 1.8.13 -->
 <script type="text/javascript">
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </script>
-  <div id="navrow1" class="tabs">
-    <ul class="tablist">
-      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
-      <li><a href="usergroup0.html"><span>Programmer's&#160;Guide</span></a></li>
-      <li><a href="flatbuffers_support.html"><span>Platform&#160;/&#160;Language&#160;/&#160;Feature&#160;support</span></a></li>
-      <li><a href="flatbuffers_benchmarks.html"><span>Benchmarks</span></a></li>
-      <li><a href="flatbuffers_white_paper.html"><span>FlatBuffers&#160;white&#160;paper</span></a></li>
-      <li><a href="flatbuffers_internals.html"><span>FlatBuffers&#160;internals</span></a></li>
-      <li><a href="flatbuffers_grammar.html"><span>Grammar&#160;of&#160;the&#160;schema&#160;language</span></a></li>
-      <li><a href="usergroup2.html"><span>API&#160;Reference</span></a></li>
-      <li><a href="contributing.html"><span>Contributing</span></a></li>
-      <li>
-        <div id="MSearchBox" class="MSearchBoxInactive">
-        <span class="left">
-          <img id="MSearchSelect" src="search/mag_sel.png"
-               onmouseover="return searchBox.OnSearchSelectShow()"
-               onmouseout="return searchBox.OnSearchSelectHide()"
-               alt=""/>
-          <input type="text" id="MSearchField" value="Search" accesskey="S"
-               onfocus="searchBox.OnSearchFieldFocus(true)" 
-               onblur="searchBox.OnSearchFieldFocus(false)" 
-               onkeyup="searchBox.OnSearchFieldChange(event)"/>
-          </span><span class="right">
-            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
-          </span>
-        </div>
-      </li>
-    </ul>
-  </div>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -99,7 +77,7 @@ $(document).ready(function(){initNavTree('flatbuffers_guide_building.html','');}
      onmouseover="return searchBox.OnSearchSelectShow()"
      onmouseout="return searchBox.OnSearchSelectHide()"
      onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Properties</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+</div>
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
@@ -114,7 +92,7 @@ $(document).ready(function(){initNavTree('flatbuffers_guide_building.html','');}
 </div><!--header-->
 <div class="contents">
 <div class="textblock"><h2>Building with CMake</h2>
-<p>The distribution comes with a <code>cmake</code> file that should allow you to build project/make files for any platform. For details on <code>cmake</code>, see <a href="http://www.cmake.org">http://www.cmake.org</a>. In brief, depending on your platform, use one of e.g.: </p><pre class="fragment">cmake -G "Unix Makefiles"
+<p>The distribution comes with a <code>cmake</code> file that should allow you to build project/make files for any platform. For details on <code>cmake</code>, see <a href="https://www.cmake.org">https://www.cmake.org</a>. In brief, depending on your platform, use one of e.g.: </p><pre class="fragment">cmake -G "Unix Makefiles"
 cmake -G "Visual Studio 10"
 cmake -G "Xcode"
 </pre><p>Then, build as normal for your platform. This should result in a <code>flatc</code> executable, essential for the next steps. Note that to use clang instead of gcc, you may need to set up your environment variables, e.g. <code>CC=/usr/bin/clang CXX=/usr/bin/clang++ cmake -G "Unix Makefiles"</code>.</p>
diff --git a/flatbuffers_guide_tutorial.html b/flatbuffers_guide_tutorial.html
index 6d830000e017fb5f3b8de09a4052690dd864d853..297a4c3fcf49511a5f4a0a84a7796f2698af72b2 100644
--- a/flatbuffers_guide_tutorial.html
+++ b/flatbuffers_guide_tutorial.html
@@ -4,23 +4,21 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <title>FlatBuffers: Tutorial</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
 <link href="navtree.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
 <script type="text/javascript" src="navtree.js"></script>
 <script type="text/javascript">
   $(document).ready(initResizable);
-  $(window).load(resizeHeight);
 </script>
 <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
 <script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
-  $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,500italic,700,700italic|Roboto+Mono:400,700" rel="stylesheet">
 <link href="style.css" rel="stylesheet" type="text/css"/>
@@ -46,39 +44,19 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.7 -->
+<!-- Generated by Doxygen 1.8.13 -->
 <script type="text/javascript">
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </script>
-  <div id="navrow1" class="tabs">
-    <ul class="tablist">
-      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
-      <li><a href="usergroup0.html"><span>Programmer's&#160;Guide</span></a></li>
-      <li><a href="flatbuffers_support.html"><span>Platform&#160;/&#160;Language&#160;/&#160;Feature&#160;support</span></a></li>
-      <li><a href="flatbuffers_benchmarks.html"><span>Benchmarks</span></a></li>
-      <li><a href="flatbuffers_white_paper.html"><span>FlatBuffers&#160;white&#160;paper</span></a></li>
-      <li><a href="flatbuffers_internals.html"><span>FlatBuffers&#160;internals</span></a></li>
-      <li><a href="flatbuffers_grammar.html"><span>Grammar&#160;of&#160;the&#160;schema&#160;language</span></a></li>
-      <li><a href="usergroup2.html"><span>API&#160;Reference</span></a></li>
-      <li><a href="contributing.html"><span>Contributing</span></a></li>
-      <li>
-        <div id="MSearchBox" class="MSearchBoxInactive">
-        <span class="left">
-          <img id="MSearchSelect" src="search/mag_sel.png"
-               onmouseover="return searchBox.OnSearchSelectShow()"
-               onmouseout="return searchBox.OnSearchSelectHide()"
-               alt=""/>
-          <input type="text" id="MSearchField" value="Search" accesskey="S"
-               onfocus="searchBox.OnSearchFieldFocus(true)" 
-               onblur="searchBox.OnSearchFieldFocus(false)" 
-               onkeyup="searchBox.OnSearchFieldChange(event)"/>
-          </span><span class="right">
-            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
-          </span>
-        </div>
-      </li>
-    </ul>
-  </div>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -99,7 +77,7 @@ $(document).ready(function(){initNavTree('flatbuffers_guide_tutorial.html','');}
      onmouseover="return searchBox.OnSearchSelectShow()"
      onmouseout="return searchBox.OnSearchSelectHide()"
      onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Properties</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+</div>
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
@@ -130,6 +108,7 @@ $(document).ready(function(){initNavTree('flatbuffers_guide_tutorial.html','');}
   <input type="radio" name="language" value="go">Go</input>
   <input type="radio" name="language" value="python">Python</input>
   <input type="radio" name="language" value="javascript">JavaScript</input>
+  <input type="radio" name="language" value="typescript">TypeScript</input>
   <input type="radio" name="language" value="php">PHP</input>
   <input type="radio" name="language" value="c">C</input>
 </form>
@@ -196,42 +175,9 @@ $(document).ready(function(){initNavTree('flatbuffers_guide_tutorial.html','');}
 <h2>Where to Find the Example Code</h2>
 <p>Samples demonstating the concepts in this example are located in the source code package, under the <code>samples</code> directory. You can browse the samples on GitHub <a href="https://github.com/google/flatbuffers/tree/master/samples">here</a>.</p>
 <div class="language-c"> <em>Note: The above does not apply to C, instead <a href="https://github.com/dvidelabs/flatcc/tree/master/samples">look here</a>.</em> </div><p>For your chosen language, please cross-reference with:</p>
-<div class="language-cpp"> <a href="https://github.com/google/flatbuffers/blob/master/samples/sample_binary.cpp">sample_binary.cpp</a> </div> <div class="language-java"> <a href="https://github.com/google/flatbuffers/blob/master/samples/SampleBinary.java">SampleBinary.java</a> </div> <div class="language-csharp"> <a href="https://github.com/google/flatbuffers/blob/master/samples/SampleBinary.cs">SampleBinary.cs</a> </div> <div class="language-go"> <a href="https://github.com/google/flatbuffers/blob/master/samples/sample_binary.go">sample_binary.go</a> </div> <div class="language-python"> <a href="https://github.com/google/flatbuffers/blob/master/samples/sample_binary.py">sample_binary.py</a> </div> <div class="language-javascript"> <a href="https://github.com/google/flatbuffers/blob/master/samples/samplebinary.js">samplebinary.js</a> </div> <div class="language-php"> <a href="https://github.com/google/flatbuffers/blob/master/samples/SampleBinary.php">SampleBinary.php</a> </div> <div class="language-c"> <a href="https://github.com/dvidelabs/flatcc/blob/master/samples/monster/monster.c">monster.c</a> </div><h2>Writing the Monsters' FlatBuffer Schema</h2>
+<div class="language-cpp"> <a href="https://github.com/google/flatbuffers/blob/master/samples/sample_binary.cpp">sample_binary.cpp</a> </div> <div class="language-java"> <a href="https://github.com/google/flatbuffers/blob/master/samples/SampleBinary.java">SampleBinary.java</a> </div> <div class="language-csharp"> <a href="https://github.com/google/flatbuffers/blob/master/samples/SampleBinary.cs">SampleBinary.cs</a> </div> <div class="language-go"> <a href="https://github.com/google/flatbuffers/blob/master/samples/sample_binary.go">sample_binary.go</a> </div> <div class="language-python"> <a href="https://github.com/google/flatbuffers/blob/master/samples/sample_binary.py">sample_binary.py</a> </div> <div class="language-javascript"> <a href="https://github.com/google/flatbuffers/blob/master/samples/samplebinary.js">samplebinary.js</a> </div> <div class="language-typescript"> <em>none yet</em> </div> <div class="language-php"> <a href="https://github.com/google/flatbuffers/blob/master/samples/SampleBinary.php">SampleBinary.php</a> </div> <div class="language-c"> <a href="https://github.com/dvidelabs/flatcc/blob/master/samples/monster/monster.c">monster.c</a> </div><h2>Writing the Monsters' FlatBuffer Schema</h2>
 <p>To start working with FlatBuffers, you first need to create a <code>schema</code> file, which defines the format for each data structure you wish to serialize. Here is the <code>schema</code> that defines the template for our monsters:</p>
-<div class="fragment"><div class="line"><span class="comment">// Example IDL file for our monster&#39;s schema.</span></div>
-<div class="line"></div>
-<div class="line"><span class="keyword">namespace </span>MyGame.Sample;</div>
-<div class="line"></div>
-<div class="line"><span class="keyword">enum</span> Color:byte { Red = 0, Green, Blue = 2 }</div>
-<div class="line"></div>
-<div class="line"><span class="keyword">union </span>Equipment { Weapon } <span class="comment">// Optionally add more tables.</span></div>
-<div class="line"></div>
-<div class="line"><span class="keyword">struct </span>Vec3 {</div>
-<div class="line">  x:float;</div>
-<div class="line">  y:float;</div>
-<div class="line">  z:float;</div>
-<div class="line">}</div>
-<div class="line"></div>
-<div class="line">table Monster {</div>
-<div class="line">  pos:Vec3; <span class="comment">// Struct.</span></div>
-<div class="line">  mana:<span class="keywordtype">short</span> = 150;</div>
-<div class="line">  hp:<span class="keywordtype">short</span> = 100;</div>
-<div class="line">  name:string;</div>
-<div class="line">  friendly:<span class="keywordtype">bool</span> = <span class="keyword">false</span> (deprecated);</div>
-<div class="line">  inventory:[ubyte];  <span class="comment">// Vector of scalars.</span></div>
-<div class="line">  color:Color = Blue; <span class="comment">// Enum.</span></div>
-<div class="line">  weapons:[Weapon];   <span class="comment">// Vector of tables.</span></div>
-<div class="line">  equipped:Equipment; <span class="comment">// Union.</span></div>
-<div class="line">  path:[Vec3];        <span class="comment">// Vector of structs.</span></div>
-<div class="line">}</div>
-<div class="line"></div>
-<div class="line">table Weapon {</div>
-<div class="line">  name:string;</div>
-<div class="line">  damage:short;</div>
-<div class="line">}</div>
-<div class="line"></div>
-<div class="line">root_type Monster;</div>
-</div><!-- fragment --><p>As you can see, the syntax for the <code>schema</code> <a href="https://en.wikipedia.org/wiki/Interface_description_language">Interface Definition Language (IDL)</a> is similar to those of the C family of languages, and other IDL languages. Let's examine each part of this <code>schema</code> to determine what it does.</p>
+<div class="fragment"><div class="line">// Example IDL file for our monster&#39;s schema.</div><div class="line"></div><div class="line">namespace MyGame.Sample;</div><div class="line"></div><div class="line">enum Color:byte { Red = 0, Green, Blue = 2 }</div><div class="line"></div><div class="line">union Equipment { Weapon } // Optionally add more tables.</div><div class="line"></div><div class="line">struct Vec3 {</div><div class="line">  x:float;</div><div class="line">  y:float;</div><div class="line">  z:float;</div><div class="line">}</div><div class="line"></div><div class="line">table Monster {</div><div class="line">  pos:Vec3; // Struct.</div><div class="line">  mana:short = 150;</div><div class="line">  hp:short = 100;</div><div class="line">  name:string;</div><div class="line">  friendly:bool = false (deprecated);</div><div class="line">  inventory:[ubyte];  // Vector of scalars.</div><div class="line">  color:Color = Blue; // Enum.</div><div class="line">  weapons:[Weapon];   // Vector of tables.</div><div class="line">  equipped:Equipment; // Union.</div><div class="line">  path:[Vec3];        // Vector of structs.</div><div class="line">}</div><div class="line"></div><div class="line">table Weapon {</div><div class="line">  name:string;</div><div class="line">  damage:short;</div><div class="line">}</div><div class="line"></div><div class="line">root_type Monster;</div></div><!-- fragment --><p>As you can see, the syntax for the <code>schema</code> <a href="https://en.wikipedia.org/wiki/Interface_description_language">Interface Definition Language (IDL)</a> is similar to those of the C family of languages, and other IDL languages. Let's examine each part of this <code>schema</code> to determine what it does.</p>
 <p>The <code>schema</code> starts with a <code>namespace</code> declaration. This determines the corresponding package/namespace for the generated code. In our example, we have the <code>Sample</code> namespace inside of the <code>MyGame</code> namespace.</p>
 <p>Next, we have an <code>enum</code> definition. In this example, we have an <code>enum</code> of type <code>byte</code>, named <code>Color</code>. We have three values in this <code>enum</code>: <code>Red</code>, <code>Green</code>, and <code>Blue</code>. We specify <code>Red = 0</code> and <code>Blue = 2</code>, but we do not specify an explicit value for <code>Green</code>. Since the behavior of an <code>enum</code> is to increment if unspecified, <code>Green</code> will receive the implicit value of <code>1</code>.</p>
 <p>Following the <code>enum</code> is a <code>union</code>. The <code>union</code> in this example is not very useful, as it only contains the one <code>table</code> (named <code>Weapon</code>). If we had created multiple tables that we would want the <code>union</code> to be able to reference, we could add more elements to the <code>union Equipment</code>.</p>
@@ -250,909 +196,55 @@ $(document).ready(function(){initNavTree('flatbuffers_guide_tutorial.html','');}
 <div class="language-c"> <em>Note: If you're working in C, you need to use the separate project <a href="https://github.com/dvidelabs/flatcc">FlatCC</a> which contains a schema compiler and runtime library in C for C.</em> <br />
  See <a href="https://github.com/dvidelabs/flatcc#building">flatcc build instructions</a>. <br />
  Please be aware of the difference between <code>flatc</code> and <code>flatcc</code> tools. <br />
- </div><div class="language-cpp"> <div class="fragment"><div class="line">cd flatbuffers/sample</div>
-<div class="line">./../flatc --cpp samples/monster.fbs</div>
-</div><!-- fragment --> </div> <div class="language-java"> <div class="fragment"><div class="line">cd flatbuffers/sample</div>
-<div class="line">./../flatc --java samples/monster.fbs</div>
-</div><!-- fragment --> </div> <div class="language-csharp"> <div class="fragment"><div class="line">cd flatbuffers/sample</div>
-<div class="line">./../flatc --csharp samples/monster.fbs</div>
-</div><!-- fragment --> </div> <div class="language-go"> <div class="fragment"><div class="line">cd flatbuffers/sample</div>
-<div class="line">./../flatc --go samples/monster.fbs</div>
-</div><!-- fragment --> </div> <div class="language-python"> <div class="fragment"><div class="line">cd flatbuffers/sample</div>
-<div class="line">./../flatc --python samples/monster.fbs</div>
-</div><!-- fragment --> </div> <div class="language-javascript"> <div class="fragment"><div class="line">cd flatbuffers/sample</div>
-<div class="line">./../flatc --javascript samples/monster.fbs</div>
-</div><!-- fragment --> </div> <div class="language-php"> <div class="fragment"><div class="line">cd flatbuffers/sample</div>
-<div class="line">./../flatc --php samples/monster.fbs</div>
-</div><!-- fragment --> </div> <div class="language-c"> <div class="fragment"><div class="line">cd flatcc</div>
-<div class="line">mkdir -p build/tmp/samples/monster</div>
-<div class="line">bin/flatcc -a -o build/tmp/samples/monster samples/monster/monster.fbs</div>
-<div class="line"><span class="preprocessor"># or just</span></div>
-<div class="line"><span class="preprocessor">flatcc/samples/monster/build.sh</span></div>
-</div><!-- fragment --> </div><p>For a more complete guide to using the <code>flatc</code> compiler, please read the <a class="el" href="flatbuffers_guide_using_schema_compiler.html">Using the schema compiler</a> section of the Programmer's Guide.</p>
+ </div><div class="language-cpp"> <div class="fragment"><div class="line">cd flatbuffers/sample</div><div class="line">./../flatc --cpp samples/monster.fbs</div></div><!-- fragment --> </div> <div class="language-java"> <div class="fragment"><div class="line">cd flatbuffers/sample</div><div class="line">./../flatc --java samples/monster.fbs</div></div><!-- fragment --> </div> <div class="language-csharp"> <div class="fragment"><div class="line">cd flatbuffers/sample</div><div class="line">./../flatc --csharp samples/monster.fbs</div></div><!-- fragment --> </div> <div class="language-go"> <div class="fragment"><div class="line">cd flatbuffers/sample</div><div class="line">./../flatc --go samples/monster.fbs</div></div><!-- fragment --> </div> <div class="language-python"> <div class="fragment"><div class="line">cd flatbuffers/sample</div><div class="line">./../flatc --python samples/monster.fbs</div></div><!-- fragment --> </div> <div class="language-javascript"> <div class="fragment"><div class="line">cd flatbuffers/sample</div><div class="line">./../flatc --js samples/monster.fbs</div></div><!-- fragment --> </div> <div class="language-typescript"> <div class="fragment"><div class="line">cd flatbuffers/sample</div><div class="line">./../flatc --ts samples/monster.fbs</div></div><!-- fragment --> </div> <div class="language-php"> <div class="fragment"><div class="line">cd flatbuffers/sample</div><div class="line">./../flatc --php samples/monster.fbs</div></div><!-- fragment --> </div> <div class="language-c"> <div class="fragment"><div class="line">cd flatcc</div><div class="line">mkdir -p build/tmp/samples/monster</div><div class="line">bin/flatcc -a -o build/tmp/samples/monster samples/monster/monster.fbs</div><div class="line"># or just</div><div class="line">flatcc/samples/monster/build.sh</div></div><!-- fragment --> </div><p>For a more complete guide to using the <code>flatc</code> compiler, please read the <a class="el" href="flatbuffers_guide_using_schema_compiler.html">Using the schema compiler</a> section of the Programmer's Guide.</p>
 <h2>Reading and Writing Monster FlatBuffers</h2>
 <p>Now that we have compiled the schema for our programming language, we can start creating some monsters and serializing/deserializing them from FlatBuffers.</p>
 <h4>Creating and Writing Orc FlatBuffers</h4>
 <p>The first step is to import/include the library, generated files, etc.</p>
-<div class="language-cpp"> <div class="fragment"><div class="line"><span class="preprocessor">#include &quot;monster_generate.h&quot;</span> <span class="comment">// This was generated by `flatc`.</span></div>
-<div class="line"></div>
-<div class="line"><span class="keyword">using namespace </span>MyGame::Sample; <span class="comment">// Specified in the schema.</span></div>
-</div><!-- fragment --> </div> <div class="language-java"> <div class="fragment"><div class="line"><span class="keyword">import</span> MyGame.Sample.*; <span class="comment">//The `flatc` generated files. (Monster, Vec3, etc.)</span></div>
-<div class="line"></div>
-<div class="line"><span class="keyword">import</span> <a class="code" href="classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html">com.google.flatbuffers.FlatBufferBuilder</a>;</div>
-</div><!-- fragment --> </div> <div class="language-csharp"> <div class="fragment"><div class="line"><span class="keyword">using</span> FlatBuffers;</div>
-<div class="line"><span class="keyword">using</span> MyGame.Sample; <span class="comment">// The `flatc` generated files. (Monster, Vec3, etc.)</span></div>
-</div><!-- fragment --> </div> <div class="language-go"> <div class="fragment"><div class="line"><span class="keyword">import</span> (</div>
-<div class="line">        flatbuffers <span class="stringliteral">&quot;github.com/google/flatbuffers/go&quot;</span></div>
-<div class="line">        sample <span class="stringliteral">&quot;MyGame/Sample&quot;</span></div>
-<div class="line">)</div>
-</div><!-- fragment --> </div> <div class="language-python"> <div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="keyword">import</span> flatbuffers</div>
-<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;</div>
-<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"># Generated by `flatc`.</span></div>
-<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="keyword">import</span> MyGame.Sample.Color</div>
-<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="keyword">import</span> MyGame.Sample.Equipment</div>
-<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="keyword">import</span> MyGame.Sample.Monster</div>
-<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="keyword">import</span> MyGame.Sample.Vec3</div>
-<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="keyword">import</span> MyGame.Sample.Weapon</div>
-</div><!-- fragment --> </div> <div class="language-javascript"> <div class="fragment"><div class="line"><span class="comment">// The following code is for JavaScript module loaders (e.g. Node.js). See</span></div>
-<div class="line"><span class="comment">// below for a browser-based HTML/JavaScript example of including the library.</span></div>
-<div class="line">var flatbuffers = require(<span class="stringliteral">&#39;/js/flatbuffers&#39;</span>).flatbuffers;</div>
-<div class="line">var MyGame = require(<span class="stringliteral">&#39;./monster_generated&#39;</span>).MyGame; <span class="comment">// Generated by `flatc`.</span></div>
-<div class="line"></div>
-<div class="line"><span class="comment">//--------------------------------------------------------------------------//</span></div>
-<div class="line"></div>
-<div class="line"><span class="comment">// The following code is for browser-based HTML/JavaScript. Use the above code</span></div>
-<div class="line"><span class="comment">// for JavaScript module loaders (e.g. Node.js).</span></div>
-<div class="line">&lt;script src=<span class="stringliteral">&quot;../js/flatbuffers.js&quot;</span>&gt;&lt;/script&gt;</div>
-<div class="line">&lt;script src=<span class="stringliteral">&quot;monster_generated.js&quot;</span>&gt;&lt;/script&gt; <span class="comment">// Generated by `flatc`.</span></div>
-</div><!-- fragment --> </div> <div class="language-php"> <div class="fragment"><div class="line"><span class="comment">// It is recommended that your use PSR autoload when using FlatBuffers in PHP.</span></div>
-<div class="line"><span class="comment">// Here is an example from `SampleBinary.php`:</span></div>
-<div class="line"><span class="keyword">function</span> __autoload($class_name) {</div>
-<div class="line">  <span class="comment">// The last segment of the class name matches the file name.</span></div>
-<div class="line">  $class = substr($class_name, strrpos($class_name, <span class="stringliteral">&quot;\\&quot;</span>) + 1);</div>
-<div class="line">  $root_dir = join(DIRECTORY_SEPARATOR, array(dirname(dirname(__FILE__)))); <span class="comment">// `flatbuffers` root.</span></div>
-<div class="line"></div>
-<div class="line">  <span class="comment">// Contains the `*.php` files for the FlatBuffers library and the `flatc` generated files.</span></div>
-<div class="line">  $paths = array(join(DIRECTORY_SEPARATOR, array($root_dir, <span class="stringliteral">&quot;php&quot;</span>)),</div>
-<div class="line">                 join(DIRECTORY_SEPARATOR, array($root_dir, <span class="stringliteral">&quot;samples&quot;</span>, <span class="stringliteral">&quot;MyGame&quot;</span>, <span class="stringliteral">&quot;Sample&quot;</span>)));</div>
-<div class="line">  <span class="keywordflow">foreach</span> ($paths as $path) {</div>
-<div class="line">    $file = join(DIRECTORY_SEPARATOR, array($path, $class . <span class="stringliteral">&quot;.php&quot;</span>));</div>
-<div class="line">    <span class="keywordflow">if</span> (file_exists($file)) {</div>
-<div class="line">      require($file);</div>
-<div class="line">      <span class="keywordflow">break</span>;</div>
-<div class="line">    }</div>
-<div class="line">  }</div>
-<div class="line">}</div>
-</div><!-- fragment --> </div> <div class="language-c"> <div class="fragment"><div class="line"><span class="preprocessor">#include &quot;monster_builder.h&quot;</span> <span class="comment">// Generated by `flatcc`.</span></div>
-<div class="line"></div>
-<div class="line"><span class="comment">// Convenient namespace macro to manage long namespace prefix.</span></div>
-<div class="line"><span class="preprocessor">#undef ns</span></div>
-<div class="line"><span class="preprocessor">#define ns(x) FLATBUFFERS_WRAP_NAMESPACE(MyGame_Sample, x) // Specified in the schema.</span></div>
-<div class="line"></div>
-<div class="line"><span class="comment">// A helper to simplify creating vectors from C-arrays.</span></div>
-<div class="line"><span class="preprocessor">#define c_vec_len(V) (sizeof(V)/sizeof((V)[0]))</span></div>
-</div><!-- fragment --> </div><p>Now we are ready to start building some buffers. In order to start, we need to create an instance of the <code>FlatBufferBuilder</code>, which will contain the buffer as it grows. You can pass an initial size of the buffer (here 1024 bytes), which will grow automatically if needed:</p>
-<div class="language-cpp"> <div class="fragment"><div class="line"><span class="comment">// Create a `FlatBufferBuilder`, which will be used to create our</span></div>
-<div class="line"><span class="comment">// monsters&#39; FlatBuffers.</span></div>
-<div class="line"><a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a> builder(1024);</div>
-</div><!-- fragment --> </div> <div class="language-java"> <div class="fragment"><div class="line"><span class="comment">// Create a `FlatBufferBuilder`, which will be used to create our</span></div>
-<div class="line"><span class="comment">// monsters&#39; FlatBuffers.</span></div>
-<div class="line">FlatBufferBuilder builder = <span class="keyword">new</span> FlatBufferBuilder(1024);</div>
-</div><!-- fragment --> </div> <div class="language-csharp"> <div class="fragment"><div class="line"><span class="comment">// Create a `FlatBufferBuilder`, which will be used to create our</span></div>
-<div class="line"><span class="comment">// monsters&#39; FlatBuffers.</span></div>
-<div class="line">var builder = <span class="keyword">new</span> FlatBufferBuilder(1024);</div>
-</div><!-- fragment --> </div> <div class="language-go"> <div class="fragment"><div class="line"><span class="comment">// Create a `FlatBufferBuilder`, which will be used to create our</span></div>
-<div class="line"><span class="comment">// monsters&#39; FlatBuffers.</span></div>
-<div class="line">builder := flatbuffers.NewBuilder(1024)</div>
-</div><!-- fragment --> </div> <div class="language-python"> <div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment"># Create a `FlatBufferBuilder`, which will be used to create our</span></div>
-<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"># monsters&#39; FlatBuffers.</span></div>
-<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;builder = flatbuffers.Builder(1024)</div>
-</div><!-- fragment --> </div> <div class="language-javascript"> <div class="fragment"><div class="line"><span class="comment">// Create a `flatbuffer.Builder`, which will be used to create our</span></div>
-<div class="line"><span class="comment">// monsters&#39; FlatBuffers.</span></div>
-<div class="line">var builder = <span class="keyword">new</span> flatbuffers.Builder(1024);</div>
-</div><!-- fragment --> </div> <div class="language-php"> <div class="fragment"><div class="line"><span class="comment">// Create a `FlatBufferBuilder`, which will be used to create our</span></div>
-<div class="line"><span class="comment">// monsters&#39; FlatBuffers.</span></div>
-<div class="line">$builder = <span class="keyword">new</span> <a class="code" href="class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html">Google\FlatBuffers\FlatbufferBuilder</a>(1024);</div>
-</div><!-- fragment --> </div> <div class="language-c"> <div class="fragment"><div class="line">flatcc_builder_t builder, *B;</div>
-<div class="line">B = &amp;builder;</div>
-<div class="line"><span class="comment">// Initialize the builder object.</span></div>
-<div class="line">flatcc_builder_init(B);</div>
-</div><!-- fragment --> </div><p>After creating the <code>builder</code>, we can start serializing our data. Before we make our <code>orc</code> Monster, lets create some <code>Weapon</code>s: a <code>Sword</code> and an <code>Axe</code>.</p>
-<div class="language-cpp"> <div class="fragment"><div class="line"><span class="keyword">auto</span> weapon_one_name = builder.CreateString(<span class="stringliteral">&quot;Sword&quot;</span>);</div>
-<div class="line"><span class="keywordtype">short</span> weapon_one_damage = 3;</div>
-<div class="line"></div>
-<div class="line"><span class="keyword">auto</span> weapon_two_name = builder.CreateString(<span class="stringliteral">&quot;Axe&quot;</span>);</div>
-<div class="line"><span class="keywordtype">short</span> weapon_two_damage = 5;</div>
-<div class="line"></div>
-<div class="line"><span class="comment">// Use the `CreateWeapon` shortcut to create Weapons with all the fields set.</span></div>
-<div class="line"><span class="keyword">auto</span> sword = CreateWeapon(builder, weapon_one_name, weapon_one_damage);</div>
-<div class="line"><span class="keyword">auto</span> axe = CreateWeapon(builder, weapon_two_name, weapon_two_damage);</div>
-</div><!-- fragment --> </div> <div class="language-java"> <div class="fragment"><div class="line"><span class="keywordtype">int</span> weaponOneName = builder.createString(<span class="stringliteral">&quot;Sword&quot;</span>)</div>
-<div class="line"><span class="keywordtype">short</span> weaponOneDamage = 3;</div>
-<div class="line"></div>
-<div class="line"><span class="keywordtype">int</span> weaponTwoName = builder.createString(<span class="stringliteral">&quot;Axe&quot;</span>);</div>
-<div class="line"><span class="keywordtype">short</span> weaponTwoDamage = 5;</div>
-<div class="line"></div>
-<div class="line"><span class="comment">// Use the `createWeapon()` helper function to create the weapons, since we set every field.</span></div>
-<div class="line"><span class="keywordtype">int</span> sword = Weapon.createWeapon(builder, weaponOneName, weaponOneDamage);</div>
-<div class="line"><span class="keywordtype">int</span> axe = Weapon.createWeapon(builder, weaponTwoName, weaponTwoDamage);</div>
-</div><!-- fragment --> </div> <div class="language-csharp"> <div class="fragment"><div class="line">var weaponOneName = builder.CreateString(<span class="stringliteral">&quot;Sword&quot;</span>);</div>
-<div class="line">var weaponOneDamage = 3;</div>
-<div class="line"></div>
-<div class="line">var weaponTwoName = builder.CreateString(<span class="stringliteral">&quot;Axe&quot;</span>);</div>
-<div class="line">var weaponTwoDamage = 5;</div>
-<div class="line"></div>
-<div class="line"><span class="comment">// Use the `CreateWeapon()` helper function to create the weapons, since we set every field.</span></div>
-<div class="line">var sword = Weapon.CreateWeapon(builder, weaponOneName, (short)weaponOneDamage);</div>
-<div class="line">var axe = Weapon.CreateWeapon(builder, weaponTwoName, (short)weaponTwoDamage);</div>
-</div><!-- fragment --> </div> <div class="language-go"> <div class="fragment"><div class="line">weaponOne := builder.CreateString(<span class="stringliteral">&quot;Sword&quot;</span>)</div>
-<div class="line">weaponTwo := builder.CreateString(<span class="stringliteral">&quot;Axe&quot;</span>)</div>
-<div class="line"></div>
-<div class="line"><span class="comment">// Create the first `Weapon` (&quot;Sword&quot;).</span></div>
-<div class="line">sample.WeaponStart(builder)</div>
-<div class="line">sample.Weapon.AddName(builder, weaponOne)</div>
-<div class="line">sample.Weapon.AddDamage(builder, 3)</div>
-<div class="line">sword := sample.WeaponEnd(builder)</div>
-<div class="line"></div>
-<div class="line"><span class="comment">// Create the second `Weapon` (&quot;Axe&quot;).</span></div>
-<div class="line">sample.WeaponStart(builder)</div>
-<div class="line">sample.Weapon.AddName(builder, weaponTwo)</div>
-<div class="line">sample.Weapon.AddDamage(builder, 5)</div>
-<div class="line">axe := sample.WeaponEnd(builder)</div>
-</div><!-- fragment --> </div> <div class="language-python"> <div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;weapon_one = builder.CreateString(<span class="stringliteral">&#39;Sword&#39;</span>)</div>
-<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;weapon_two = builder.CreateString(<span class="stringliteral">&#39;Axe&#39;</span>)</div>
-<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;</div>
-<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"># Create the first `Weapon` (&#39;Sword&#39;).</span></div>
-<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;MyGame.Sample.Weapon.WeaponStart(builder)</div>
-<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;MyGame.Sample.Weapon.WeaponAddName(builder, weapon_one)</div>
-<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;MyGame.Sample.Weapon.WeaponAddDamage(builder, 3)</div>
-<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;sword = MyGame.Sample.Weapon.WeaponEnd(builder)</div>
-<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;</div>
-<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"># Create the second `Weapon` (&#39;Axe&#39;).</span></div>
-<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;MyGame.Sample.Weapon.WeaponStart(builder)</div>
-<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;MyGame.Sample.Weapon.WeaponAddName(builder, weapon_two)</div>
-<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;MyGame.Sample.Weapon.WeaponAddDamage(builder, 5)</div>
-<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;axe = MyGame.Sample.Weapon.WeaponEnd(builder)</div>
-</div><!-- fragment --> </div> <div class="language-javascript"> <div class="fragment"><div class="line">var weaponOne = builder.createString(<span class="stringliteral">&#39;Sword&#39;</span>);</div>
-<div class="line">var weaponTwo = builder.createString(<span class="stringliteral">&#39;Axe&#39;</span>);</div>
-<div class="line"></div>
-<div class="line"><span class="comment">// Create the first `Weapon` (&#39;Sword&#39;).</span></div>
-<div class="line">MyGame.Sample.Weapon.startWeapon(builder);</div>
-<div class="line">MyGame.Sample.Weapon.addName(builder, weaponOne);</div>
-<div class="line">MyGame.Sample.Weapon.addDamage(builder, 3);</div>
-<div class="line">var sword = MyGame.Sample.Weapon.endWeapon(builder);</div>
-<div class="line"></div>
-<div class="line"><span class="comment">// Create the second `Weapon` (&#39;Axe&#39;).</span></div>
-<div class="line">MyGame.Sample.Weapon.startWeapon(builder);</div>
-<div class="line">MyGame.Sample.Weapon.addName(builder, weaponTwo);</div>
-<div class="line">MyGame.Sample.Weapon.addDamage(builder, 5);</div>
-<div class="line">var axe = MyGame.Sample.Weapon.endWeapon(builder);</div>
-</div><!-- fragment --> </div> <div class="language-php"> <div class="fragment"><div class="line"><span class="comment">// Create the `Weapon`s using the `createWeapon()` helper function.</span></div>
-<div class="line">$weapon_one_name = $builder-&gt;createString(<span class="stringliteral">&quot;Sword&quot;</span>);</div>
-<div class="line">$sword = \MyGame\Sample\Weapon::CreateWeapon($builder, $weapon_one_name, 3);</div>
-<div class="line"></div>
-<div class="line">$weapon_two_name = $builder-&gt;createString(<span class="stringliteral">&quot;Axe&quot;</span>);</div>
-<div class="line">$axe = \MyGame\Sample\Weapon::CreateWeapon($builder, $weapon_two_name, 5);</div>
-<div class="line"></div>
-<div class="line"><span class="comment">// Create an array from the two `Weapon`s and pass it to the</span></div>
-<div class="line"><span class="comment">// `CreateWeaponsVector()` method to create a FlatBuffer vector.</span></div>
-<div class="line">$weaps = array($sword, $axe);</div>
-<div class="line">$weapons = \MyGame\Sample\Monster::CreateWeaponsVector($builder, $weaps);</div>
-</div><!-- fragment --> </div> <div class="language-c"> <div class="fragment"><div class="line">ns(Weapon_ref_t) weapon_one_name = flatbuffers_string_create_str(B, &quot;Sword&quot;);</div>
-<div class="line">uint16_t weapon_one_damage = 3;</div>
-<div class="line"></div>
-<div class="line">ns(Weapon_ref_t) weapon_two_name = flatbuffers_string_create_str(B, &quot;Axe&quot;);</div>
-<div class="line">uint16_t weapon_two_damage = 5;</div>
-<div class="line"></div>
-<div class="line">ns(Weapon_ref_t) sword = ns(Weapon_create(B, weapon_one_name, weapon_one_damage));</div>
-<div class="line">ns(Weapon_ref_t) axe = ns(Weapon_create(B, weapon_two_name, weapon_two_damage));</div>
-</div><!-- fragment --> </div><p>Now let's create our monster, the <code>orc</code>. For this <code>orc</code>, lets make him <code>red</code> with rage, positioned at <code>(1.0, 2.0, 3.0)</code>, and give him a large pool of hit points with <code>300</code>. We can give him a vector of weapons to choose from (our <code>Sword</code> and <code>Axe</code> from earlier). In this case, we will equip him with the <code>Axe</code>, since it is the most powerful of the two. Lastly, let's fill his inventory with some potential treasures that can be taken once he is defeated.</p>
+<div class="language-cpp"> <div class="fragment"><div class="line"><span class="preprocessor">#include &quot;monster_generate.h&quot;</span> <span class="comment">// This was generated by `flatc`.</span></div><div class="line"></div><div class="line"><span class="keyword">using namespace </span>MyGame::Sample; <span class="comment">// Specified in the schema.</span></div></div><!-- fragment --> </div> <div class="language-java"> <div class="fragment"><div class="line"><span class="keyword">import</span> MyGame.Sample.*; <span class="comment">//The `flatc` generated files. (Monster, Vec3, etc.)</span></div><div class="line"></div><div class="line"><span class="keyword">import</span> <a class="code" href="namespacecom.html">com</a>.<a class="code" href="namespacecom_1_1google.html">google</a>.<a class="code" href="namespacecom_1_1google_1_1flatbuffers.html">flatbuffers</a>.<a class="code" href="classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html">FlatBufferBuilder</a>;</div></div><!-- fragment --> </div> <div class="language-csharp"> <div class="fragment"><div class="line"><span class="keyword">using</span> <a class="code" href="namespace_flat_buffers.html">FlatBuffers</a>;</div><div class="line"><span class="keyword">using</span> MyGame.Sample; <span class="comment">// The `flatc` generated files. (Monster, Vec3, etc.)</span></div></div><!-- fragment --> </div> <div class="language-go"> <div class="fragment"><div class="line">import (</div><div class="line">        flatbuffers &quot;github.com/google/flatbuffers/go&quot;</div><div class="line">        sample &quot;MyGame/Sample&quot;</div><div class="line">)</div></div><!-- fragment --> </div> <div class="language-python"> <div class="fragment"><div class="line"><span class="keyword">import</span> flatbuffers</div><div class="line"></div><div class="line"><span class="comment"># Generated by `flatc`.</span></div><div class="line"><span class="keyword">import</span> MyGame.Sample.Color</div><div class="line"><span class="keyword">import</span> MyGame.Sample.Equipment</div><div class="line"><span class="keyword">import</span> MyGame.Sample.Monster</div><div class="line"><span class="keyword">import</span> MyGame.Sample.Vec3</div><div class="line"><span class="keyword">import</span> MyGame.Sample.Weapon</div></div><!-- fragment --> </div> <div class="language-javascript"> <div class="fragment"><div class="line">// The following code is for JavaScript module loaders (e.g. Node.js). See</div><div class="line">// below for a browser-based HTML/JavaScript example of including the library.</div><div class="line">var flatbuffers = require(&#39;/js/flatbuffers&#39;).flatbuffers;</div><div class="line">var MyGame = require(&#39;./monster_generated&#39;).MyGame; // Generated by `flatc`.</div><div class="line"></div><div class="line">//--------------------------------------------------------------------------//</div><div class="line"></div><div class="line">// The following code is for browser-based HTML/JavaScript. Use the above code</div><div class="line">// for JavaScript module loaders (e.g. Node.js).</div><div class="line">&lt;script src=&quot;../js/flatbuffers.js&quot;&gt;&lt;/script&gt;</div><div class="line">&lt;script src=&quot;monster_generated.js&quot;&gt;&lt;/script&gt; // Generated by `flatc`.</div></div><!-- fragment --> </div> <div class="language-typescript"> // note: import flabuffers with your desired import method</div><div class="language-typescript"> import { MyGame } from './monster_generated'; </div> <div class="language-php"> <div class="fragment"><div class="line"><span class="comment">// It is recommended that your use PSR autoload when using FlatBuffers in PHP.</span></div><div class="line"><span class="comment">// Here is an example from `SampleBinary.php`:</span></div><div class="line"><span class="keyword">function</span> __autoload($class_name) {</div><div class="line">  <span class="comment">// The last segment of the class name matches the file name.</span></div><div class="line">  $class = substr($class_name, strrpos($class_name, <span class="stringliteral">&quot;\\&quot;</span>) + 1);</div><div class="line">  $root_dir = join(DIRECTORY_SEPARATOR, array(dirname(dirname(__FILE__)))); <span class="comment">// `flatbuffers` root.</span></div><div class="line"></div><div class="line">  <span class="comment">// Contains the `*.php` files for the FlatBuffers library and the `flatc` generated files.</span></div><div class="line">  $paths = array(join(DIRECTORY_SEPARATOR, array($root_dir, <span class="stringliteral">&quot;php&quot;</span>)),</div><div class="line">                 join(DIRECTORY_SEPARATOR, array($root_dir, <span class="stringliteral">&quot;samples&quot;</span>, <span class="stringliteral">&quot;MyGame&quot;</span>, <span class="stringliteral">&quot;Sample&quot;</span>)));</div><div class="line">  <span class="keywordflow">foreach</span> ($paths as $path) {</div><div class="line">    $file = join(DIRECTORY_SEPARATOR, array($path, $class . <span class="stringliteral">&quot;.php&quot;</span>));</div><div class="line">    <span class="keywordflow">if</span> (file_exists($file)) {</div><div class="line">      require($file);</div><div class="line">      <span class="keywordflow">break</span>;</div><div class="line">    }</div><div class="line">  }</div><div class="line">}</div></div><!-- fragment --> </div> <div class="language-c"> <div class="fragment"><div class="line"><span class="preprocessor">#include &quot;monster_builder.h&quot;</span> <span class="comment">// Generated by `flatcc`.</span></div><div class="line"></div><div class="line"><span class="comment">// Convenient namespace macro to manage long namespace prefix.</span></div><div class="line"><span class="preprocessor">#undef ns</span></div><div class="line"><span class="preprocessor">#define ns(x) FLATBUFFERS_WRAP_NAMESPACE(MyGame_Sample, x) // Specified in the schema.</span></div><div class="line"></div><div class="line"><span class="comment">// A helper to simplify creating vectors from C-arrays.</span></div><div class="line"><span class="preprocessor">#define c_vec_len(V) (sizeof(V)/sizeof((V)[0]))</span></div></div><!-- fragment --> </div><p>Now we are ready to start building some buffers. In order to start, we need to create an instance of the <code>FlatBufferBuilder</code>, which will contain the buffer as it grows. You can pass an initial size of the buffer (here 1024 bytes), which will grow automatically if needed:</p>
+<div class="language-cpp"> <div class="fragment"><div class="line"><span class="comment">// Create a `FlatBufferBuilder`, which will be used to create our</span></div><div class="line"><span class="comment">// monsters&#39; FlatBuffers.</span></div><div class="line"><a class="code" href="classflatbuffers_1_1_flat_buffer_builder.html">flatbuffers::FlatBufferBuilder</a> builder(1024);</div></div><!-- fragment --> </div> <div class="language-java"> <div class="fragment"><div class="line"><span class="comment">// Create a `FlatBufferBuilder`, which will be used to create our</span></div><div class="line"><span class="comment">// monsters&#39; FlatBuffers.</span></div><div class="line">FlatBufferBuilder builder = <span class="keyword">new</span> FlatBufferBuilder(1024);</div></div><!-- fragment --> </div> <div class="language-csharp"> <div class="fragment"><div class="line"><span class="comment">// Create a `FlatBufferBuilder`, which will be used to create our</span></div><div class="line"><span class="comment">// monsters&#39; FlatBuffers.</span></div><div class="line">var builder = <span class="keyword">new</span> FlatBufferBuilder(1024);</div></div><!-- fragment --> </div> <div class="language-go"> <div class="fragment"><div class="line">// Create a `FlatBufferBuilder`, which will be used to create our</div><div class="line">// monsters&#39; FlatBuffers.</div><div class="line">builder := flatbuffers.NewBuilder(1024)</div></div><!-- fragment --> </div> <div class="language-python"> <div class="fragment"><div class="line"><span class="comment"># Create a `FlatBufferBuilder`, which will be used to create our</span></div><div class="line"><span class="comment"># monsters&#39; FlatBuffers.</span></div><div class="line">builder = flatbuffers.Builder(1024)</div></div><!-- fragment --> </div> <div class="language-javascript"> <div class="fragment"><div class="line">// Create a `flatbuffer.Builder`, which will be used to create our</div><div class="line">// monsters&#39; FlatBuffers.</div><div class="line">var builder = new flatbuffers.Builder(1024);</div></div><!-- fragment --> </div> <div class="language-typescript"> <div class="fragment"><div class="line">// Create a `flatbuffer.Builder`, which will be used to create our</div><div class="line">// monsters&#39; FlatBuffers.</div><div class="line">let builder = new flatbuffers.Builder(1024);</div></div><!-- fragment --> </div> <div class="language-php"> <div class="fragment"><div class="line"><span class="comment">// Create a `FlatBufferBuilder`, which will be used to create our</span></div><div class="line"><span class="comment">// monsters&#39; FlatBuffers.</span></div><div class="line">$builder = <span class="keyword">new</span> <a class="code" href="class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html">Google\FlatBuffers\FlatbufferBuilder</a>(1024);</div></div><!-- fragment --> </div> <div class="language-c"> <div class="fragment"><div class="line">flatcc_builder_t builder, *B;</div><div class="line">B = &amp;builder;</div><div class="line"><span class="comment">// Initialize the builder object.</span></div><div class="line">flatcc_builder_init(B);</div></div><!-- fragment --> </div><p>After creating the <code>builder</code>, we can start serializing our data. Before we make our <code>orc</code> Monster, lets create some <code>Weapon</code>s: a <code>Sword</code> and an <code>Axe</code>.</p>
+<div class="language-cpp"> <div class="fragment"><div class="line"><span class="keyword">auto</span> weapon_one_name = builder.CreateString(<span class="stringliteral">&quot;Sword&quot;</span>);</div><div class="line"><span class="keywordtype">short</span> weapon_one_damage = 3;</div><div class="line"></div><div class="line"><span class="keyword">auto</span> weapon_two_name = builder.CreateString(<span class="stringliteral">&quot;Axe&quot;</span>);</div><div class="line"><span class="keywordtype">short</span> weapon_two_damage = 5;</div><div class="line"></div><div class="line"><span class="comment">// Use the `CreateWeapon` shortcut to create Weapons with all the fields set.</span></div><div class="line"><span class="keyword">auto</span> sword = CreateWeapon(builder, weapon_one_name, weapon_one_damage);</div><div class="line"><span class="keyword">auto</span> axe = CreateWeapon(builder, weapon_two_name, weapon_two_damage);</div></div><!-- fragment --> </div> <div class="language-java"> <div class="fragment"><div class="line"><span class="keywordtype">int</span> weaponOneName = builder.createString(<span class="stringliteral">&quot;Sword&quot;</span>)</div><div class="line"><span class="keywordtype">short</span> weaponOneDamage = 3;</div><div class="line"></div><div class="line"><span class="keywordtype">int</span> weaponTwoName = builder.createString(<span class="stringliteral">&quot;Axe&quot;</span>);</div><div class="line"><span class="keywordtype">short</span> weaponTwoDamage = 5;</div><div class="line"></div><div class="line"><span class="comment">// Use the `createWeapon()` helper function to create the weapons, since we set every field.</span></div><div class="line"><span class="keywordtype">int</span> sword = Weapon.createWeapon(builder, weaponOneName, weaponOneDamage);</div><div class="line"><span class="keywordtype">int</span> axe = Weapon.createWeapon(builder, weaponTwoName, weaponTwoDamage);</div></div><!-- fragment --> </div> <div class="language-csharp"> <div class="fragment"><div class="line">var weaponOneName = builder.CreateString(<span class="stringliteral">&quot;Sword&quot;</span>);</div><div class="line">var weaponOneDamage = 3;</div><div class="line"></div><div class="line">var weaponTwoName = builder.CreateString(<span class="stringliteral">&quot;Axe&quot;</span>);</div><div class="line">var weaponTwoDamage = 5;</div><div class="line"></div><div class="line"><span class="comment">// Use the `CreateWeapon()` helper function to create the weapons, since we set every field.</span></div><div class="line">var sword = Weapon.CreateWeapon(builder, weaponOneName, (<span class="keywordtype">short</span>)weaponOneDamage);</div><div class="line">var axe = Weapon.CreateWeapon(builder, weaponTwoName, (<span class="keywordtype">short</span>)weaponTwoDamage);</div></div><!-- fragment --> </div> <div class="language-go"> <div class="fragment"><div class="line">weaponOne := builder.CreateString(&quot;Sword&quot;)</div><div class="line">weaponTwo := builder.CreateString(&quot;Axe&quot;)</div><div class="line"></div><div class="line">// Create the first `Weapon` (&quot;Sword&quot;).</div><div class="line">sample.WeaponStart(builder)</div><div class="line">sample.Weapon.AddName(builder, weaponOne)</div><div class="line">sample.Weapon.AddDamage(builder, 3)</div><div class="line">sword := sample.WeaponEnd(builder)</div><div class="line"></div><div class="line">// Create the second `Weapon` (&quot;Axe&quot;).</div><div class="line">sample.WeaponStart(builder)</div><div class="line">sample.Weapon.AddName(builder, weaponTwo)</div><div class="line">sample.Weapon.AddDamage(builder, 5)</div><div class="line">axe := sample.WeaponEnd(builder)</div></div><!-- fragment --> </div> <div class="language-python"> <div class="fragment"><div class="line">weapon_one = builder.CreateString(<span class="stringliteral">&#39;Sword&#39;</span>)</div><div class="line">weapon_two = builder.CreateString(<span class="stringliteral">&#39;Axe&#39;</span>)</div><div class="line"></div><div class="line"><span class="comment"># Create the first `Weapon` (&#39;Sword&#39;).</span></div><div class="line">MyGame.Sample.Weapon.WeaponStart(builder)</div><div class="line">MyGame.Sample.Weapon.WeaponAddName(builder, weapon_one)</div><div class="line">MyGame.Sample.Weapon.WeaponAddDamage(builder, 3)</div><div class="line">sword = MyGame.Sample.Weapon.WeaponEnd(builder)</div><div class="line"></div><div class="line"><span class="comment"># Create the second `Weapon` (&#39;Axe&#39;).</span></div><div class="line">MyGame.Sample.Weapon.WeaponStart(builder)</div><div class="line">MyGame.Sample.Weapon.WeaponAddName(builder, weapon_two)</div><div class="line">MyGame.Sample.Weapon.WeaponAddDamage(builder, 5)</div><div class="line">axe = MyGame.Sample.Weapon.WeaponEnd(builder)</div></div><!-- fragment --> </div> <div class="language-javascript"> <div class="fragment"><div class="line">var weaponOne = builder.createString(&#39;Sword&#39;);</div><div class="line">var weaponTwo = builder.createString(&#39;Axe&#39;);</div><div class="line"></div><div class="line">// Create the first `Weapon` (&#39;Sword&#39;).</div><div class="line">MyGame.Sample.Weapon.startWeapon(builder);</div><div class="line">MyGame.Sample.Weapon.addName(builder, weaponOne);</div><div class="line">MyGame.Sample.Weapon.addDamage(builder, 3);</div><div class="line">var sword = MyGame.Sample.Weapon.endWeapon(builder);</div><div class="line"></div><div class="line">// Create the second `Weapon` (&#39;Axe&#39;).</div><div class="line">MyGame.Sample.Weapon.startWeapon(builder);</div><div class="line">MyGame.Sample.Weapon.addName(builder, weaponTwo);</div><div class="line">MyGame.Sample.Weapon.addDamage(builder, 5);</div><div class="line">var axe = MyGame.Sample.Weapon.endWeapon(builder);</div></div><!-- fragment --> </div> <div class="language-typescript"> <div class="fragment"><div class="line">let weaponOne = builder.createString(&#39;Sword&#39;);</div><div class="line">let weaponTwo = builder.createString(&#39;Axe&#39;);</div><div class="line"></div><div class="line">// Create the first `Weapon` (&#39;Sword&#39;).</div><div class="line">MyGame.Sample.Weapon.startWeapon(builder);</div><div class="line">MyGame.Sample.Weapon.addName(builder, weaponOne);</div><div class="line">MyGame.Sample.Weapon.addDamage(builder, 3);</div><div class="line">let sword = MyGame.Sample.Weapon.endWeapon(builder);</div><div class="line"></div><div class="line">// Create the second `Weapon` (&#39;Axe&#39;).</div><div class="line">MyGame.Sample.Weapon.startWeapon(builder);</div><div class="line">MyGame.Sample.Weapon.addName(builder, weaponTwo);</div><div class="line">MyGame.Sample.Weapon.addDamage(builder, 5);</div><div class="line">let axe = MyGame.Sample.Weapon.endWeapon(builder);</div></div><!-- fragment --> </div> <div class="language-php"> <div class="fragment"><div class="line"><span class="comment">// Create the `Weapon`s using the `createWeapon()` helper function.</span></div><div class="line">$weapon_one_name = $builder-&gt;createString(<span class="stringliteral">&quot;Sword&quot;</span>);</div><div class="line">$sword = \MyGame\Sample\Weapon::CreateWeapon($builder, $weapon_one_name, 3);</div><div class="line"></div><div class="line">$weapon_two_name = $builder-&gt;createString(<span class="stringliteral">&quot;Axe&quot;</span>);</div><div class="line">$axe = \MyGame\Sample\Weapon::CreateWeapon($builder, $weapon_two_name, 5);</div><div class="line"></div><div class="line"><span class="comment">// Create an array from the two `Weapon`s and pass it to the</span></div><div class="line"><span class="comment">// `CreateWeaponsVector()` method to create a FlatBuffer vector.</span></div><div class="line">$weaps = array($sword, $axe);</div><div class="line">$weapons = \MyGame\Sample\Monster::CreateWeaponsVector($builder, $weaps);</div></div><!-- fragment --> </div> <div class="language-c"> <div class="fragment"><div class="line">ns(Weapon_ref_t) weapon_one_name = flatbuffers_string_create_str(B, <span class="stringliteral">&quot;Sword&quot;</span>);</div><div class="line">uint16_t weapon_one_damage = 3;</div><div class="line"></div><div class="line">ns(Weapon_ref_t) weapon_two_name = flatbuffers_string_create_str(B, <span class="stringliteral">&quot;Axe&quot;</span>);</div><div class="line">uint16_t weapon_two_damage = 5;</div><div class="line"></div><div class="line">ns(Weapon_ref_t) sword = ns(Weapon_create(B, weapon_one_name, weapon_one_damage));</div><div class="line">ns(Weapon_ref_t) axe = ns(Weapon_create(B, weapon_two_name, weapon_two_damage));</div></div><!-- fragment --> </div><p>Now let's create our monster, the <code>orc</code>. For this <code>orc</code>, lets make him <code>red</code> with rage, positioned at <code>(1.0, 2.0, 3.0)</code>, and give him a large pool of hit points with <code>300</code>. We can give him a vector of weapons to choose from (our <code>Sword</code> and <code>Axe</code> from earlier). In this case, we will equip him with the <code>Axe</code>, since it is the most powerful of the two. Lastly, let's fill his inventory with some potential treasures that can be taken once he is defeated.</p>
 <p>Before we serialize a monster, we need to first serialize any objects that are contained there-in, i.e. we serialize the data tree using depth-first, pre-order traversal. This is generally easy to do on any tree structures.</p>
-<div class="language-cpp"> <div class="fragment"><div class="line"><span class="comment">// Serialize a name for our monster, called &quot;Orc&quot;.</span></div>
-<div class="line"><span class="keyword">auto</span> name = builder.CreateString(<span class="stringliteral">&quot;Orc&quot;</span>);</div>
-<div class="line"></div>
-<div class="line"><span class="comment">// Create a `vector` representing the inventory of the Orc. Each number</span></div>
-<div class="line"><span class="comment">// could correspond to an item that can be claimed after he is slain.</span></div>
-<div class="line"><span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> treasure[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};</div>
-<div class="line"><span class="keyword">auto</span> inventory = builder.CreateVector(treasure, 10);</div>
-</div><!-- fragment --> </div> <div class="language-java"> <div class="fragment"><div class="line"><span class="comment">// Serialize a name for our monster, called &quot;Orc&quot;.</span></div>
-<div class="line"><span class="keywordtype">int</span> name = builder.createString(<span class="stringliteral">&quot;Orc&quot;</span>);</div>
-<div class="line"></div>
-<div class="line"><span class="comment">// Create a `vector` representing the inventory of the Orc. Each number</span></div>
-<div class="line"><span class="comment">// could correspond to an item that can be claimed after he is slain.</span></div>
-<div class="line">byte[] treasure = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};</div>
-<div class="line"><span class="keywordtype">int</span> inv = Monster.createInventoryVector(builder, treasure);</div>
-</div><!-- fragment --> </div> <div class="language-csharp"> <div class="fragment"><div class="line"><span class="comment">// Serialize a name for our monster, called &quot;Orc&quot;.</span></div>
-<div class="line">var name = builder.CreateString(<span class="stringliteral">&quot;Orc&quot;</span>);</div>
-<div class="line"></div>
-<div class="line"><span class="comment">// Create a `vector` representing the inventory of the Orc. Each number</span></div>
-<div class="line"><span class="comment">// could correspond to an item that can be claimed after he is slain.</span></div>
-<div class="line"><span class="comment">// Note: Since we prepend the bytes, this loop iterates in reverse order.</span></div>
-<div class="line">Monster.StartInventoryVector(builder, 10);</div>
-<div class="line"><span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 9; i &gt;= 0; i--)</div>
-<div class="line">{</div>
-<div class="line">  builder.AddByte((byte)i);</div>
-<div class="line">}</div>
-<div class="line">var inv = builder.EndVector();</div>
-</div><!-- fragment --> </div> <div class="language-go"> <div class="fragment"><div class="line"><span class="comment">// Serialize a name for our monster, called &quot;Orc&quot;.</span></div>
-<div class="line">name := builder.CreateString(<span class="stringliteral">&quot;Orc&quot;</span>)</div>
-<div class="line"></div>
-<div class="line"><span class="comment">// Create a `vector` representing the inventory of the Orc. Each number</span></div>
-<div class="line"><span class="comment">// could correspond to an item that can be claimed after he is slain.</span></div>
-<div class="line"><span class="comment">// Note: Since we prepend the bytes, this loop iterates in reverse.</span></div>
-<div class="line">sample.MonsterStartInventoryVector(builder, 10)</div>
-<div class="line"><span class="keywordflow">for</span> i := 9; i &gt;= 0; i-- {</div>
-<div class="line">        builder.PrependByte(byte(i))</div>
-<div class="line">}</div>
-<div class="line"><span class="keywordtype">int</span> := builder.EndVector(10)</div>
-</div><!-- fragment --> </div> <div class="language-python"> <div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment"># Serialize a name for our monster, called &quot;Orc&quot;.</span></div>
-<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;name = builder.CreateString(<span class="stringliteral">&quot;Orc&quot;</span>)</div>
-<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;</div>
-<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"># Create a `vector` representing the inventory of the Orc. Each number</span></div>
-<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"># could correspond to an item that can be claimed after he is slain.</span></div>
-<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"># Note: Since we prepend the bytes, this loop iterates in reverse.</span></div>
-<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;MyGame.Sample.Monster.MonsterStartInventoryVector(builder, 10)</div>
-<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="keywordflow">for</span> i <span class="keywordflow">in</span> reversed(range(0, 10)):</div>
-<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;  builder.PrependByte(i)</div>
-<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;inv = builder.EndVector(10)</div>
-</div><!-- fragment --> </div> <div class="language-javascript"> <div class="fragment"><div class="line"><span class="comment">// Serialize a name for our monster, called &#39;Orc&#39;.</span></div>
-<div class="line">var name = builder.createString(<span class="stringliteral">&#39;Orc&#39;</span>);</div>
-<div class="line"></div>
-<div class="line"><span class="comment">// Create a `vector` representing the inventory of the Orc. Each number</span></div>
-<div class="line"><span class="comment">// could correspond to an item that can be claimed after he is slain.</span></div>
-<div class="line">var treasure = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];</div>
-<div class="line">var inv = MyGame.Sample.Monster.createInventoryVector(builder, treasure);</div>
-</div><!-- fragment --> </div> <div class="language-php"> <div class="fragment"><div class="line"><span class="comment">// Serialize a name for our monster, called &quot;Orc&quot;.</span></div>
-<div class="line">$name = $builder-&gt;createString(<span class="stringliteral">&quot;Orc&quot;</span>);</div>
-<div class="line"></div>
-<div class="line"><span class="comment">// Create a `vector` representing the inventory of the Orc. Each number</span></div>
-<div class="line"><span class="comment">// could correspond to an item that can be claimed after he is slain.</span></div>
-<div class="line">$treasure = array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9);</div>
-<div class="line">$inv = \MyGame\Sample\Monster::CreateInventoryVector($builder, $treasure);</div>
-</div><!-- fragment --> </div> <div class="language-c"> <div class="fragment"><div class="line"><span class="comment">// Serialize a name for our monster, called &quot;Orc&quot;.</span></div>
-<div class="line"><span class="comment">// The _str suffix indicates the source is an ascii-z string.</span></div>
-<div class="line">flatbuffers_string_ref_t name = flatbuffers_string_create_str(B, <span class="stringliteral">&quot;Orc&quot;</span>);</div>
-<div class="line"></div>
-<div class="line"><span class="comment">// Create a `vector` representing the inventory of the Orc. Each number</span></div>
-<div class="line"><span class="comment">// could correspond to an item that can be claimed after he is slain.</span></div>
-<div class="line">uint8_t treasure[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};</div>
-<div class="line">flatbuffers_uint8_vec_ref_t inventory;</div>
-<div class="line"><span class="comment">// `c_vec_len` is the convenience macro we defined earlier.</span></div>
-<div class="line">inventory = flatbuffers_uint8_vec_create(B, treasure, c_vec_len(treasure));</div>
-</div><!-- fragment --> </div><p>We serialized two built-in data types (<code>string</code> and <code>vector</code>) and captured their return values. These values are offsets into the serialized data, indicating where they are stored, such that we can refer to them below when adding fields to our monster.</p>
+<div class="language-cpp"> <div class="fragment"><div class="line"><span class="comment">// Serialize a name for our monster, called &quot;Orc&quot;.</span></div><div class="line"><span class="keyword">auto</span> name = builder.CreateString(<span class="stringliteral">&quot;Orc&quot;</span>);</div><div class="line"></div><div class="line"><span class="comment">// Create a `vector` representing the inventory of the Orc. Each number</span></div><div class="line"><span class="comment">// could correspond to an item that can be claimed after he is slain.</span></div><div class="line"><span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> treasure[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};</div><div class="line"><span class="keyword">auto</span> inventory = builder.CreateVector(treasure, 10);</div></div><!-- fragment --> </div> <div class="language-java"> <div class="fragment"><div class="line"><span class="comment">// Serialize a name for our monster, called &quot;Orc&quot;.</span></div><div class="line"><span class="keywordtype">int</span> name = builder.createString(<span class="stringliteral">&quot;Orc&quot;</span>);</div><div class="line"></div><div class="line"><span class="comment">// Create a `vector` representing the inventory of the Orc. Each number</span></div><div class="line"><span class="comment">// could correspond to an item that can be claimed after he is slain.</span></div><div class="line">byte[] treasure = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};</div><div class="line"><span class="keywordtype">int</span> inv = Monster.createInventoryVector(builder, treasure);</div></div><!-- fragment --> </div> <div class="language-csharp"> <div class="fragment"><div class="line"><span class="comment">// Serialize a name for our monster, called &quot;Orc&quot;.</span></div><div class="line">var name = builder.CreateString(<span class="stringliteral">&quot;Orc&quot;</span>);</div><div class="line"></div><div class="line"><span class="comment">// Create a `vector` representing the inventory of the Orc. Each number</span></div><div class="line"><span class="comment">// could correspond to an item that can be claimed after he is slain.</span></div><div class="line"><span class="comment">// Note: Since we prepend the bytes, this loop iterates in reverse order.</span></div><div class="line">Monster.StartInventoryVector(builder, 10);</div><div class="line"><span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 9; i &gt;= 0; i--)</div><div class="line">{</div><div class="line">  builder.AddByte((byte)i);</div><div class="line">}</div><div class="line">var inv = builder.EndVector();</div></div><!-- fragment --> </div> <div class="language-go"> <div class="fragment"><div class="line">// Serialize a name for our monster, called &quot;Orc&quot;.</div><div class="line">name := builder.CreateString(&quot;Orc&quot;)</div><div class="line"></div><div class="line">// Create a `vector` representing the inventory of the Orc. Each number</div><div class="line">// could correspond to an item that can be claimed after he is slain.</div><div class="line">// Note: Since we prepend the bytes, this loop iterates in reverse.</div><div class="line">sample.MonsterStartInventoryVector(builder, 10)</div><div class="line">for i := 9; i &gt;= 0; i-- {</div><div class="line">        builder.PrependByte(byte(i))</div><div class="line">}</div><div class="line">int := builder.EndVector(10)</div></div><!-- fragment --> </div> <div class="language-python"> <div class="fragment"><div class="line"><span class="comment"># Serialize a name for our monster, called &quot;Orc&quot;.</span></div><div class="line">name = builder.CreateString(<span class="stringliteral">&quot;Orc&quot;</span>)</div><div class="line"></div><div class="line"><span class="comment"># Create a `vector` representing the inventory of the Orc. Each number</span></div><div class="line"><span class="comment"># could correspond to an item that can be claimed after he is slain.</span></div><div class="line"><span class="comment"># Note: Since we prepend the bytes, this loop iterates in reverse.</span></div><div class="line">MyGame.Sample.Monster.MonsterStartInventoryVector(builder, 10)</div><div class="line"><span class="keywordflow">for</span> i <span class="keywordflow">in</span> reversed(range(0, 10)):</div><div class="line">  builder.PrependByte(i)</div><div class="line">inv = builder.EndVector(10)</div></div><!-- fragment --> </div> <div class="language-javascript"> <div class="fragment"><div class="line">// Serialize a name for our monster, called &#39;Orc&#39;.</div><div class="line">var name = builder.createString(&#39;Orc&#39;);</div><div class="line"></div><div class="line">// Create a `vector` representing the inventory of the Orc. Each number</div><div class="line">// could correspond to an item that can be claimed after he is slain.</div><div class="line">var treasure = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];</div><div class="line">var inv = MyGame.Sample.Monster.createInventoryVector(builder, treasure);</div></div><!-- fragment --> </div> <div class="language-typescript"> <div class="fragment"><div class="line">// Serialize a name for our monster, called &#39;Orc&#39;.</div><div class="line">let name = builder.createString(&#39;Orc&#39;);</div><div class="line"></div><div class="line">// Create a `vector` representing the inventory of the Orc. Each number</div><div class="line">// could correspond to an item that can be claimed after he is slain.</div><div class="line">let treasure = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];</div><div class="line">let inv = MyGame.Sample.Monster.createInventoryVector(builder, treasure);</div></div><!-- fragment --> </div> <div class="language-php"> <div class="fragment"><div class="line"><span class="comment">// Serialize a name for our monster, called &quot;Orc&quot;.</span></div><div class="line">$name = $builder-&gt;createString(<span class="stringliteral">&quot;Orc&quot;</span>);</div><div class="line"></div><div class="line"><span class="comment">// Create a `vector` representing the inventory of the Orc. Each number</span></div><div class="line"><span class="comment">// could correspond to an item that can be claimed after he is slain.</span></div><div class="line">$treasure = array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9);</div><div class="line">$inv = \MyGame\Sample\Monster::CreateInventoryVector($builder, $treasure);</div></div><!-- fragment --> </div> <div class="language-c"> <div class="fragment"><div class="line"><span class="comment">// Serialize a name for our monster, called &quot;Orc&quot;.</span></div><div class="line"><span class="comment">// The _str suffix indicates the source is an ascii-z string.</span></div><div class="line">flatbuffers_string_ref_t name = flatbuffers_string_create_str(B, <span class="stringliteral">&quot;Orc&quot;</span>);</div><div class="line"></div><div class="line"><span class="comment">// Create a `vector` representing the inventory of the Orc. Each number</span></div><div class="line"><span class="comment">// could correspond to an item that can be claimed after he is slain.</span></div><div class="line">uint8_t treasure[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};</div><div class="line">flatbuffers_uint8_vec_ref_t inventory;</div><div class="line"><span class="comment">// `c_vec_len` is the convenience macro we defined earlier.</span></div><div class="line">inventory = flatbuffers_uint8_vec_create(B, treasure, c_vec_len(treasure));</div></div><!-- fragment --> </div><p>We serialized two built-in data types (<code>string</code> and <code>vector</code>) and captured their return values. These values are offsets into the serialized data, indicating where they are stored, such that we can refer to them below when adding fields to our monster.</p>
 <p><em>Note: To create a <code>vector</code> of nested objects (e.g. <code>table</code>s, <code>string</code>s, or other <code>vector</code>s), collect their offsets into a temporary data structure, and then create an additional <code>vector</code> containing their offsets.</em></p>
 <p>If instead of creating a vector from an existing array you serialize elements individually one by one, take care to note that this happens in reverse order, as buffers are built back to front.</p>
 <p>For example, take a look at the two <code>Weapon</code>s that we created earlier (<code>Sword</code> and <code>Axe</code>). These are both FlatBuffer <code>table</code>s, whose offsets we now store in memory. Therefore we can create a FlatBuffer <code>vector</code> to contain these offsets.</p>
-<div class="language-cpp"> <div class="fragment"><div class="line"><span class="comment">// Place the weapons into a `std::vector`, then convert that into a FlatBuffer `vector`.</span></div>
-<div class="line">std::vector&lt;flatbuffers::Offset&lt;Weapon&gt;&gt; weapons_vector;</div>
-<div class="line">weapons_vector.push_back(sword);</div>
-<div class="line">weapons_vector.push_back(axe);</div>
-<div class="line"><span class="keyword">auto</span> weapons = builder.CreateVector(weapons_vector);</div>
-</div><!-- fragment --> </div> <div class="language-java"> <div class="fragment"><div class="line"><span class="comment">// Place the two weapons into an array, and pass it to the `createWeaponsVector()` method to</span></div>
-<div class="line"><span class="comment">// create a FlatBuffer vector.</span></div>
-<div class="line"><span class="keywordtype">int</span>[] weaps = <span class="keyword">new</span> <span class="keywordtype">int</span>[2];</div>
-<div class="line">weaps[0] = sword;</div>
-<div class="line">weaps[1] = axe;</div>
-<div class="line"></div>
-<div class="line"><span class="comment">// Pass the `weaps` array into the `createWeaponsVector()` method to create a FlatBuffer vector.</span></div>
-<div class="line"><span class="keywordtype">int</span> weapons = Monster.createWeaponsVector(builder, weaps);</div>
-</div><!-- fragment --> </div> <div class="language-csharp"> <div class="fragment"><div class="line">var weaps = <span class="keyword">new</span> Offset&lt;Weapon&gt;[2];</div>
-<div class="line">weaps[0] = sword;</div>
-<div class="line">weaps[1] = axe;</div>
-<div class="line"></div>
-<div class="line"><span class="comment">// Pass the `weaps` array into the `CreateWeaponsVector()` method to create a FlatBuffer vector.</span></div>
-<div class="line">var weapons = Monster.CreateWeaponsVector(builder, weaps);</div>
-</div><!-- fragment --> </div> <div class="language-go"> <div class="fragment"><div class="line"><span class="comment">// Create a FlatBuffer vector and prepend the weapons.</span></div>
-<div class="line"><span class="comment">// Note: Since we prepend the data, prepend them in reverse order.</span></div>
-<div class="line">sample.MonsterStartWeaponsVector(builder, 2)</div>
-<div class="line">builder.PrependUOffsetT(axe)</div>
-<div class="line">builder.PrependUOffsetT(sword)</div>
-<div class="line">weapons := builder.EndVector(2)</div>
-</div><!-- fragment --> </div> <div class="language-python"> <div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment"># Create a FlatBuffer vector and prepend the weapons.</span></div>
-<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"># Note: Since we prepend the data, prepend them in reverse order.</span></div>
-<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;MyGame.Sample.Monster.MonsterStartWeaponsVector(builder, 2)</div>
-<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;builder.PrependUOffsetTRelative(axe)</div>
-<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;builder.PrependUOffsetTRelative(sword)</div>
-<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;weapons = builder.EndVector(2)</div>
-</div><!-- fragment --> </div> <div class="language-javascript"> <div class="fragment"><div class="line"><span class="comment">// Create an array from the two `Weapon`s and pass it to the</span></div>
-<div class="line"><span class="comment">// `createWeaponsVector()` method to create a FlatBuffer vector.</span></div>
-<div class="line">var weaps = [sword, axe];</div>
-<div class="line">var weapons = MyGame.Sample.Monster.createWeaponsVector(builder, weaps);</div>
-</div><!-- fragment --> </div> <div class="language-php"> <div class="fragment"><div class="line"><span class="comment">// Create an array from the two `Weapon`s and pass it to the</span></div>
-<div class="line"><span class="comment">// `CreateWeaponsVector()` method to create a FlatBuffer vector.</span></div>
-<div class="line">$weaps = array($sword, $axe);</div>
-<div class="line">$weapons = \MyGame\Sample\Monster::CreateWeaponsVector($builder, $weaps);</div>
-</div><!-- fragment --> </div> <div class="language-c"> <div class="fragment"><div class="line"><span class="comment">// We use the internal builder stack to implement a dynamic vector.</span></div>
-<div class="line">ns(Weapon_vec_start(B));</div>
-<div class="line">ns(Weapon_vec_push(B, sword));</div>
-<div class="line">ns(Weapon_vec_push(B, axe));</div>
-<div class="line">ns(Weapon_vec_ref_t) weapons = ns(Weapon_vec_end(B));</div>
-</div><!-- fragment --> </div><div class="language-cpp"> <br />
+<div class="language-cpp"> <div class="fragment"><div class="line"><span class="comment">// Place the weapons into a `std::vector`, then convert that into a FlatBuffer `vector`.</span></div><div class="line">std::vector&lt;flatbuffers::Offset&lt;Weapon&gt;&gt; weapons_vector;</div><div class="line">weapons_vector.push_back(sword);</div><div class="line">weapons_vector.push_back(axe);</div><div class="line"><span class="keyword">auto</span> weapons = builder.CreateVector(weapons_vector);</div></div><!-- fragment --> </div> <div class="language-java"> <div class="fragment"><div class="line"><span class="comment">// Place the two weapons into an array, and pass it to the `createWeaponsVector()` method to</span></div><div class="line"><span class="comment">// create a FlatBuffer vector.</span></div><div class="line"><span class="keywordtype">int</span>[] weaps = <span class="keyword">new</span> <span class="keywordtype">int</span>[2];</div><div class="line">weaps[0] = sword;</div><div class="line">weaps[1] = axe;</div><div class="line"></div><div class="line"><span class="comment">// Pass the `weaps` array into the `createWeaponsVector()` method to create a FlatBuffer vector.</span></div><div class="line"><span class="keywordtype">int</span> weapons = Monster.createWeaponsVector(builder, weaps);</div></div><!-- fragment --> </div> <div class="language-csharp"> <div class="fragment"><div class="line">var weaps = <span class="keyword">new</span> Offset&lt;Weapon&gt;[2];</div><div class="line">weaps[0] = sword;</div><div class="line">weaps[1] = axe;</div><div class="line"></div><div class="line"><span class="comment">// Pass the `weaps` array into the `CreateWeaponsVector()` method to create a FlatBuffer vector.</span></div><div class="line">var weapons = Monster.CreateWeaponsVector(builder, weaps);</div></div><!-- fragment --> </div> <div class="language-go"> <div class="fragment"><div class="line">// Create a FlatBuffer vector and prepend the weapons.</div><div class="line">// Note: Since we prepend the data, prepend them in reverse order.</div><div class="line">sample.MonsterStartWeaponsVector(builder, 2)</div><div class="line">builder.PrependUOffsetT(axe)</div><div class="line">builder.PrependUOffsetT(sword)</div><div class="line">weapons := builder.EndVector(2)</div></div><!-- fragment --> </div> <div class="language-python"> <div class="fragment"><div class="line"><span class="comment"># Create a FlatBuffer vector and prepend the weapons.</span></div><div class="line"><span class="comment"># Note: Since we prepend the data, prepend them in reverse order.</span></div><div class="line">MyGame.Sample.Monster.MonsterStartWeaponsVector(builder, 2)</div><div class="line">builder.PrependUOffsetTRelative(axe)</div><div class="line">builder.PrependUOffsetTRelative(sword)</div><div class="line">weapons = builder.EndVector(2)</div></div><!-- fragment --> </div> <div class="language-javascript"> <div class="fragment"><div class="line">// Create an array from the two `Weapon`s and pass it to the</div><div class="line">// `createWeaponsVector()` method to create a FlatBuffer vector.</div><div class="line">var weaps = [sword, axe];</div><div class="line">var weapons = MyGame.Sample.Monster.createWeaponsVector(builder, weaps);</div></div><!-- fragment --> </div> <div class="language-typescript"> <div class="fragment"><div class="line">// Create an array from the two `Weapon`s and pass it to the</div><div class="line">// `createWeaponsVector()` method to create a FlatBuffer vector.</div><div class="line">let weaps = [sword, axe];</div><div class="line">let weapons = MyGame.Sample.Monster.createWeaponsVector(builder, weaps);</div></div><!-- fragment --> </div> <div class="language-php"> <div class="fragment"><div class="line"><span class="comment">// Create an array from the two `Weapon`s and pass it to the</span></div><div class="line"><span class="comment">// `CreateWeaponsVector()` method to create a FlatBuffer vector.</span></div><div class="line">$weaps = array($sword, $axe);</div><div class="line">$weapons = \MyGame\Sample\Monster::CreateWeaponsVector($builder, $weaps);</div></div><!-- fragment --> </div> <div class="language-c"> <div class="fragment"><div class="line"><span class="comment">// We use the internal builder stack to implement a dynamic vector.</span></div><div class="line">ns(Weapon_vec_start(B));</div><div class="line">ns(Weapon_vec_push(B, sword));</div><div class="line">ns(Weapon_vec_push(B, axe));</div><div class="line">ns(Weapon_vec_ref_t) weapons = ns(Weapon_vec_end(B));</div></div><!-- fragment --> </div><div class="language-cpp"> <br />
  Note there's additional convenience overloads of <code>CreateVector</code>, allowing you to work with data that's not in a <code>std::vector</code>, or allowing you to generate elements by calling a lambda. For the common case of <code>std::vector&lt;std::string&gt;</code> there's also <code>CreateVectorOfStrings</code>. </div><p>Note that vectors of structs are serialized differently from tables, since structs are stored in-line in the vector. For example, to create a vector for the <code>path</code> field above:</p>
-<div class="language-cpp"> <div class="fragment"><div class="line">Vec3 points[] = { Vec3(1.0f, 2.0f, 3.0f), Vec3(4.0f, 5.0f, 6.0f) };</div>
-<div class="line"><span class="keyword">auto</span> path = builder.CreateVectorOfStructs(points, 2);</div>
-</div><!-- fragment --> </div> <div class="language-java"> <div class="fragment"><div class="line">Monster.startPathVector(fbb, 2);</div>
-<div class="line">Vec3.createVec3(builder, 1.0f, 2.0f, 3.0f);</div>
-<div class="line">Vec3.createVec3(builder, 4.0f, 5.0f, 6.0f);</div>
-<div class="line"><span class="keywordtype">int</span> path = fbb.endVector();</div>
-</div><!-- fragment --> </div> <div class="language-csharp"> <div class="fragment"><div class="line">Monster.StartPathVector(fbb, 2);</div>
-<div class="line">Vec3.CreateVec3(builder, 1.0f, 2.0f, 3.0f);</div>
-<div class="line">Vec3.CreateVec3(builder, 4.0f, 5.0f, 6.0f);</div>
-<div class="line">var path = fbb.EndVector();</div>
-</div><!-- fragment --> </div> <div class="language-go"> <div class="fragment"><div class="line">sample.MonsterStartPathVector(builder, 2)</div>
-<div class="line">sample.CreateVec3(builder, 1.0, 2.0, 3.0)</div>
-<div class="line">sample.CreateVec3(builder, 4.0, 5.0, 6.0)</div>
-<div class="line">path := builder.EndVector(2)</div>
-</div><!-- fragment --> </div> <div class="language-python"> <div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;MyGame.Sample.Monster.MonsterStartPathVector(builder, 2)</div>
-<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;MyGame.Sample.Vec3.CreateVec3(builder, 1.0, 2.0, 3.0)</div>
-<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;MyGame.Sample.Vec3.CreateVec3(builder, 4.0, 5.0, 6.0)</div>
-<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;path = builder.EndVector(2)</div>
-</div><!-- fragment --> </div> <div class="language-javascript"> <div class="fragment"><div class="line">MyGame.Sample.Monster.startPathVector(builder, 2);</div>
-<div class="line">MyGame.Sample.Vec3.createVec3(builder, 1.0, 2.0, 3.0);</div>
-<div class="line">MyGame.Sample.Vec3.createVec3(builder, 4.0, 5.0, 6.0);</div>
-<div class="line">var path = builder.endVector();</div>
-</div><!-- fragment --> </div> <div class="language-php"> <div class="fragment"><div class="line">\MyGame\Example\Monster::StartPathVector($builder, 2);</div>
-<div class="line">\MyGame\Sample\Vec3::CreateVec3($builder, 1.0, 2.0, 3.0);</div>
-<div class="line">\MyGame\Sample\Vec3::CreateVec3($builder, 1.0, 2.0, 3.0);</div>
-<div class="line">$path = $builder-&gt;endVector();</div>
-</div><!-- fragment --> </div> <div class="language-c"> <div class="fragment"><div class="line"><span class="comment">// TBD</span></div>
-</div><!-- fragment --> </div><p>We have now serialized the non-scalar components of the orc, so we can serialize the monster itself:</p>
-<div class="language-cpp"> <div class="fragment"><div class="line"><span class="comment">// Set his hit points to 300 and his mana to 150.</span></div>
-<div class="line"><span class="keywordtype">int</span> hp = 300;</div>
-<div class="line"><span class="keywordtype">int</span> mana = 150;</div>
-<div class="line"></div>
-<div class="line"><span class="comment">// Finally, create the monster using the `CreateMonster` helper function</span></div>
-<div class="line"><span class="comment">// to set all fields.</span></div>
-<div class="line"><span class="keyword">auto</span> orc = CreateMonster(builder, Vec3(1.0f, 2.0f, 3.0f), mana, hp, name,</div>
-<div class="line">                         inventory, Color_Red, weapons, Equipment_Weapon,</div>
-<div class="line">                         axe.Union(), path);</div>
-</div><!-- fragment --> </div> <div class="language-java"> <div class="fragment"><div class="line"><span class="comment">// Create our monster using `startMonster()` and `endMonster()`.</span></div>
-<div class="line">Monster.startMonster(builder);</div>
-<div class="line">Monster.addPos(builder, Vec3.createVec3(builder, 1.0f, 2.0f, 3.0f));</div>
-<div class="line">Monster.addName(builder, name);</div>
-<div class="line">Monster.addColor(builder, Color.Red);</div>
-<div class="line">Monster.addHp(builder, (short)300);</div>
-<div class="line">Monster.addInventory(builder, inv);</div>
-<div class="line">Monster.addWeapons(builder, weapons);</div>
-<div class="line">Monster.addEquippedType(builder, Equipment.Weapon);</div>
-<div class="line">Monster.addEquipped(builder, axe);</div>
-<div class="line">Monster.addPath(builder, path);</div>
-<div class="line"><span class="keywordtype">int</span> orc = Monster.endMonster(builder);</div>
-</div><!-- fragment --> </div> <div class="language-csharp"> <div class="fragment"><div class="line"><span class="comment">// Create our monster using `StartMonster()` and `EndMonster()`.</span></div>
-<div class="line">Monster.StartMonster(builder);</div>
-<div class="line">Monster.AddPos(builder, Vec3.CreateVec3(builder, 1.0f, 2.0f, 3.0f));</div>
-<div class="line">Monster.AddHp(builder, (short)300);</div>
-<div class="line">Monster.AddName(builder, name);</div>
-<div class="line">Monster.AddInventory(builder, inv);</div>
-<div class="line">Monster.AddColor(builder, Color.Red);</div>
-<div class="line">Monster.AddWeapons(builder, weapons);</div>
-<div class="line">Monster.AddEquippedType(builder, Equipment.Weapon);</div>
-<div class="line">Monster.AddEquipped(builder, axe.Value); <span class="comment">// Axe</span></div>
-<div class="line">Monster.AddPath(builder, path);</div>
-<div class="line">var orc = Monster.EndMonster(builder);</div>
-</div><!-- fragment --> </div> <div class="language-go"> <div class="fragment"><div class="line"><span class="comment">// Create our monster using `MonsterStart()` and `MonsterEnd()`.</span></div>
-<div class="line">sample.MonsterStart(builder)</div>
-<div class="line">sample.MonsterAddPos(builder, sample.CreateVec3(builder, 1.0, 2.0, 3.0))</div>
-<div class="line">sample.MonsterAddHp(builder, 300)</div>
-<div class="line">sample.MonsterAddName(builder, name)</div>
-<div class="line">sample.MonsterAddInventory(builder, inv)</div>
-<div class="line">sample.MonsterAddColor(builder, sample.ColorRed)</div>
-<div class="line">sample.MonsterAddWeapons(builder, weapons)</div>
-<div class="line">sample.MonsterAddEquippedType(builder, sample.EquipmentWeapon)</div>
-<div class="line">sample.MonsterAddEquipped(builder, axe)</div>
-<div class="line">sample.MonsterAddPath(builder, path)</div>
-<div class="line">orc := sample.MonsterEnd(builder)</div>
-</div><!-- fragment --> </div> <div class="language-python"> <div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment"># Create our monster by using `MonsterStart()` and `MonsterEnd()`.</span></div>
-<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;MyGame.Sample.Monster.MonsterStart(builder)</div>
-<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;MyGame.Sample.Monster.MonsterAddPos(builder,</div>
-<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;                        MyGame.Sample.Vec3.CreateVec3(builder, 1.0, 2.0, 3.0))</div>
-<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;MyGame.Sample.Monster.MonsterAddHp(builder, 300)</div>
-<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;MyGame.Sample.Monster.MonsterAddName(builder, name)</div>
-<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;MyGame.Sample.Monster.MonsterAddInventory(builder, inv)</div>
-<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;MyGame.Sample.Monster.MonsterAddColor(builder,</div>
-<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;                                      MyGame.Sample.Color.Color().Red)</div>
-<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;MyGame.Sample.Monster.MonsterAddWeapons(builder, weapons)</div>
-<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;MyGame.Sample.Monster.MonsterAddEquippedType(</div>
-<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;    builder, MyGame.Sample.Equipment.Equipment().Weapon)</div>
-<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;MyGame.Sample.Monster.MonsterAddEquipped(builder, axe)</div>
-<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;MyGame.Sample.Monster.MonsterAddPath(builder, path)</div>
-<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;orc = MyGame.Sample.Monster.MonsterEnd(builder)</div>
-</div><!-- fragment --> </div> <div class="language-javascript"> <div class="fragment"><div class="line"><span class="comment">// Create our monster by using `startMonster()` and `endMonster()`.</span></div>
-<div class="line">MyGame.Sample.Monster.startMonster(builder);</div>
-<div class="line">MyGame.Sample.Monster.addPos(builder,</div>
-<div class="line">                       MyGame.Sample.Vec3.createVec3(builder, 1.0, 2.0, 3.0));</div>
-<div class="line">MyGame.Sample.Monster.addHp(builder, 300);</div>
-<div class="line">MyGame.Sample.Monster.addColor(builder, MyGame.Sample.Color.Red)</div>
-<div class="line">MyGame.Sample.Monster.addName(builder, name);</div>
-<div class="line">MyGame.Sample.Monster.addInventory(builder, inv);</div>
-<div class="line">MyGame.Sample.Monster.addWeapons(builder, weapons);</div>
-<div class="line">MyGame.Sample.Monster.addEquippedType(builder, MyGame.Sample.Equipment.Weapon);</div>
-<div class="line">MyGame.Sample.Monster.addEquipped(builder, axe);</div>
-<div class="line">MyGame.Sample.Monster.addPath(builder, path);</div>
-<div class="line">var orc = MyGame.Sample.Monster.endMonster(builder);</div>
-</div><!-- fragment --> </div> <div class="language-php"> <div class="fragment"><div class="line"><span class="comment">// Create our monster by using `StartMonster()` and `EndMonster()`.</span></div>
-<div class="line">\MyGame\Sample\Monster::StartMonster($builder);</div>
-<div class="line">\MyGame\Sample\Monster::AddPos($builder,</div>
-<div class="line">                    \MyGame\Sample\Vec3::CreateVec3($builder, 1.0, 2.0, 3.0));</div>
-<div class="line">\MyGame\Sample\Monster::AddHp($builder, 300);</div>
-<div class="line">\MyGame\Sample\Monster::AddName($builder, $name);</div>
-<div class="line">\MyGame\Sample\Monster::AddInventory($builder, $inv);</div>
-<div class="line">\MyGame\Sample\Monster::AddColor($builder, \MyGame\Sample\Color::Red);</div>
-<div class="line">\MyGame\Sample\Monster::AddWeapons($builder, $weapons);</div>
-<div class="line">\MyGame\Sample\Monster::AddEquippedType($builder, \MyGame\Sample\Equipment::Weapon);</div>
-<div class="line">\MyGame\Sample\Monster::AddEquipped($builder, $axe);</div>
-<div class="line">\MyGame\Sample\Monster::AddPath($builder, $path);</div>
-<div class="line">$orc = \MyGame\Sample\Monster::EndMonster($builder);</div>
-</div><!-- fragment --> </div> <div class="language-c"> <div class="fragment"><div class="line"><span class="comment">// Set his hit points to 300 and his mana to 150.</span></div>
-<div class="line">uint16_t hp = 300;</div>
-<div class="line">uint16_t mana = 150;</div>
-<div class="line"></div>
-<div class="line"><span class="comment">// Define an equipment union. `create` calls in C has a single</span></div>
-<div class="line"><span class="comment">// argument for unions where C++ has both a type and a data argument.</span></div>
-<div class="line">ns(Equipment_union_ref_t) equipped = ns(Equipment_as_Weapon(axe));</div>
-<div class="line">ns(Vec3_t) pos = { 1.0f, 2.0f, 3.0f };</div>
-<div class="line">ns(Monster_create_as_root(B, &amp;pos, mana, hp, name, inventory, ns(Color_Red),</div>
-<div class="line">        weapons, equipped, path));</div>
-</div><!-- fragment --> </div><p>Note how we create <code>Vec3</code> struct in-line in the table. Unlike tables, structs are simple combinations of scalars that are always stored inline, just like scalars themselves.</p>
+<div class="language-cpp"> <div class="fragment"><div class="line">Vec3 points[] = { Vec3(1.0f, 2.0f, 3.0f), Vec3(4.0f, 5.0f, 6.0f) };</div><div class="line"><span class="keyword">auto</span> path = builder.CreateVectorOfStructs(points, 2);</div></div><!-- fragment --> </div> <div class="language-java"> <div class="fragment"><div class="line">Monster.startPathVector(fbb, 2);</div><div class="line">Vec3.createVec3(builder, 1.0f, 2.0f, 3.0f);</div><div class="line">Vec3.createVec3(builder, 4.0f, 5.0f, 6.0f);</div><div class="line"><span class="keywordtype">int</span> path = fbb.endVector();</div></div><!-- fragment --> </div> <div class="language-csharp"> <div class="fragment"><div class="line">Monster.StartPathVector(fbb, 2);</div><div class="line">Vec3.CreateVec3(builder, 1.0f, 2.0f, 3.0f);</div><div class="line">Vec3.CreateVec3(builder, 4.0f, 5.0f, 6.0f);</div><div class="line">var path = fbb.EndVector();</div></div><!-- fragment --> </div> <div class="language-go"> <div class="fragment"><div class="line">sample.MonsterStartPathVector(builder, 2)</div><div class="line">sample.CreateVec3(builder, 1.0, 2.0, 3.0)</div><div class="line">sample.CreateVec3(builder, 4.0, 5.0, 6.0)</div><div class="line">path := builder.EndVector(2)</div></div><!-- fragment --> </div> <div class="language-python"> <div class="fragment"><div class="line">MyGame.Sample.Monster.MonsterStartPathVector(builder, 2)</div><div class="line">MyGame.Sample.Vec3.CreateVec3(builder, 1.0, 2.0, 3.0)</div><div class="line">MyGame.Sample.Vec3.CreateVec3(builder, 4.0, 5.0, 6.0)</div><div class="line">path = builder.EndVector(2)</div></div><!-- fragment --> </div> <div class="language-javascript"> <div class="fragment"><div class="line">MyGame.Sample.Monster.startPathVector(builder, 2);</div><div class="line">MyGame.Sample.Vec3.createVec3(builder, 1.0, 2.0, 3.0);</div><div class="line">MyGame.Sample.Vec3.createVec3(builder, 4.0, 5.0, 6.0);</div><div class="line">var path = builder.endVector();</div></div><!-- fragment --> </div> <div class="language-typescript"> <div class="fragment"><div class="line">MyGame.Sample.Monster.startPathVector(builder, 2);</div><div class="line">MyGame.Sample.Vec3.createVec3(builder, 1.0, 2.0, 3.0);</div><div class="line">MyGame.Sample.Vec3.createVec3(builder, 4.0, 5.0, 6.0);</div><div class="line">let path = builder.endVector();</div></div><!-- fragment --> </div> <div class="language-php"> <div class="fragment"><div class="line">\MyGame\Example\Monster::StartPathVector($builder, 2);</div><div class="line">\MyGame\Sample\Vec3::CreateVec3($builder, 1.0, 2.0, 3.0);</div><div class="line">\MyGame\Sample\Vec3::CreateVec3($builder, 1.0, 2.0, 3.0);</div><div class="line">$path = $builder-&gt;endVector();</div></div><!-- fragment --> </div> <div class="language-c"> <div class="fragment"><div class="line"><span class="comment">// TBD</span></div></div><!-- fragment --> </div><p>We have now serialized the non-scalar components of the orc, so we can serialize the monster itself:</p>
+<div class="language-cpp"> <div class="fragment"><div class="line"><span class="comment">// Set his hit points to 300 and his mana to 150.</span></div><div class="line"><span class="keywordtype">int</span> hp = 300;</div><div class="line"><span class="keywordtype">int</span> mana = 150;</div><div class="line"></div><div class="line"><span class="comment">// Finally, create the monster using the `CreateMonster` helper function</span></div><div class="line"><span class="comment">// to set all fields.</span></div><div class="line"><span class="keyword">auto</span> orc = CreateMonster(builder, Vec3(1.0f, 2.0f, 3.0f), mana, hp, name,</div><div class="line">                         inventory, Color_Red, weapons, Equipment_Weapon,</div><div class="line">                         axe.Union(), path);</div></div><!-- fragment --> </div> <div class="language-java"> <div class="fragment"><div class="line"><span class="comment">// Create our monster using `startMonster()` and `endMonster()`.</span></div><div class="line">Monster.startMonster(builder);</div><div class="line">Monster.addPos(builder, Vec3.createVec3(builder, 1.0f, 2.0f, 3.0f));</div><div class="line">Monster.addName(builder, name);</div><div class="line">Monster.addColor(builder, Color.Red);</div><div class="line">Monster.addHp(builder, (<span class="keywordtype">short</span>)300);</div><div class="line">Monster.addInventory(builder, inv);</div><div class="line">Monster.addWeapons(builder, weapons);</div><div class="line">Monster.addEquippedType(builder, Equipment.Weapon);</div><div class="line">Monster.addEquipped(builder, axe);</div><div class="line">Monster.addPath(builder, path);</div><div class="line"><span class="keywordtype">int</span> orc = Monster.endMonster(builder);</div></div><!-- fragment --> </div> <div class="language-csharp"> <div class="fragment"><div class="line"><span class="comment">// Create our monster using `StartMonster()` and `EndMonster()`.</span></div><div class="line">Monster.StartMonster(builder);</div><div class="line">Monster.AddPos(builder, Vec3.CreateVec3(builder, 1.0f, 2.0f, 3.0f));</div><div class="line">Monster.AddHp(builder, (<span class="keywordtype">short</span>)300);</div><div class="line">Monster.AddName(builder, name);</div><div class="line">Monster.AddInventory(builder, inv);</div><div class="line">Monster.AddColor(builder, Color.Red);</div><div class="line">Monster.AddWeapons(builder, weapons);</div><div class="line">Monster.AddEquippedType(builder, Equipment.Weapon);</div><div class="line">Monster.AddEquipped(builder, axe.Value); <span class="comment">// Axe</span></div><div class="line">Monster.AddPath(builder, path);</div><div class="line">var orc = Monster.EndMonster(builder);</div></div><!-- fragment --> </div> <div class="language-go"> <div class="fragment"><div class="line">// Create our monster using `MonsterStart()` and `MonsterEnd()`.</div><div class="line">sample.MonsterStart(builder)</div><div class="line">sample.MonsterAddPos(builder, sample.CreateVec3(builder, 1.0, 2.0, 3.0))</div><div class="line">sample.MonsterAddHp(builder, 300)</div><div class="line">sample.MonsterAddName(builder, name)</div><div class="line">sample.MonsterAddInventory(builder, inv)</div><div class="line">sample.MonsterAddColor(builder, sample.ColorRed)</div><div class="line">sample.MonsterAddWeapons(builder, weapons)</div><div class="line">sample.MonsterAddEquippedType(builder, sample.EquipmentWeapon)</div><div class="line">sample.MonsterAddEquipped(builder, axe)</div><div class="line">sample.MonsterAddPath(builder, path)</div><div class="line">orc := sample.MonsterEnd(builder)</div></div><!-- fragment --> </div> <div class="language-python"> <div class="fragment"><div class="line"><span class="comment"># Create our monster by using `MonsterStart()` and `MonsterEnd()`.</span></div><div class="line">MyGame.Sample.Monster.MonsterStart(builder)</div><div class="line">MyGame.Sample.Monster.MonsterAddPos(builder,</div><div class="line">                        MyGame.Sample.Vec3.CreateVec3(builder, 1.0, 2.0, 3.0))</div><div class="line">MyGame.Sample.Monster.MonsterAddHp(builder, 300)</div><div class="line">MyGame.Sample.Monster.MonsterAddName(builder, name)</div><div class="line">MyGame.Sample.Monster.MonsterAddInventory(builder, inv)</div><div class="line">MyGame.Sample.Monster.MonsterAddColor(builder,</div><div class="line">                                      MyGame.Sample.Color.Color().Red)</div><div class="line">MyGame.Sample.Monster.MonsterAddWeapons(builder, weapons)</div><div class="line">MyGame.Sample.Monster.MonsterAddEquippedType(</div><div class="line">    builder, MyGame.Sample.Equipment.Equipment().Weapon)</div><div class="line">MyGame.Sample.Monster.MonsterAddEquipped(builder, axe)</div><div class="line">MyGame.Sample.Monster.MonsterAddPath(builder, path)</div><div class="line">orc = MyGame.Sample.Monster.MonsterEnd(builder)</div></div><!-- fragment --> </div> <div class="language-javascript"> <div class="fragment"><div class="line">// Create our monster by using `startMonster()` and `endMonster()`.</div><div class="line">MyGame.Sample.Monster.startMonster(builder);</div><div class="line">MyGame.Sample.Monster.addPos(builder,</div><div class="line">                       MyGame.Sample.Vec3.createVec3(builder, 1.0, 2.0, 3.0));</div><div class="line">MyGame.Sample.Monster.addHp(builder, 300);</div><div class="line">MyGame.Sample.Monster.addColor(builder, MyGame.Sample.Color.Red)</div><div class="line">MyGame.Sample.Monster.addName(builder, name);</div><div class="line">MyGame.Sample.Monster.addInventory(builder, inv);</div><div class="line">MyGame.Sample.Monster.addWeapons(builder, weapons);</div><div class="line">MyGame.Sample.Monster.addEquippedType(builder, MyGame.Sample.Equipment.Weapon);</div><div class="line">MyGame.Sample.Monster.addEquipped(builder, axe);</div><div class="line">MyGame.Sample.Monster.addPath(builder, path);</div><div class="line">var orc = MyGame.Sample.Monster.endMonster(builder);</div></div><!-- fragment --> </div> <div class="language-typescript"> <div class="fragment"><div class="line">// Create our monster by using `startMonster()` and `endMonster()`.</div><div class="line">MyGame.Sample.Monster.startMonster(builder);</div><div class="line">MyGame.Sample.Monster.addPos(builder,</div><div class="line">                       MyGame.Sample.Vec3.createVec3(builder, 1.0, 2.0, 3.0));</div><div class="line">MyGame.Sample.Monster.addHp(builder, 300);</div><div class="line">MyGame.Sample.Monster.addColor(builder, MyGame.Sample.Color.Red)</div><div class="line">MyGame.Sample.Monster.addName(builder, name);</div><div class="line">MyGame.Sample.Monster.addInventory(builder, inv);</div><div class="line">MyGame.Sample.Monster.addWeapons(builder, weapons);</div><div class="line">MyGame.Sample.Monster.addEquippedType(builder, MyGame.Sample.Equipment.Weapon);</div><div class="line">MyGame.Sample.Monster.addEquipped(builder, axe);</div><div class="line">MyGame.Sample.Monster.addPath(builder, path);</div><div class="line">let orc = MyGame.Sample.Monster.endMonster(builder);</div></div><!-- fragment --> </div> <div class="language-php"> <div class="fragment"><div class="line"><span class="comment">// Create our monster by using `StartMonster()` and `EndMonster()`.</span></div><div class="line">\MyGame\Sample\Monster::StartMonster($builder);</div><div class="line">\MyGame\Sample\Monster::AddPos($builder,</div><div class="line">                    \MyGame\Sample\Vec3::CreateVec3($builder, 1.0, 2.0, 3.0));</div><div class="line">\MyGame\Sample\Monster::AddHp($builder, 300);</div><div class="line">\MyGame\Sample\Monster::AddName($builder, $name);</div><div class="line">\MyGame\Sample\Monster::AddInventory($builder, $inv);</div><div class="line">\MyGame\Sample\Monster::AddColor($builder, \MyGame\Sample\Color::Red);</div><div class="line">\MyGame\Sample\Monster::AddWeapons($builder, $weapons);</div><div class="line">\MyGame\Sample\Monster::AddEquippedType($builder, \MyGame\Sample\Equipment::Weapon);</div><div class="line">\MyGame\Sample\Monster::AddEquipped($builder, $axe);</div><div class="line">\MyGame\Sample\Monster::AddPath($builder, $path);</div><div class="line">$orc = \MyGame\Sample\Monster::EndMonster($builder);</div></div><!-- fragment --> </div> <div class="language-c"> <div class="fragment"><div class="line"><span class="comment">// Set his hit points to 300 and his mana to 150.</span></div><div class="line">uint16_t hp = 300;</div><div class="line">uint16_t mana = 150;</div><div class="line"></div><div class="line"><span class="comment">// Define an equipment union. `create` calls in C has a single</span></div><div class="line"><span class="comment">// argument for unions where C++ has both a type and a data argument.</span></div><div class="line">ns(Equipment_union_ref_t) equipped = ns(Equipment_as_Weapon(axe));</div><div class="line">ns(Vec3_t) pos = { 1.0f, 2.0f, 3.0f };</div><div class="line">ns(Monster_create_as_root(B, &amp;pos, mana, hp, name, inventory, ns(Color_Red),</div><div class="line">        weapons, equipped, path));</div></div><!-- fragment --> </div><p>Note how we create <code>Vec3</code> struct in-line in the table. Unlike tables, structs are simple combinations of scalars that are always stored inline, just like scalars themselves.</p>
 <p><b>Important</b>: Unlike structs, you should not nest tables or other objects, which is why we created all the strings/vectors/tables that this monster refers to before <code>start</code>. If you try to create any of them between <code>start</code> and <code>end</code>, you will get an assert/exception/panic depending on your language.</p>
 <p><em>Note: Since we are passing <code>150</code> as the <code>mana</code> field, which happens to be the default value, the field will not actually be written to the buffer, since the default value will be returned on query anyway. This is a nice space savings, especially if default values are common in your data. It also means that you do not need to be worried of adding a lot of fields that are only used in a small number of instances, as it will not bloat the buffer if unused.</em></p>
 <div class="language-cpp"> <br />
  If you do not wish to set every field in a <code>table</code>, it may be more convenient to manually set each field of your monster, instead of calling <code>CreateMonster()</code>. The following snippet is functionally equivalent to the above code, but provides a bit more flexibility. <br />
- </p><div class="fragment"><div class="line"><span class="comment">// You can use this code instead of `CreateMonster()`, to create our orc</span></div>
-<div class="line"><span class="comment">// manually.</span></div>
-<div class="line">MonsterBuilder monster_builder(builder);</div>
-<div class="line">monster_builder.add_pos(&amp;pos);</div>
-<div class="line"><span class="keyword">auto</span> pos = Vec3(1.0f, 2.0f, 3.0f);</div>
-<div class="line">monster_builder.add_hp(hp);</div>
-<div class="line">monster_builder.add_name(name);</div>
-<div class="line">monster_builder.add_inventory(inventory);</div>
-<div class="line">monster_builder.add_color(Color_Red);</div>
-<div class="line">monster_builder.add_weapons(weapons);</div>
-<div class="line">monster_builder.add_equipped_type(Equipment_Weapon);</div>
-<div class="line">monster_builder.add_equpped(axe.Union());</div>
-<div class="line"><span class="keyword">auto</span> orc = monster_builder.Finish();</div>
-</div><!-- fragment --> </div> <div class="language-c"> If you do not wish to set every field in a <code>table</code>, it may be more convenient to manually set each field of your monster, instead of calling <code>create_monster_as_root()</code>. The following snippet is functionally equivalent to the above code, but provides a bit more flexibility. <br />
- </p><div class="fragment"><div class="line"><span class="comment">// It is important to pair `start_as_root` with `end_as_root`.</span></div>
-<div class="line">ns(Monster_start_as_root(B));</div>
-<div class="line">ns(Monster_pos_create(B, 1.0f, 2.0f, 3.0f));</div>
-<div class="line"><span class="comment">// or alternatively</span></div>
-<div class="line"><span class="comment">//ns(Monster_pos_add(&amp;pos);</span></div>
-<div class="line"></div>
-<div class="line">ns(Monster_hp_add(B, hp));</div>
-<div class="line"><span class="comment">// Notice that `Monser_name_add` adds a string reference unlike the</span></div>
-<div class="line"><span class="comment">// add_str and add_strn variants.</span></div>
-<div class="line">ns(Monster_name_add(B, name));</div>
-<div class="line">ns(Monster_inventory_add(B, inventory));</div>
-<div class="line">ns(Monster_color_add(B, ns(Color_Red)));</div>
-<div class="line">ns(Monster_weapons_add(B, weapons));</div>
-<div class="line">ns(Monster_equipped_add(B, equipped));</div>
-<div class="line"><span class="comment">// Complete the monster object and make it the buffer root object.</span></div>
-<div class="line">ns(Monster_end_as_root(B));</div>
-</div><!-- fragment --> </div><p>Before finishing the serialization, let's take a quick look at FlatBuffer <code>union Equipped</code>. There are two parts to each FlatBuffer <code>union</code>. The first, is a hidden field <code>_type</code>, that is generated to hold the type of <code>table</code> referred to by the <code>union</code>. This allows you to know which type to cast to at runtime. Second, is the <code>union</code>'s data.</p>
+ <div class="fragment"><div class="line"><span class="comment">// You can use this code instead of `CreateMonster()`, to create our orc</span></div><div class="line"><span class="comment">// manually.</span></div><div class="line">MonsterBuilder monster_builder(builder);</div><div class="line">monster_builder.add_pos(&amp;pos);</div><div class="line"><span class="keyword">auto</span> pos = Vec3(1.0f, 2.0f, 3.0f);</div><div class="line">monster_builder.add_hp(hp);</div><div class="line">monster_builder.add_name(name);</div><div class="line">monster_builder.add_inventory(inventory);</div><div class="line">monster_builder.add_color(Color_Red);</div><div class="line">monster_builder.add_weapons(weapons);</div><div class="line">monster_builder.add_equipped_type(Equipment_Weapon);</div><div class="line">monster_builder.add_equpped(axe.Union());</div><div class="line"><span class="keyword">auto</span> orc = monster_builder.Finish();</div></div><!-- fragment --> </div> <div class="language-c"> If you do not wish to set every field in a <code>table</code>, it may be more convenient to manually set each field of your monster, instead of calling <code>create_monster_as_root()</code>. The following snippet is functionally equivalent to the above code, but provides a bit more flexibility. <br />
+ <div class="fragment"><div class="line"><span class="comment">// It is important to pair `start_as_root` with `end_as_root`.</span></div><div class="line">ns(Monster_start_as_root(B));</div><div class="line">ns(Monster_pos_create(B, 1.0f, 2.0f, 3.0f));</div><div class="line"><span class="comment">// or alternatively</span></div><div class="line"><span class="comment">//ns(Monster_pos_add(&amp;pos);</span></div><div class="line"></div><div class="line">ns(Monster_hp_add(B, hp));</div><div class="line"><span class="comment">// Notice that `Monser_name_add` adds a string reference unlike the</span></div><div class="line"><span class="comment">// add_str and add_strn variants.</span></div><div class="line">ns(Monster_name_add(B, name));</div><div class="line">ns(Monster_inventory_add(B, inventory));</div><div class="line">ns(Monster_color_add(B, ns(Color_Red)));</div><div class="line">ns(Monster_weapons_add(B, weapons));</div><div class="line">ns(Monster_equipped_add(B, equipped));</div><div class="line"><span class="comment">// Complete the monster object and make it the buffer root object.</span></div><div class="line">ns(Monster_end_as_root(B));</div></div><!-- fragment --> </div><p>Before finishing the serialization, let's take a quick look at FlatBuffer <code>union Equipped</code>. There are two parts to each FlatBuffer <code>union</code>. The first, is a hidden field <code>_type</code>, that is generated to hold the type of <code>table</code> referred to by the <code>union</code>. This allows you to know which type to cast to at runtime. Second, is the <code>union</code>'s data.</p>
 <p>In our example, the last two things we added to our <code>Monster</code> were the <code>Equipped Type</code> and the <code>Equipped</code> union itself.</p>
 <p>Here is a repetition these lines, to help highlight them more clearly:</p>
-<div class="language-cpp"> <div class="fragment"><div class="line">monster_builder.add_equipped_type(Equipment_Weapon); <span class="comment">// Union type</span></div>
-<div class="line">monster_builder.add_equipped(axe); <span class="comment">// Union data</span></div>
-</div><!-- fragment --> </div> <div class="language-java"> <div class="fragment"><div class="line">Monster.addEquippedType(builder, Equipment.Weapon); <span class="comment">// Union type</span></div>
-<div class="line">Monster.addEquipped(axe); <span class="comment">// Union data</span></div>
-</div><!-- fragment --> </div> <div class="language-csharp"> <div class="fragment"><div class="line">Monster.AddEquippedType(builder, Equipment.Weapon); <span class="comment">// Union type</span></div>
-<div class="line">Monster.AddEquipped(builder, axe.Value); <span class="comment">// Union data</span></div>
-</div><!-- fragment --> </div> <div class="language-go"> <div class="fragment"><div class="line">sample.MonsterAddEquippedType(builder, sample.EquipmentWeapon) <span class="comment">// Union type</span></div>
-<div class="line">sample.MonsterAddEquipped(builder, axe) <span class="comment">// Union data</span></div>
-</div><!-- fragment --> </div> <div class="language-python"> <div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;MyGame.Sample.Monster.MonsterAddEquippedType(            <span class="comment"># Union type</span></div>
-<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;    builder, MyGame.Sample.Equipment.Equipment().Weapon)</div>
-<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;MyGame.Sample.Monster.MonsterAddEquipped(builder, axe)   <span class="comment"># Union data</span></div>
-</div><!-- fragment --> </div> <div class="language-javascript"> <div class="fragment"><div class="line">MyGame.Sample.Monster.addEquippedType(builder, MyGame.Sample.Equipment.Weapon); <span class="comment">// Union type</span></div>
-<div class="line">MyGame.Sample.Monster.addEquipped(builder, axe); <span class="comment">// Union data</span></div>
-</div><!-- fragment --> </div> <div class="language-php"> <div class="fragment"><div class="line">\MyGame\Sample\Monster::AddEquippedType($builder, \MyGame\Sample\Equipment::Weapon); <span class="comment">// Union type</span></div>
-<div class="line">\MyGame\Sample\Monster::AddEquipped($builder, $axe); <span class="comment">// Union data</span></div>
-</div><!-- fragment --> </div> <div class="language-c"> <div class="fragment"><div class="line"><span class="comment">// Add union type and data simultanously.</span></div>
-<div class="line">ns(Monster_equipped_Weapon_add(B, axe));</div>
-</div><!-- fragment --> </div><p>After you have created your buffer, you will have the offset to the root of the data in the <code>orc</code> variable, so you can finish the buffer by calling the appropriate <code>finish</code> method.</p>
-<div class="language-cpp"> <div class="fragment"><div class="line"><span class="comment">// Call `Finish()` to instruct the builder that this monster is complete.</span></div>
-<div class="line"><span class="comment">// Note: Regardless of how you created the `orc`, you still need to call</span></div>
-<div class="line"><span class="comment">// `Finish()` on the `FlatBufferBuilder`.</span></div>
-<div class="line">builder.Finish(orc); <span class="comment">// You could also call `FinishMonsterBuffer(builder,</span></div>
-<div class="line">                     <span class="comment">//                                          orc);`.</span></div>
-</div><!-- fragment --> </div> <div class="language-java"> <div class="fragment"><div class="line"><span class="comment">// Call `finish()` to instruct the builder that this monster is complete.</span></div>
-<div class="line">builder.finish(orc); <span class="comment">// You could also call `Monster.finishMonsterBuffer(builder, orc);`.</span></div>
-</div><!-- fragment --> </div> <div class="language-csharp"> <div class="fragment"><div class="line"><span class="comment">// Call `Finish()` to instruct the builder that this monster is complete.</span></div>
-<div class="line">builder.Finish(orc.Value); <span class="comment">// You could also call `Monster.FinishMonsterBuffer(builder, orc);`.</span></div>
-</div><!-- fragment --> </div> <div class="language-go"> <div class="fragment"><div class="line"><span class="comment">// Call `Finish()` to instruct the builder that this monster is complete.</span></div>
-<div class="line">builder.Finish(orc)</div>
-</div><!-- fragment --> </div> <div class="language-python"> <div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment"># Call `Finish()` to instruct the builder that this monster is complete.</span></div>
-<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;builder.Finish(orc)</div>
-</div><!-- fragment --> </div> <div class="language-javascript"> <div class="fragment"><div class="line"><span class="comment">// Call `finish()` to instruct the builder that this monster is complete.</span></div>
-<div class="line">builder.finish(orc); <span class="comment">// You could also call `MyGame.Sample.Monster.finishMonsterBuffer(builder,</span></div>
-<div class="line">                     <span class="comment">//                                                                 orc);`.</span></div>
-</div><!-- fragment --> </div> <div class="language-php"> <div class="fragment"><div class="line"><span class="comment">// Call `finish()` to instruct the builder that this monster is complete.</span></div>
-<div class="line"> $builder-&gt;finish($orc); <span class="comment">// You may also call `\MyGame\Sample\Monster::FinishMonsterBuffer(</span></div>
-<div class="line">                         <span class="comment">//                        $builder, $orc);`.</span></div>
-</div><!-- fragment --> </div> <div class="language-c"> <div class="fragment"><div class="line"><span class="comment">// Because we used `Monster_create_as_root`, we do not need a `finish` call in C`.</span></div>
-</div><!-- fragment --> </div><p>The buffer is now ready to be stored somewhere, sent over the network, be compressed, or whatever you'd like to do with it. You can access the buffer like so:</p>
-<div class="language-cpp"> <div class="fragment"><div class="line"><span class="comment">// This must be called after `Finish()`.</span></div>
-<div class="line">uint8_t *buf = builder.GetBufferPointer();</div>
-<div class="line"><span class="keywordtype">int</span> size = builder.GetSize(); <span class="comment">// Returns the size of the buffer that</span></div>
-<div class="line">                              <span class="comment">// `GetBufferPointer()` points to.</span></div>
-</div><!-- fragment --> </div> <div class="language-java"> <div class="fragment"><div class="line"><span class="comment">// This must be called after `finish()`.</span></div>
-<div class="line">java.nio.ByteBuffer buf = builder.dataBuffer();</div>
-<div class="line"><span class="comment">// The data in this ByteBuffer does NOT start at 0, but at buf.position().</span></div>
-<div class="line"><span class="comment">// The number of bytes is buf.remaining().</span></div>
-<div class="line"></div>
-<div class="line"><span class="comment">// Alternatively this copies the above data out of the ByteBuffer for you:</span></div>
-<div class="line">bytes[] buf = builder.sizedByteArray();</div>
-</div><!-- fragment --> </div> <div class="language-csharp"> <div class="fragment"><div class="line"><span class="comment">// This must be called after `Finish()`.</span></div>
-<div class="line">var buf = builder.DataBuffer; <span class="comment">// Of type `FlatBuffers.ByteBuffer`.</span></div>
-<div class="line"><span class="comment">// The data in this ByteBuffer does NOT start at 0, but at buf.Position.</span></div>
-<div class="line"><span class="comment">// The end of the data is marked by buf.Length, so the size is</span></div>
-<div class="line"><span class="comment">// buf.Length - buf.Position.</span></div>
-<div class="line"></div>
-<div class="line"><span class="comment">// Alternatively this copies the above data out of the ByteBuffer for you:</span></div>
-<div class="line">bytes[] buf = builder.SizedByteArray();</div>
-</div><!-- fragment --> </div> <div class="language-go"> <div class="fragment"><div class="line"><span class="comment">// This must be called after `Finish()`.</span></div>
-<div class="line">buf := builder.FinishedBytes() <span class="comment">// Of type `byte[]`.</span></div>
-</div><!-- fragment --> </div> <div class="language-python"> <div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment"># This must be called after `Finish()`.</span></div>
-<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;buf = builder.Output() // Of type `bytearray`.</div>
-</div><!-- fragment --> </div> <div class="language-javascript"> <div class="fragment"><div class="line"><span class="comment">// This must be called after `finish()`.</span></div>
-<div class="line">var buf = builder.asUint8Array(); <span class="comment">// Of type `Uint8Array`.</span></div>
-</div><!-- fragment --> </div> <div class="language-php"> <div class="fragment"><div class="line"><span class="comment">// This must be called after `finish()`.</span></div>
-<div class="line">$buf = $builder-&gt;dataBuffer(); <span class="comment">// Of type `Google\FlatBuffers\ByteBuffer`</span></div>
-<div class="line"><span class="comment">// The data in this ByteBuffer does NOT start at 0, but at buf-&gt;getPosition().</span></div>
-<div class="line"><span class="comment">// The end of the data is marked by buf-&gt;capacity(), so the size is</span></div>
-<div class="line"><span class="comment">// buf-&gt;capacity() - buf-&gt;getPosition().</span></div>
-</div><!-- fragment --> </div> <div class="language-c"> <div class="fragment"><div class="line">uint8_t *buf;</div>
-<div class="line"><span class="keywordtype">size_t</span> size;</div>
-<div class="line"></div>
-<div class="line"><span class="comment">// Allocate and extract a readable buffer from internal builder heap.</span></div>
-<div class="line"><span class="comment">// The returned buffer must be deallocated using `free`.</span></div>
-<div class="line"><span class="comment">// NOTE: Finalizing the buffer does NOT change the builder, it</span></div>
-<div class="line"><span class="comment">// just creates a snapshot of the builder content.</span></div>
-<div class="line">buf = flatcc_builder_finalize_buffer(B, &amp;size);</div>
-<div class="line"><span class="comment">// use buf</span></div>
-<div class="line">free(buf);</div>
-<div class="line"></div>
-<div class="line"><span class="comment">// Optionally reset builder to reuse builder without deallocating</span></div>
-<div class="line"><span class="comment">// internal stack and heap.</span></div>
-<div class="line">flatcc_builder_reset(B);</div>
-<div class="line"><span class="comment">// build next buffer.</span></div>
-<div class="line"><span class="comment">// ...</span></div>
-<div class="line"></div>
-<div class="line"><span class="comment">// Cleanup.</span></div>
-<div class="line">flatcc_builder_clear(B);</div>
-</div><!-- fragment --> </div><p>Now you can write the bytes to a file, send them over the network.. <b>Make sure your file mode (or tranfer protocol) is set to BINARY, not text.</b> If you transfer a FlatBuffer in text mode, the buffer will be corrupted, which will lead to hard to find problems when you read the buffer.</p>
+<div class="language-cpp"> <div class="fragment"><div class="line">monster_builder.add_equipped_type(Equipment_Weapon); <span class="comment">// Union type</span></div><div class="line">monster_builder.add_equipped(axe); <span class="comment">// Union data</span></div></div><!-- fragment --> </div> <div class="language-java"> <div class="fragment"><div class="line">Monster.addEquippedType(builder, Equipment.Weapon); <span class="comment">// Union type</span></div><div class="line">Monster.addEquipped(axe); <span class="comment">// Union data</span></div></div><!-- fragment --> </div> <div class="language-csharp"> <div class="fragment"><div class="line">Monster.AddEquippedType(builder, Equipment.Weapon); <span class="comment">// Union type</span></div><div class="line">Monster.AddEquipped(builder, axe.Value); <span class="comment">// Union data</span></div></div><!-- fragment --> </div> <div class="language-go"> <div class="fragment"><div class="line">sample.MonsterAddEquippedType(builder, sample.EquipmentWeapon) // Union type</div><div class="line">sample.MonsterAddEquipped(builder, axe) // Union data</div></div><!-- fragment --> </div> <div class="language-python"> <div class="fragment"><div class="line">MyGame.Sample.Monster.MonsterAddEquippedType(            <span class="comment"># Union type</span></div><div class="line">    builder, MyGame.Sample.Equipment.Equipment().Weapon)</div><div class="line">MyGame.Sample.Monster.MonsterAddEquipped(builder, axe)   <span class="comment"># Union data</span></div></div><!-- fragment --> </div> <div class="language-javascript"> <div class="fragment"><div class="line">MyGame.Sample.Monster.addEquippedType(builder, MyGame.Sample.Equipment.Weapon); // Union type</div><div class="line">MyGame.Sample.Monster.addEquipped(builder, axe); // Union data</div></div><!-- fragment --> </div> <div class="language-typescript"> <div class="fragment"><div class="line">MyGame.Sample.Monster.addEquippedType(builder, MyGame.Sample.Equipment.Weapon); // Union type</div><div class="line">MyGame.Sample.Monster.addEquipped(builder, axe); // Union data</div></div><!-- fragment --> </div> <div class="language-php"> <div class="fragment"><div class="line">\MyGame\Sample\Monster::AddEquippedType($builder, \MyGame\Sample\Equipment::Weapon); <span class="comment">// Union type</span></div><div class="line">\MyGame\Sample\Monster::AddEquipped($builder, $axe); <span class="comment">// Union data</span></div></div><!-- fragment --> </div> <div class="language-c"> <div class="fragment"><div class="line"><span class="comment">// Add union type and data simultanously.</span></div><div class="line">ns(Monster_equipped_Weapon_add(B, axe));</div></div><!-- fragment --> </div><p>After you have created your buffer, you will have the offset to the root of the data in the <code>orc</code> variable, so you can finish the buffer by calling the appropriate <code>finish</code> method.</p>
+<div class="language-cpp"> <div class="fragment"><div class="line"><span class="comment">// Call `Finish()` to instruct the builder that this monster is complete.</span></div><div class="line"><span class="comment">// Note: Regardless of how you created the `orc`, you still need to call</span></div><div class="line"><span class="comment">// `Finish()` on the `FlatBufferBuilder`.</span></div><div class="line">builder.Finish(orc); <span class="comment">// You could also call `FinishMonsterBuffer(builder,</span></div><div class="line">                     <span class="comment">//                                          orc);`.</span></div></div><!-- fragment --> </div> <div class="language-java"> <div class="fragment"><div class="line"><span class="comment">// Call `finish()` to instruct the builder that this monster is complete.</span></div><div class="line">builder.finish(orc); <span class="comment">// You could also call `Monster.finishMonsterBuffer(builder, orc);`.</span></div></div><!-- fragment --> </div> <div class="language-csharp"> <div class="fragment"><div class="line"><span class="comment">// Call `Finish()` to instruct the builder that this monster is complete.</span></div><div class="line">builder.Finish(orc.Value); <span class="comment">// You could also call `Monster.FinishMonsterBuffer(builder, orc);`.</span></div></div><!-- fragment --> </div> <div class="language-go"> <div class="fragment"><div class="line">// Call `Finish()` to instruct the builder that this monster is complete.</div><div class="line">builder.Finish(orc)</div></div><!-- fragment --> </div> <div class="language-python"> <div class="fragment"><div class="line"><span class="comment"># Call `Finish()` to instruct the builder that this monster is complete.</span></div><div class="line">builder.Finish(orc)</div></div><!-- fragment --> </div> <div class="language-javascript"> <div class="fragment"><div class="line">// Call `finish()` to instruct the builder that this monster is complete.</div><div class="line">builder.finish(orc); // You could also call `MyGame.Sample.Monster.finishMonsterBuffer(builder,</div><div class="line">                     //                                                                 orc);`.</div></div><!-- fragment --> </div> <div class="language-typescript"> <div class="fragment"><div class="line">// Call `finish()` to instruct the builder that this monster is complete.</div><div class="line">builder.finish(orc); // You could also call `MyGame.Sample.Monster.finishMonsterBuffer(builder,</div><div class="line">                     //                                                                 orc);`.</div></div><!-- fragment --> </div> <div class="language-php"> <div class="fragment"><div class="line"><span class="comment">// Call `finish()` to instruct the builder that this monster is complete.</span></div><div class="line"> $builder-&gt;finish($orc); <span class="comment">// You may also call `\MyGame\Sample\Monster::FinishMonsterBuffer(</span></div><div class="line">                         <span class="comment">//                        $builder, $orc);`.</span></div></div><!-- fragment --> </div> <div class="language-c"> <div class="fragment"><div class="line"><span class="comment">// Because we used `Monster_create_as_root`, we do not need a `finish` call in C`.</span></div></div><!-- fragment --> </div><p>The buffer is now ready to be stored somewhere, sent over the network, be compressed, or whatever you'd like to do with it. You can access the buffer like so:</p>
+<div class="language-cpp"> <div class="fragment"><div class="line"><span class="comment">// This must be called after `Finish()`.</span></div><div class="line">uint8_t *buf = builder.GetBufferPointer();</div><div class="line"><span class="keywordtype">int</span> size = builder.GetSize(); <span class="comment">// Returns the size of the buffer that</span></div><div class="line">                              <span class="comment">// `GetBufferPointer()` points to.</span></div></div><!-- fragment --> </div> <div class="language-java"> <div class="fragment"><div class="line"><span class="comment">// This must be called after `finish()`.</span></div><div class="line">java.nio.ByteBuffer buf = builder.dataBuffer();</div><div class="line"><span class="comment">// The data in this ByteBuffer does NOT start at 0, but at buf.position().</span></div><div class="line"><span class="comment">// The number of bytes is buf.remaining().</span></div><div class="line"></div><div class="line"><span class="comment">// Alternatively this copies the above data out of the ByteBuffer for you:</span></div><div class="line">bytes[] buf = builder.sizedByteArray();</div></div><!-- fragment --> </div> <div class="language-csharp"> <div class="fragment"><div class="line"><span class="comment">// This must be called after `Finish()`.</span></div><div class="line">var buf = builder.DataBuffer; <span class="comment">// Of type `FlatBuffers.ByteBuffer`.</span></div><div class="line"><span class="comment">// The data in this ByteBuffer does NOT start at 0, but at buf.Position.</span></div><div class="line"><span class="comment">// The end of the data is marked by buf.Length, so the size is</span></div><div class="line"><span class="comment">// buf.Length - buf.Position.</span></div><div class="line"></div><div class="line"><span class="comment">// Alternatively this copies the above data out of the ByteBuffer for you:</span></div><div class="line">bytes[] buf = builder.SizedByteArray();</div></div><!-- fragment --> </div> <div class="language-go"> <div class="fragment"><div class="line">// This must be called after `Finish()`.</div><div class="line">buf := builder.FinishedBytes() // Of type `byte[]`.</div></div><!-- fragment --> </div> <div class="language-python"> <div class="fragment"><div class="line"><span class="comment"># This must be called after `Finish()`.</span></div><div class="line">buf = builder.Output() // Of type `bytearray`.</div></div><!-- fragment --> </div> <div class="language-javascript"> <div class="fragment"><div class="line">// This must be called after `finish()`.</div><div class="line">var buf = builder.asUint8Array(); // Of type `Uint8Array`.</div></div><!-- fragment --> </div> <div class="language-typescript"> <div class="fragment"><div class="line">// This must be called after `finish()`.</div><div class="line">let buf = builder.asUint8Array(); // Of type `Uint8Array`.</div></div><!-- fragment --> </div> <div class="language-php"> <div class="fragment"><div class="line"><span class="comment">// This must be called after `finish()`.</span></div><div class="line">$buf = $builder-&gt;dataBuffer(); <span class="comment">// Of type `Google\FlatBuffers\ByteBuffer`</span></div><div class="line"><span class="comment">// The data in this ByteBuffer does NOT start at 0, but at buf-&gt;getPosition().</span></div><div class="line"><span class="comment">// The end of the data is marked by buf-&gt;capacity(), so the size is</span></div><div class="line"><span class="comment">// buf-&gt;capacity() - buf-&gt;getPosition().</span></div></div><!-- fragment --> </div> <div class="language-c"> <div class="fragment"><div class="line">uint8_t *buf;</div><div class="line"><span class="keywordtype">size_t</span> size;</div><div class="line"></div><div class="line"><span class="comment">// Allocate and extract a readable buffer from internal builder heap.</span></div><div class="line"><span class="comment">// The returned buffer must be deallocated using `free`.</span></div><div class="line"><span class="comment">// NOTE: Finalizing the buffer does NOT change the builder, it</span></div><div class="line"><span class="comment">// just creates a snapshot of the builder content.</span></div><div class="line">buf = flatcc_builder_finalize_buffer(B, &amp;size);</div><div class="line"><span class="comment">// use buf</span></div><div class="line">free(buf);</div><div class="line"></div><div class="line"><span class="comment">// Optionally reset builder to reuse builder without deallocating</span></div><div class="line"><span class="comment">// internal stack and heap.</span></div><div class="line">flatcc_builder_reset(B);</div><div class="line"><span class="comment">// build next buffer.</span></div><div class="line"><span class="comment">// ...</span></div><div class="line"></div><div class="line"><span class="comment">// Cleanup.</span></div><div class="line">flatcc_builder_clear(B);</div></div><!-- fragment --> </div><p>Now you can write the bytes to a file, send them over the network.. <b>Make sure your file mode (or tranfer protocol) is set to BINARY, not text.</b> If you transfer a FlatBuffer in text mode, the buffer will be corrupted, which will lead to hard to find problems when you read the buffer.</p>
 <h4>Reading Orc FlatBuffers</h4>
 <p>Now that we have successfully created an <code>Orc</code> FlatBuffer, the monster data can be saved, sent over a network, etc. Let's now adventure into the inverse, and deserialize a FlatBuffer.</p>
 <p>This section requires the same import/include, namespace, etc. requirements as before:</p>
-<div class="language-cpp"> <div class="fragment"><div class="line"><span class="preprocessor">#include &quot;monster_generate.h&quot;</span> <span class="comment">// This was generated by `flatc`.</span></div>
-<div class="line"></div>
-<div class="line"><span class="keyword">using namespace </span>MyGame::Sample; <span class="comment">// Specified in the schema.</span></div>
-</div><!-- fragment --> </div> <div class="language-java"> <div class="fragment"><div class="line"><span class="keyword">import</span> MyGame.Sample.*; <span class="comment">//The `flatc` generated files. (Monster, Vec3, etc.)</span></div>
-<div class="line"></div>
-<div class="line"><span class="keyword">import</span> <a class="code" href="classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html">com.google.flatbuffers.FlatBufferBuilder</a>;</div>
-</div><!-- fragment --> </div> <div class="language-csharp"> <div class="fragment"><div class="line"><span class="keyword">using</span> FlatBuffers;</div>
-<div class="line"><span class="keyword">using</span> MyGame.Sample; <span class="comment">// The `flatc` generated files. (Monster, Vec3, etc.)</span></div>
-</div><!-- fragment --> </div> <div class="language-go"> <div class="fragment"><div class="line"><span class="keyword">import</span> (</div>
-<div class="line">        flatbuffers <span class="stringliteral">&quot;github.com/google/flatbuffers/go&quot;</span></div>
-<div class="line">        sample <span class="stringliteral">&quot;MyGame/Sample&quot;</span></div>
-<div class="line">)</div>
-</div><!-- fragment --> </div> <div class="language-python"> <div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="keyword">import</span> flatbuffers</div>
-<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;</div>
-<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"># Generated by `flatc`.</span></div>
-<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="keyword">import</span> MyGame.Sample.Any</div>
-<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="keyword">import</span> MyGame.Sample.Color</div>
-<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="keyword">import</span> MyGame.Sample.Monster</div>
-<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="keyword">import</span> MyGame.Sample.Vec3</div>
-</div><!-- fragment --> </div> <div class="language-javascript"> <div class="fragment"><div class="line"><span class="comment">// The following code is for JavaScript module loaders (e.g. Node.js). See</span></div>
-<div class="line"><span class="comment">// below for a browser-based HTML/JavaScript example of including the library.</span></div>
-<div class="line">var flatbuffers = require(<span class="stringliteral">&#39;/js/flatbuffers&#39;</span>).flatbuffers;</div>
-<div class="line">var MyGame = require(<span class="stringliteral">&#39;./monster_generated&#39;</span>).MyGame; <span class="comment">// Generated by `flatc`.</span></div>
-<div class="line"></div>
-<div class="line"><span class="comment">//--------------------------------------------------------------------------//</span></div>
-<div class="line"></div>
-<div class="line"><span class="comment">// The following code is for browser-based HTML/JavaScript. Use the above code</span></div>
-<div class="line"><span class="comment">// for JavaScript module loaders (e.g. Node.js).</span></div>
-<div class="line">&lt;script src=<span class="stringliteral">&quot;../js/flatbuffers.js&quot;</span>&gt;&lt;/script&gt;</div>
-<div class="line">&lt;script src=<span class="stringliteral">&quot;monster_generated.js&quot;</span>&gt;&lt;/script&gt; <span class="comment">// Generated by `flatc`.</span></div>
-</div><!-- fragment --> </div> <div class="language-php"> <div class="fragment"><div class="line"><span class="comment">// It is recommended that your use PSR autoload when using FlatBuffers in PHP.</span></div>
-<div class="line"><span class="comment">// Here is an example from `SampleBinary.php`:</span></div>
-<div class="line"><span class="keyword">function</span> __autoload($class_name) {</div>
-<div class="line">  <span class="comment">// The last segment of the class name matches the file name.</span></div>
-<div class="line">  $class = substr($class_name, strrpos($class_name, <span class="stringliteral">&quot;\\&quot;</span>) + 1);</div>
-<div class="line">  $root_dir = join(DIRECTORY_SEPARATOR, array(dirname(dirname(__FILE__)))); <span class="comment">// `flatbuffers` root.</span></div>
-<div class="line"></div>
-<div class="line">  <span class="comment">// Contains the `*.php` files for the FlatBuffers library and the `flatc` generated files.</span></div>
-<div class="line">  $paths = array(join(DIRECTORY_SEPARATOR, array($root_dir, <span class="stringliteral">&quot;php&quot;</span>)),</div>
-<div class="line">                 join(DIRECTORY_SEPARATOR, array($root_dir, <span class="stringliteral">&quot;samples&quot;</span>, <span class="stringliteral">&quot;MyGame&quot;</span>, <span class="stringliteral">&quot;Sample&quot;</span>)));</div>
-<div class="line">  <span class="keywordflow">foreach</span> ($paths as $path) {</div>
-<div class="line">    $file = join(DIRECTORY_SEPARATOR, array($path, $class . <span class="stringliteral">&quot;.php&quot;</span>));</div>
-<div class="line">    <span class="keywordflow">if</span> (file_exists($file)) {</div>
-<div class="line">      require($file);</div>
-<div class="line">      <span class="keywordflow">break</span>;</div>
-<div class="line">    }</div>
-<div class="line">  }</div>
-<div class="line">}</div>
-</div><!-- fragment --> </div> <div class="language-c"> <div class="fragment"><div class="line"><span class="comment">// Only needed if we don&#39;t have `#include &quot;monster_builder.h&quot;`.</span></div>
-<div class="line"><span class="preprocessor">#include &quot;monster_reader.h&quot;</span></div>
-<div class="line"></div>
-<div class="line"><span class="preprocessor">#undef ns</span></div>
-<div class="line"><span class="preprocessor">#define ns(x) FLATBUFFERS_WRAP_NAMESPACE(MyGame_Sample, x) // Specified in the schema.</span></div>
-</div><!-- fragment --> </div><p>Then, assuming you have a buffer of bytes received from disk, network, etc., you can create start accessing the buffer like so:</p>
+<div class="language-cpp"> <div class="fragment"><div class="line"><span class="preprocessor">#include &quot;monster_generate.h&quot;</span> <span class="comment">// This was generated by `flatc`.</span></div><div class="line"></div><div class="line"><span class="keyword">using namespace </span>MyGame::Sample; <span class="comment">// Specified in the schema.</span></div></div><!-- fragment --> </div> <div class="language-java"> <div class="fragment"><div class="line"><span class="keyword">import</span> MyGame.Sample.*; <span class="comment">//The `flatc` generated files. (Monster, Vec3, etc.)</span></div><div class="line"></div><div class="line"><span class="keyword">import</span> <a class="code" href="namespacecom.html">com</a>.<a class="code" href="namespacecom_1_1google.html">google</a>.<a class="code" href="namespacecom_1_1google_1_1flatbuffers.html">flatbuffers</a>.<a class="code" href="classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html">FlatBufferBuilder</a>;</div></div><!-- fragment --> </div> <div class="language-csharp"> <div class="fragment"><div class="line"><span class="keyword">using</span> <a class="code" href="namespace_flat_buffers.html">FlatBuffers</a>;</div><div class="line"><span class="keyword">using</span> MyGame.Sample; <span class="comment">// The `flatc` generated files. (Monster, Vec3, etc.)</span></div></div><!-- fragment --> </div> <div class="language-go"> <div class="fragment"><div class="line">import (</div><div class="line">        flatbuffers &quot;github.com/google/flatbuffers/go&quot;</div><div class="line">        sample &quot;MyGame/Sample&quot;</div><div class="line">)</div></div><!-- fragment --> </div> <div class="language-python"> <div class="fragment"><div class="line"><span class="keyword">import</span> flatbuffers</div><div class="line"></div><div class="line"><span class="comment"># Generated by `flatc`.</span></div><div class="line"><span class="keyword">import</span> MyGame.Sample.Any</div><div class="line"><span class="keyword">import</span> MyGame.Sample.Color</div><div class="line"><span class="keyword">import</span> MyGame.Sample.Monster</div><div class="line"><span class="keyword">import</span> MyGame.Sample.Vec3</div></div><!-- fragment --> </div> <div class="language-javascript"> <div class="fragment"><div class="line">// The following code is for JavaScript module loaders (e.g. Node.js). See</div><div class="line">// below for a browser-based HTML/JavaScript example of including the library.</div><div class="line">var flatbuffers = require(&#39;/js/flatbuffers&#39;).flatbuffers;</div><div class="line">var MyGame = require(&#39;./monster_generated&#39;).MyGame; // Generated by `flatc`.</div><div class="line"></div><div class="line">//--------------------------------------------------------------------------//</div><div class="line"></div><div class="line">// The following code is for browser-based HTML/JavaScript. Use the above code</div><div class="line">// for JavaScript module loaders (e.g. Node.js).</div><div class="line">&lt;script src=&quot;../js/flatbuffers.js&quot;&gt;&lt;/script&gt;</div><div class="line">&lt;script src=&quot;monster_generated.js&quot;&gt;&lt;/script&gt; // Generated by `flatc`.</div></div><!-- fragment --> </div> <div class="language-typescript"> <div class="fragment"><div class="line">// note: import flabuffers with your desired import method</div><div class="line"></div><div class="line">import { MyGame } from &#39;./monster_generated&#39;;</div></div><!-- fragment --> </div> <div class="language-php"> <div class="fragment"><div class="line"><span class="comment">// It is recommended that your use PSR autoload when using FlatBuffers in PHP.</span></div><div class="line"><span class="comment">// Here is an example from `SampleBinary.php`:</span></div><div class="line"><span class="keyword">function</span> __autoload($class_name) {</div><div class="line">  <span class="comment">// The last segment of the class name matches the file name.</span></div><div class="line">  $class = substr($class_name, strrpos($class_name, <span class="stringliteral">&quot;\\&quot;</span>) + 1);</div><div class="line">  $root_dir = join(DIRECTORY_SEPARATOR, array(dirname(dirname(__FILE__)))); <span class="comment">// `flatbuffers` root.</span></div><div class="line"></div><div class="line">  <span class="comment">// Contains the `*.php` files for the FlatBuffers library and the `flatc` generated files.</span></div><div class="line">  $paths = array(join(DIRECTORY_SEPARATOR, array($root_dir, <span class="stringliteral">&quot;php&quot;</span>)),</div><div class="line">                 join(DIRECTORY_SEPARATOR, array($root_dir, <span class="stringliteral">&quot;samples&quot;</span>, <span class="stringliteral">&quot;MyGame&quot;</span>, <span class="stringliteral">&quot;Sample&quot;</span>)));</div><div class="line">  <span class="keywordflow">foreach</span> ($paths as $path) {</div><div class="line">    $file = join(DIRECTORY_SEPARATOR, array($path, $class . <span class="stringliteral">&quot;.php&quot;</span>));</div><div class="line">    <span class="keywordflow">if</span> (file_exists($file)) {</div><div class="line">      require($file);</div><div class="line">      <span class="keywordflow">break</span>;</div><div class="line">    }</div><div class="line">  }</div><div class="line">}</div></div><!-- fragment --> </div> <div class="language-c"> <div class="fragment"><div class="line"><span class="comment">// Only needed if we don&#39;t have `#include &quot;monster_builder.h&quot;`.</span></div><div class="line"><span class="preprocessor">#include &quot;monster_reader.h&quot;</span></div><div class="line"></div><div class="line"><span class="preprocessor">#undef ns</span></div><div class="line"><span class="preprocessor">#define ns(x) FLATBUFFERS_WRAP_NAMESPACE(MyGame_Sample, x) // Specified in the schema.</span></div></div><!-- fragment --> </div><p>Then, assuming you have a buffer of bytes received from disk, network, etc., you can create start accessing the buffer like so:</p>
 <p><b>Again, make sure you read the bytes in BINARY mode, otherwise the code below won't work</b></p>
-<div class="language-cpp"> <div class="fragment"><div class="line">uint8_t *buffer_pointer = <span class="comment">/* the data you just read */</span>;</div>
-<div class="line"></div>
-<div class="line"><span class="comment">// Get a pointer to the root object inside the buffer.</span></div>
-<div class="line"><span class="keyword">auto</span> monster = GetMonster(buffer_pointer);</div>
-<div class="line"></div>
-<div class="line"><span class="comment">// `monster` is of type `Monster *`.</span></div>
-<div class="line"><span class="comment">// Note: root object pointers are NOT the same as `buffer_pointer`.</span></div>
-<div class="line"><span class="comment">// `GetMonster` is a convenience function that calls `GetRoot&lt;Monster&gt;`,</span></div>
-<div class="line"><span class="comment">// the latter is also available for non-root types.</span></div>
-</div><!-- fragment --> </div> <div class="language-java"> <div class="fragment"><div class="line">byte[] bytes = <span class="comment">/* the data you just read */</span></div>
-<div class="line">java.nio.ByteBuffer buf = java.nio.ByteBuffer.wrap(bytes);</div>
-<div class="line"></div>
-<div class="line"><span class="comment">// Get an accessor to the root object inside the buffer.</span></div>
-<div class="line">Monster monster = Monster.getRootAsMonster(buf);</div>
-</div><!-- fragment --> </div> <div class="language-csharp"> <div class="fragment"><div class="line">byte[] bytes = <span class="comment">/* the data you just read */</span></div>
-<div class="line">var buf = <span class="keyword">new</span> ByteBuffer(bytes);</div>
-<div class="line"></div>
-<div class="line"><span class="comment">// Get an accessor to the root object inside the buffer.</span></div>
-<div class="line">var monster = Monster.GetRootAsMonster(buf);</div>
-</div><!-- fragment --> </div> <div class="language-go"> <div class="fragment"><div class="line">var buf []byte = <span class="comment">/* the data you just read */</span></div>
-<div class="line"></div>
-<div class="line"><span class="comment">// Get an accessor to the root object inside the buffer.</span></div>
-<div class="line">monster := sample.GetRootAsMonster(buf, 0)</div>
-<div class="line"></div>
-<div class="line"><span class="comment">// Note: We use `0` for the offset here, which is typical for most buffers</span></div>
-<div class="line"><span class="comment">// you would read. If you wanted to read from `builder.Bytes` directly, you</span></div>
-<div class="line"><span class="comment">// would need to pass in the offset of `builder.Head()`, as the builder</span></div>
-<div class="line"><span class="comment">// constructs the buffer backwards, so may not start at offset 0.</span></div>
-</div><!-- fragment --> </div> <div class="language-python"> <div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;buf = /* the data you just read, <span class="keywordflow">in</span> an object of type <span class="stringliteral">&quot;bytearray&quot;</span> */</div>
-<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;</div>
-<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;// Get an accessor to the root object inside the buffer.</div>
-<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;monster = MyGame.Sample.Monster.Monster.GetRootAsMonster(buf, 0)</div>
-<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;</div>
-<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"># Note: We use `0` for the offset here, which is typical for most buffers</span></div>
-<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"># you would read.  If you wanted to read from the `builder.Bytes` directly,</span></div>
-<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"># you would need to pass in the offset of `builder.Head()`, as the builder</span></div>
-<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"># constructs the buffer backwards, so may not start at offset 0.</span></div>
-</div><!-- fragment --> </div> <div class="language-javascript"> <div class="fragment"><div class="line">var bytes = <span class="comment">/* the data you just read, in an object of type &quot;Uint8Array&quot; */</span></div>
-<div class="line">var buf = <span class="keyword">new</span> flatbuffers.ByteBuffer(bytes);</div>
-<div class="line"></div>
-<div class="line"><span class="comment">// Get an accessor to the root object inside the buffer.</span></div>
-<div class="line">var monster = MyGame.Sample.Monster.getRootAsMonster(buf);</div>
-</div><!-- fragment --> </div> <div class="language-php"> <div class="fragment"><div class="line">$bytes = <span class="comment">/* the data you just read, in a string */</span></div>
-<div class="line">$buf = Google\FlatBuffers\ByteBuffer::wrap($bytes);</div>
-<div class="line"></div>
-<div class="line"><span class="comment">// Get an accessor to the root object inside the buffer.</span></div>
-<div class="line">$monster = \MyGame\Sample\Monster::GetRootAsMonster($buf);</div>
-</div><!-- fragment --> </div> <div class="language-c"> <div class="fragment"><div class="line"><span class="comment">// Note that we use the `table_t` suffix when reading a table object</span></div>
-<div class="line"><span class="comment">// as opposed to the `ref_t` suffix used during the construction of</span></div>
-<div class="line"><span class="comment">// the buffer.</span></div>
-<div class="line">ns(Monster_table_t) monster = ns(Monster_as_root(buffer));</div>
-<div class="line"></div>
-<div class="line"><span class="comment">// Note: root object pointers are NOT the same as the `buffer` pointer.</span></div>
-</div><!-- fragment --> </div><p>If you look in the generated files from the schema compiler, you will see it generated accessors for all non-<code>deprecated</code> fields. For example:</p>
-<div class="language-cpp"> <div class="fragment"><div class="line"><span class="keyword">auto</span> hp = monster-&gt;hp();</div>
-<div class="line"><span class="keyword">auto</span> mana = monster-&gt;mana();</div>
-<div class="line"><span class="keyword">auto</span> name = monster-&gt;name()-&gt;c_str();</div>
-</div><!-- fragment --> </div> <div class="language-java"> <div class="fragment"><div class="line"><span class="keywordtype">short</span> hp = monster.hp();</div>
-<div class="line"><span class="keywordtype">short</span> mana = monster.mana();</div>
-<div class="line">String name = monster.name();</div>
-</div><!-- fragment --> </div> <div class="language-csharp"> <div class="fragment"><div class="line"><span class="comment">// For C#, unlike other languages support by FlatBuffers, most values (except for</span></div>
-<div class="line"><span class="comment">// vectors and unions) are available as propreties instead of asccessor methods.</span></div>
-<div class="line">var hp = monster.Hp</div>
-<div class="line">var mana = monster.Mana</div>
-<div class="line">var name = monster.Name</div>
-</div><!-- fragment --> </div> <div class="language-go"> <div class="fragment"><div class="line">hp := monster.Hp()</div>
-<div class="line">mana := monster.Mana()</div>
-<div class="line">name := string(monster.Name()) <span class="comment">// Note: `monster.Name()` returns a byte[].</span></div>
-</div><!-- fragment --> </div> <div class="language-python"> <div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;hp = monster.Hp()</div>
-<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;mana = monster.Mana()</div>
-<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;name = monster.Name()</div>
-</div><!-- fragment --> </div> <div class="language-javascript"> <div class="fragment"><div class="line">var hp = $monster.hp();</div>
-<div class="line">var mana = $monster.mana();</div>
-<div class="line">var name = $monster.name();</div>
-</div><!-- fragment --> </div> <div class="language-php"> <div class="fragment"><div class="line">$hp = $monster-&gt;getHp();</div>
-<div class="line">$mana = $monster-&gt;getMana();</div>
-<div class="line">$name = monster-&gt;getName();</div>
-</div><!-- fragment --> </div> <div class="language-c"> <div class="fragment"><div class="line">uint16_t hp = ns(Monster_hp(monster));</div>
-<div class="line">uint16_t mana = ns(Monster_mana(monster));</div>
-<div class="line">flatbuffers_string_t name = ns(Monster_name(monster));</div>
-</div><!-- fragment --> </div><p>These should hold <code>300</code>, <code>150</code>, and <code>"Orc"</code> respectively.</p>
+<div class="language-cpp"> <div class="fragment"><div class="line">uint8_t *buffer_pointer = <span class="comment">/* the data you just read */</span>;</div><div class="line"></div><div class="line"><span class="comment">// Get a pointer to the root object inside the buffer.</span></div><div class="line"><span class="keyword">auto</span> monster = GetMonster(buffer_pointer);</div><div class="line"></div><div class="line"><span class="comment">// `monster` is of type `Monster *`.</span></div><div class="line"><span class="comment">// Note: root object pointers are NOT the same as `buffer_pointer`.</span></div><div class="line"><span class="comment">// `GetMonster` is a convenience function that calls `GetRoot&lt;Monster&gt;`,</span></div><div class="line"><span class="comment">// the latter is also available for non-root types.</span></div></div><!-- fragment --> </div> <div class="language-java"> <div class="fragment"><div class="line">byte[] bytes = <span class="comment">/* the data you just read */</span></div><div class="line">java.nio.ByteBuffer buf = java.nio.ByteBuffer.wrap(bytes);</div><div class="line"></div><div class="line"><span class="comment">// Get an accessor to the root object inside the buffer.</span></div><div class="line">Monster monster = Monster.getRootAsMonster(buf);</div></div><!-- fragment --> </div> <div class="language-csharp"> <div class="fragment"><div class="line">byte[] bytes = <span class="comment">/* the data you just read */</span></div><div class="line">var buf = <span class="keyword">new</span> ByteBuffer(bytes);</div><div class="line"></div><div class="line"><span class="comment">// Get an accessor to the root object inside the buffer.</span></div><div class="line">var monster = Monster.GetRootAsMonster(buf);</div></div><!-- fragment --> </div> <div class="language-go"> <div class="fragment"><div class="line">var buf []byte = /* the data you just read */</div><div class="line"></div><div class="line">// Get an accessor to the root object inside the buffer.</div><div class="line">monster := sample.GetRootAsMonster(buf, 0)</div><div class="line"></div><div class="line">// Note: We use `0` for the offset here, which is typical for most buffers</div><div class="line">// you would read. If you wanted to read from `builder.Bytes` directly, you</div><div class="line">// would need to pass in the offset of `builder.Head()`, as the builder</div><div class="line">// constructs the buffer backwards, so may not start at offset 0.</div></div><!-- fragment --> </div> <div class="language-python"> <div class="fragment"><div class="line">buf = /* the data you just read, <span class="keywordflow">in</span> an object of type <span class="stringliteral">&quot;bytearray&quot;</span> */</div><div class="line"></div><div class="line">// Get an accessor to the root object inside the buffer.</div><div class="line">monster = MyGame.Sample.Monster.Monster.GetRootAsMonster(buf, 0)</div><div class="line"></div><div class="line"><span class="comment"># Note: We use `0` for the offset here, which is typical for most buffers</span></div><div class="line"><span class="comment"># you would read.  If you wanted to read from the `builder.Bytes` directly,</span></div><div class="line"><span class="comment"># you would need to pass in the offset of `builder.Head()`, as the builder</span></div><div class="line"><span class="comment"># constructs the buffer backwards, so may not start at offset 0.</span></div></div><!-- fragment --> </div> <div class="language-javascript"> <div class="fragment"><div class="line">var bytes = /* the data you just read, in an object of type &quot;Uint8Array&quot; */</div><div class="line">var buf = new flatbuffers.ByteBuffer(bytes);</div><div class="line"></div><div class="line">// Get an accessor to the root object inside the buffer.</div><div class="line">var monster = MyGame.Sample.Monster.getRootAsMonster(buf);</div></div><!-- fragment --> </div> <div class="language-typescript"> <div class="fragment"><div class="line">let bytes = /* the data you just read, in an object of type &quot;Uint8Array&quot; */</div><div class="line">let buf = new flatbuffers.ByteBuffer(bytes);</div><div class="line"></div><div class="line">// Get an accessor to the root object inside the buffer.</div><div class="line">let monster = MyGame.Sample.Monster.getRootAsMonster(buf);</div></div><!-- fragment --> </div> <div class="language-php"> <div class="fragment"><div class="line">$bytes = <span class="comment">/* the data you just read, in a string */</span></div><div class="line">$buf = Google\FlatBuffers\ByteBuffer::wrap($bytes);</div><div class="line"></div><div class="line"><span class="comment">// Get an accessor to the root object inside the buffer.</span></div><div class="line">$monster = \MyGame\Sample\Monster::GetRootAsMonster($buf);</div></div><!-- fragment --> </div> <div class="language-c"> <div class="fragment"><div class="line"><span class="comment">// Note that we use the `table_t` suffix when reading a table object</span></div><div class="line"><span class="comment">// as opposed to the `ref_t` suffix used during the construction of</span></div><div class="line"><span class="comment">// the buffer.</span></div><div class="line">ns(Monster_table_t) monster = ns(Monster_as_root(buffer));</div><div class="line"></div><div class="line"><span class="comment">// Note: root object pointers are NOT the same as the `buffer` pointer.</span></div></div><!-- fragment --> </div><p>If you look in the generated files from the schema compiler, you will see it generated accessors for all non-<code>deprecated</code> fields. For example:</p>
+<div class="language-cpp"> <div class="fragment"><div class="line"><span class="keyword">auto</span> hp = monster-&gt;hp();</div><div class="line"><span class="keyword">auto</span> mana = monster-&gt;mana();</div><div class="line"><span class="keyword">auto</span> name = monster-&gt;name()-&gt;c_str();</div></div><!-- fragment --> </div> <div class="language-java"> <div class="fragment"><div class="line"><span class="keywordtype">short</span> hp = monster.hp();</div><div class="line"><span class="keywordtype">short</span> mana = monster.mana();</div><div class="line">String name = monster.name();</div></div><!-- fragment --> </div> <div class="language-csharp"> <div class="fragment"><div class="line"><span class="comment">// For C#, unlike other languages support by FlatBuffers, most values (except for</span></div><div class="line"><span class="comment">// vectors and unions) are available as propreties instead of asccessor methods.</span></div><div class="line">var hp = monster.Hp</div><div class="line">var mana = monster.Mana</div><div class="line">var name = monster.Name</div></div><!-- fragment --> </div> <div class="language-go"> <div class="fragment"><div class="line">hp := monster.Hp()</div><div class="line">mana := monster.Mana()</div><div class="line">name := string(monster.Name()) // Note: `monster.Name()` returns a byte[].</div></div><!-- fragment --> </div> <div class="language-python"> <div class="fragment"><div class="line">hp = monster.Hp()</div><div class="line">mana = monster.Mana()</div><div class="line">name = monster.Name()</div></div><!-- fragment --> </div> <div class="language-javascript"> <div class="fragment"><div class="line">var hp = $monster.hp();</div><div class="line">var mana = $monster.mana();</div><div class="line">var name = $monster.name();</div></div><!-- fragment --> </div> <div class="language-typescript"> <div class="fragment"><div class="line">let hp = $monster.hp();</div><div class="line">let mana = $monster.mana();</div><div class="line">let name = $monster.name();</div></div><!-- fragment --> </div> <div class="language-php"> <div class="fragment"><div class="line">$hp = $monster-&gt;getHp();</div><div class="line">$mana = $monster-&gt;getMana();</div><div class="line">$name = monster-&gt;getName();</div></div><!-- fragment --> </div> <div class="language-c"> <div class="fragment"><div class="line">uint16_t hp = ns(Monster_hp(monster));</div><div class="line">uint16_t mana = ns(Monster_mana(monster));</div><div class="line">flatbuffers_string_t name = ns(Monster_name(monster));</div></div><!-- fragment --> </div><p>These should hold <code>300</code>, <code>150</code>, and <code>"Orc"</code> respectively.</p>
 <p><em>Note: The default value <code>150</code> wasn't stored in <code>mana</code>, but we are still able to retrieve it.</em></p>
 <p>To access sub-objects, in the case of our <code>pos</code>, which is a <code>Vec3</code>:</p>
-<div class="language-cpp"> <div class="fragment"><div class="line"><span class="keyword">auto</span> pos = monster-&gt;pos();</div>
-<div class="line"><span class="keyword">auto</span> x = pos-&gt;x();</div>
-<div class="line"><span class="keyword">auto</span> y = pos-&gt;y();</div>
-<div class="line"><span class="keyword">auto</span> z = pos-&gt;z();</div>
-</div><!-- fragment --> </div> <div class="language-java"> <div class="fragment"><div class="line">Vec3 pos = monster.pos();</div>
-<div class="line"><span class="keywordtype">float</span> x = pos.x();</div>
-<div class="line"><span class="keywordtype">float</span> y = pos.y();</div>
-<div class="line"><span class="keywordtype">float</span> z = pos.z();</div>
-</div><!-- fragment --> </div> <div class="language-csharp"> <div class="fragment"><div class="line">var pos = monster.Pos.Value;</div>
-<div class="line">var x = pos.X;</div>
-<div class="line">var y = pos.Y;</div>
-<div class="line">var z = pos.Z;</div>
-</div><!-- fragment --> </div> <div class="language-go"> <div class="fragment"><div class="line">pos := monster.Pos(nil)</div>
-<div class="line">x := pos.X()</div>
-<div class="line">y := pos.Y()</div>
-<div class="line">z := pos.Z()</div>
-<div class="line"></div>
-<div class="line"><span class="comment">// Note: Whenever you access a new object, like in `Pos()`, a new temporary</span></div>
-<div class="line"><span class="comment">// accessor object gets created. If your code is very performance sensitive,</span></div>
-<div class="line"><span class="comment">// you can pass in a pointer to an existing `Vec3` instead of `nil`. This</span></div>
-<div class="line"><span class="comment">// allows you to reuse it across many calls to reduce the amount of object</span></div>
-<div class="line"><span class="comment">// allocation/garbage collection.</span></div>
-</div><!-- fragment --> </div> <div class="language-python"> <div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;pos = monster.Pos()</div>
-<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;x = pos.X()</div>
-<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;y = pos.Y()</div>
-<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;z = pos.Z()</div>
-</div><!-- fragment --> </div> <div class="language-javascript"> <div class="fragment"><div class="line">var pos = monster.pos();</div>
-<div class="line">var x = pos.x();</div>
-<div class="line">var y = pos.y();</div>
-<div class="line">var z = pos.z();</div>
-</div><!-- fragment --> </div> <div class="language-php"> <div class="fragment"><div class="line">$pos = $monster-&gt;getPos();</div>
-<div class="line">$x = $pos-&gt;getX();</div>
-<div class="line">$y = $pos-&gt;getY();</div>
-<div class="line">$z = $pos-&gt;getZ();</div>
-</div><!-- fragment --> </div> <div class="language-c"> <div class="fragment"><div class="line">ns(Vec3_struct_t) pos = ns(Monster_pos(monster));</div>
-<div class="line"><span class="keywordtype">float</span> x = ns(Vec3_x(pos));</div>
-<div class="line"><span class="keywordtype">float</span> y = ns(Vec3_y(pos));</div>
-<div class="line"><span class="keywordtype">float</span> z = ns(Vec3_z(pos));</div>
-</div><!-- fragment --> </div><p><code>x</code>, <code>y</code>, and <code>z</code> will contain <code>1.0</code>, <code>2.0</code>, and <code>3.0</code>, respectively.</p>
+<div class="language-cpp"> <div class="fragment"><div class="line"><span class="keyword">auto</span> pos = monster-&gt;pos();</div><div class="line"><span class="keyword">auto</span> x = pos-&gt;x();</div><div class="line"><span class="keyword">auto</span> y = pos-&gt;y();</div><div class="line"><span class="keyword">auto</span> z = pos-&gt;z();</div></div><!-- fragment --> </div> <div class="language-java"> <div class="fragment"><div class="line">Vec3 pos = monster.pos();</div><div class="line"><span class="keywordtype">float</span> x = pos.x();</div><div class="line"><span class="keywordtype">float</span> y = pos.y();</div><div class="line"><span class="keywordtype">float</span> z = pos.z();</div></div><!-- fragment --> </div> <div class="language-csharp"> <div class="fragment"><div class="line">var pos = monster.Pos.Value;</div><div class="line">var x = pos.X;</div><div class="line">var y = pos.Y;</div><div class="line">var z = pos.Z;</div></div><!-- fragment --> </div> <div class="language-go"> <div class="fragment"><div class="line">pos := monster.Pos(nil)</div><div class="line">x := pos.X()</div><div class="line">y := pos.Y()</div><div class="line">z := pos.Z()</div><div class="line"></div><div class="line">// Note: Whenever you access a new object, like in `Pos()`, a new temporary</div><div class="line">// accessor object gets created. If your code is very performance sensitive,</div><div class="line">// you can pass in a pointer to an existing `Vec3` instead of `nil`. This</div><div class="line">// allows you to reuse it across many calls to reduce the amount of object</div><div class="line">// allocation/garbage collection.</div></div><!-- fragment --> </div> <div class="language-python"> <div class="fragment"><div class="line">pos = monster.Pos()</div><div class="line">x = pos.X()</div><div class="line">y = pos.Y()</div><div class="line">z = pos.Z()</div></div><!-- fragment --> </div> <div class="language-javascript"> <div class="fragment"><div class="line">var pos = monster.pos();</div><div class="line">var x = pos.x();</div><div class="line">var y = pos.y();</div><div class="line">var z = pos.z();</div></div><!-- fragment --> </div> <div class="language-typescript"> <div class="fragment"><div class="line">let pos = monster.pos();</div><div class="line">let x = pos.x();</div><div class="line">let y = pos.y();</div><div class="line">let z = pos.z();</div></div><!-- fragment --> </div> <div class="language-php"> <div class="fragment"><div class="line">$pos = $monster-&gt;getPos();</div><div class="line">$x = $pos-&gt;getX();</div><div class="line">$y = $pos-&gt;getY();</div><div class="line">$z = $pos-&gt;getZ();</div></div><!-- fragment --> </div> <div class="language-c"> <div class="fragment"><div class="line">ns(Vec3_struct_t) pos = ns(Monster_pos(monster));</div><div class="line"><span class="keywordtype">float</span> x = ns(Vec3_x(pos));</div><div class="line"><span class="keywordtype">float</span> y = ns(Vec3_y(pos));</div><div class="line"><span class="keywordtype">float</span> z = ns(Vec3_z(pos));</div></div><!-- fragment --> </div><p><code>x</code>, <code>y</code>, and <code>z</code> will contain <code>1.0</code>, <code>2.0</code>, and <code>3.0</code>, respectively.</p>
 <p><em>Note: Had we not set <code>pos</code> during serialization, it would be a <code>NULL</code>-value.</em></p>
 <p>Similarly, we can access elements of the inventory <code>vector</code> by indexing it. You can also iterate over the length of the array/vector representing the FlatBuffers <code>vector</code>.</p>
-<div class="language-cpp"> <div class="fragment"><div class="line"><span class="keyword">auto</span> inv = monster-&gt;inventory(); <span class="comment">// A pointer to a `flatbuffers::Vector&lt;&gt;`.</span></div>
-<div class="line"><span class="keyword">auto</span> inv_len = inv-&gt;Length();</div>
-<div class="line"><span class="keyword">auto</span> third_item = inv-&gt;Get(2);</div>
-</div><!-- fragment --> </div> <div class="language-java"> <div class="fragment"><div class="line"><span class="keywordtype">int</span> invLength = monster.inventoryLength();</div>
-<div class="line">byte thirdItem = monster.inventory(2);</div>
-</div><!-- fragment --> </div> <div class="language-csharp"> <div class="fragment"><div class="line"><span class="keywordtype">int</span> invLength = monster.InventoryLength;</div>
-<div class="line">var thirdItem = monster.Inventory(2);</div>
-</div><!-- fragment --> </div> <div class="language-go"> <div class="fragment"><div class="line">invLength := monster.InventoryLength()</div>
-<div class="line">thirdItem := monster.Inventory(2)</div>
-</div><!-- fragment --> </div> <div class="language-python"> <div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;inv_len = monster.InventoryLength()</div>
-<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;third_item = monster.Inventory(2)</div>
-</div><!-- fragment --> </div> <div class="language-javascript"> <div class="fragment"><div class="line">var invLength = monster.inventoryLength();</div>
-<div class="line">var thirdItem = monster.inventory(2);</div>
-</div><!-- fragment --> </div> <div class="language-php"> <div class="fragment"><div class="line">$inv_len = $monster-&gt;getInventoryLength();</div>
-<div class="line">$third_item = $monster-&gt;getInventory(2);</div>
-</div><!-- fragment --> </div> <div class="language-c"> <div class="fragment"><div class="line"><span class="comment">// If `inv` hasn&#39;t been set, it will be null. It is valid get</span></div>
-<div class="line"><span class="comment">// the length of null which will be 0, useful for iteration.</span></div>
-<div class="line">flatbuffers_uint8_vec_t inv = ns(Monster_inventory(monster));</div>
-<div class="line"><span class="keywordtype">size_t</span> inv_len = flatbuffers_uint8_vec_len(inv);</div>
-</div><!-- fragment --> </div><p>For <code>vector</code>s of <code>table</code>s, you can access the elements like any other vector, except your need to handle the result as a FlatBuffer <code>table</code>:</p>
-<div class="language-cpp"> <div class="fragment"><div class="line"><span class="keyword">auto</span> weapons = monster-&gt;weapons(); <span class="comment">// A pointer to a `flatbuffers::Vector&lt;&gt;`.</span></div>
-<div class="line"><span class="keyword">auto</span> weapon_len = weapons-&gt;Length();</div>
-<div class="line"><span class="keyword">auto</span> second_weapon_name = weapons-&gt;Get(1)-&gt;name()-&gt;str();</div>
-<div class="line"><span class="keyword">auto</span> second_weapon_damage = weapons-&gt;Get(1)-&gt;damage()</div>
-</div><!-- fragment --> </div> <div class="language-java"> <div class="fragment"><div class="line"><span class="keywordtype">int</span> weaponsLength = monster.weaponsLength();</div>
-<div class="line">String secondWeaponName = monster.weapons(1).name();</div>
-<div class="line"><span class="keywordtype">short</span> secondWeaponDamage = monster.weapons(1).damage();</div>
-</div><!-- fragment --> </div> <div class="language-csharp"> <div class="fragment"><div class="line"><span class="keywordtype">int</span> weaponsLength = monster.WeaponsLength;</div>
-<div class="line">var secondWeaponName = monster.Weapons(1).Name;</div>
-<div class="line">var secondWeaponDamage = monster.Weapons(1).Damage;</div>
-</div><!-- fragment --> </div> <div class="language-go"> <div class="fragment"><div class="line">weaponLength := monster.WeaponsLength()</div>
-<div class="line">weapon := <span class="keyword">new</span>(sample.Weapon) <span class="comment">// We need a `sample.Weapon` to pass into `monster.Weapons()`</span></div>
-<div class="line">                             <span class="comment">// to capture the output of the function.</span></div>
-<div class="line"><span class="keywordflow">if</span> monster.Weapons(weapon, 1) {</div>
-<div class="line">        secondWeaponName := weapon.Name()</div>
-<div class="line">        secondWeaponDamage := weapon.Damage()</div>
-<div class="line">}</div>
-</div><!-- fragment --> </div> <div class="language-python"> <div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;weapons_length = monster.WeaponsLength()</div>
-<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;second_weapon_name = monster.Weapons(1).Name()</div>
-<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;second_weapon_damage = monster.Weapons(1).Damage()</div>
-</div><!-- fragment --> </div> <div class="language-javascript"> <div class="fragment"><div class="line">var weaponsLength = monster.weaponsLength();</div>
-<div class="line">var secondWeaponName = monster.weapons(1).name();</div>
-<div class="line">var secondWeaponDamage = monster.weapons(1).damage();</div>
-</div><!-- fragment --> </div> <div class="language-php"> <div class="fragment"><div class="line">$weapons_len = $monster-&gt;getWeaponsLength();</div>
-<div class="line">$second_weapon_name = $monster-&gt;getWeapons(1)-&gt;getName();</div>
-<div class="line">$second_weapon_damage = $monster-&gt;getWeapons(1)-&gt;getDamage();</div>
-</div><!-- fragment --> </div> <div class="language-c"> <div class="fragment"><div class="line">ns(Weapon_vec_t) weapons = ns(Monster_weapons(monster));</div>
-<div class="line"><span class="keywordtype">size_t</span> weapons_len = ns(Weapon_vec_len(weapons));</div>
-<div class="line"><span class="comment">// We can use `const char *` instead of `flatbuffers_string_t`.</span></div>
-<div class="line">const <span class="keywordtype">char</span> *second_weapon_name = ns(Weapon_name(ns(Weapon_vec_at(weapons, 1))));</div>
-<div class="line">uint16_t second_weapon_damage =  ns(Weapon_damage(ns(Weapon_vec_at(weapons, 1))));</div>
-</div><!-- fragment --> </div><p>Last, we can access our <code>Equipped</code> FlatBuffer <code>union</code>. Just like when we created the <code>union</code>, we need to get both parts of the <code>union</code>: the type and the data.</p>
+<div class="language-cpp"> <div class="fragment"><div class="line"><span class="keyword">auto</span> inv = monster-&gt;inventory(); <span class="comment">// A pointer to a `flatbuffers::Vector&lt;&gt;`.</span></div><div class="line"><span class="keyword">auto</span> inv_len = inv-&gt;Length();</div><div class="line"><span class="keyword">auto</span> third_item = inv-&gt;Get(2);</div></div><!-- fragment --> </div> <div class="language-java"> <div class="fragment"><div class="line"><span class="keywordtype">int</span> invLength = monster.inventoryLength();</div><div class="line">byte thirdItem = monster.inventory(2);</div></div><!-- fragment --> </div> <div class="language-csharp"> <div class="fragment"><div class="line"><span class="keywordtype">int</span> invLength = monster.InventoryLength;</div><div class="line">var thirdItem = monster.Inventory(2);</div></div><!-- fragment --> </div> <div class="language-go"> <div class="fragment"><div class="line">invLength := monster.InventoryLength()</div><div class="line">thirdItem := monster.Inventory(2)</div></div><!-- fragment --> </div> <div class="language-python"> <div class="fragment"><div class="line">inv_len = monster.InventoryLength()</div><div class="line">third_item = monster.Inventory(2)</div></div><!-- fragment --> </div> <div class="language-javascript"> <div class="fragment"><div class="line">var invLength = monster.inventoryLength();</div><div class="line">var thirdItem = monster.inventory(2);</div></div><!-- fragment --> </div> <div class="language-typescript"> <div class="fragment"><div class="line">let invLength = monster.inventoryLength();</div><div class="line">let thirdItem = monster.inventory(2);</div></div><!-- fragment --> </div> <div class="language-php"> <div class="fragment"><div class="line">$inv_len = $monster-&gt;getInventoryLength();</div><div class="line">$third_item = $monster-&gt;getInventory(2);</div></div><!-- fragment --> </div> <div class="language-c"> <div class="fragment"><div class="line"><span class="comment">// If `inv` hasn&#39;t been set, it will be null. It is valid get</span></div><div class="line"><span class="comment">// the length of null which will be 0, useful for iteration.</span></div><div class="line">flatbuffers_uint8_vec_t inv = ns(Monster_inventory(monster));</div><div class="line"><span class="keywordtype">size_t</span> inv_len = flatbuffers_uint8_vec_len(inv);</div></div><!-- fragment --> </div><p>For <code>vector</code>s of <code>table</code>s, you can access the elements like any other vector, except your need to handle the result as a FlatBuffer <code>table</code>:</p>
+<div class="language-cpp"> <div class="fragment"><div class="line"><span class="keyword">auto</span> weapons = monster-&gt;weapons(); <span class="comment">// A pointer to a `flatbuffers::Vector&lt;&gt;`.</span></div><div class="line"><span class="keyword">auto</span> weapon_len = weapons-&gt;Length();</div><div class="line"><span class="keyword">auto</span> second_weapon_name = weapons-&gt;Get(1)-&gt;name()-&gt;str();</div><div class="line"><span class="keyword">auto</span> second_weapon_damage = weapons-&gt;Get(1)-&gt;damage()</div></div><!-- fragment --> </div> <div class="language-java"> <div class="fragment"><div class="line"><span class="keywordtype">int</span> weaponsLength = monster.weaponsLength();</div><div class="line">String secondWeaponName = monster.weapons(1).name();</div><div class="line"><span class="keywordtype">short</span> secondWeaponDamage = monster.weapons(1).damage();</div></div><!-- fragment --> </div> <div class="language-csharp"> <div class="fragment"><div class="line"><span class="keywordtype">int</span> weaponsLength = monster.WeaponsLength;</div><div class="line">var secondWeaponName = monster.Weapons(1).Name;</div><div class="line">var secondWeaponDamage = monster.Weapons(1).Damage;</div></div><!-- fragment --> </div> <div class="language-go"> <div class="fragment"><div class="line">weaponLength := monster.WeaponsLength()</div><div class="line">weapon := new(sample.Weapon) // We need a `sample.Weapon` to pass into `monster.Weapons()`</div><div class="line">                             // to capture the output of the function.</div><div class="line">if monster.Weapons(weapon, 1) {</div><div class="line">        secondWeaponName := weapon.Name()</div><div class="line">        secondWeaponDamage := weapon.Damage()</div><div class="line">}</div></div><!-- fragment --> </div> <div class="language-python"> <div class="fragment"><div class="line">weapons_length = monster.WeaponsLength()</div><div class="line">second_weapon_name = monster.Weapons(1).Name()</div><div class="line">second_weapon_damage = monster.Weapons(1).Damage()</div></div><!-- fragment --> </div> <div class="language-javascript"> <div class="fragment"><div class="line">var weaponsLength = monster.weaponsLength();</div><div class="line">var secondWeaponName = monster.weapons(1).name();</div><div class="line">var secondWeaponDamage = monster.weapons(1).damage();</div></div><!-- fragment --> </div> <div class="language-typescript"> <div class="fragment"><div class="line">let weaponsLength = monster.weaponsLength();</div><div class="line">let secondWeaponName = monster.weapons(1).name();</div><div class="line">let secondWeaponDamage = monster.weapons(1).damage();</div></div><!-- fragment --> </div> <div class="language-php"> <div class="fragment"><div class="line">$weapons_len = $monster-&gt;getWeaponsLength();</div><div class="line">$second_weapon_name = $monster-&gt;getWeapons(1)-&gt;getName();</div><div class="line">$second_weapon_damage = $monster-&gt;getWeapons(1)-&gt;getDamage();</div></div><!-- fragment --> </div> <div class="language-c"> <div class="fragment"><div class="line">ns(Weapon_vec_t) weapons = ns(Monster_weapons(monster));</div><div class="line"><span class="keywordtype">size_t</span> weapons_len = ns(Weapon_vec_len(weapons));</div><div class="line"><span class="comment">// We can use `const char *` instead of `flatbuffers_string_t`.</span></div><div class="line"><span class="keyword">const</span> <span class="keywordtype">char</span> *second_weapon_name = ns(Weapon_name(ns(Weapon_vec_at(weapons, 1))));</div><div class="line">uint16_t second_weapon_damage =  ns(Weapon_damage(ns(Weapon_vec_at(weapons, 1))));</div></div><!-- fragment --> </div><p>Last, we can access our <code>Equipped</code> FlatBuffer <code>union</code>. Just like when we created the <code>union</code>, we need to get both parts of the <code>union</code>: the type and the data.</p>
 <p>We can access the type to dynamically cast the data as needed (since the <code>union</code> only stores a FlatBuffer <code>table</code>).</p>
-<div class="language-cpp"> <div class="fragment"><div class="line"><span class="keyword">auto</span> union_type = monster.equipped_type();</div>
-<div class="line"></div>
-<div class="line"><span class="keywordflow">if</span> (union_type == Equipment_Weapon) {</div>
-<div class="line">  <span class="keyword">auto</span> weapon = <span class="keyword">static_cast&lt;</span><span class="keyword">const </span>Weapon*<span class="keyword">&gt;</span>(monster-&gt;equipped()); <span class="comment">// Requires `static_cast`</span></div>
-<div class="line">                                                                 <span class="comment">// to type `const Weapon*`.</span></div>
-<div class="line"></div>
-<div class="line">  <span class="keyword">auto</span> weapon_name = weapon-&gt;name()-&gt;str(); <span class="comment">// &quot;Axe&quot;</span></div>
-<div class="line">  <span class="keyword">auto</span> weapon_damage = weapon-&gt;damage();    <span class="comment">// 5</span></div>
-<div class="line">}</div>
-</div><!-- fragment --> </div> <div class="language-java"> <div class="fragment"><div class="line"><span class="keywordtype">int</span> unionType = monster.EquippedType();</div>
-<div class="line"></div>
-<div class="line"><span class="keywordflow">if</span> (unionType == Equipment.Weapon) {</div>
-<div class="line">  Weapon weapon = (Weapon)monster.equipped(<span class="keyword">new</span> Weapon()); <span class="comment">// Requires explicit cast</span></div>
-<div class="line">                                                          <span class="comment">// to `Weapon`.</span></div>
-<div class="line"></div>
-<div class="line">  String weaponName = weapon.name();    <span class="comment">// &quot;Axe&quot;</span></div>
-<div class="line">  <span class="keywordtype">short</span> weaponDamage = weapon.damage(); <span class="comment">// 5</span></div>
-<div class="line">}</div>
-</div><!-- fragment --> </div> <div class="language-csharp"> <div class="fragment"><div class="line">var unionType = monster.EquippedType;</div>
-<div class="line"></div>
-<div class="line"><span class="keywordflow">if</span> (unionType == Equipment.Weapon) {</div>
-<div class="line">  var weapon = monster.Equipped&lt;Weapon&gt;().Value;</div>
-<div class="line"></div>
-<div class="line">  var weaponName = weapon.Name;     <span class="comment">// &quot;Axe&quot;</span></div>
-<div class="line">  var weaponDamage = weapon.Damage; <span class="comment">// 5</span></div>
-<div class="line">}</div>
-</div><!-- fragment --> </div> <div class="language-go"> <div class="fragment"><div class="line"><span class="comment">// We need a `flatbuffers.Table` to capture the output of the</span></div>
-<div class="line"><span class="comment">// `monster.Equipped()` function.</span></div>
-<div class="line">unionTable := <span class="keyword">new</span>(flatbuffers.Table)</div>
-<div class="line"></div>
-<div class="line"><span class="keywordflow">if</span> monster.Equipped(unionTable) {</div>
-<div class="line">        unionType := monster.EquippedType()</div>
-<div class="line"></div>
-<div class="line">        <span class="keywordflow">if</span> unionType == sample.EquipmentWeapon {</div>
-<div class="line">                <span class="comment">// Create a `sample.Weapon` object that can be initialized with the contents</span></div>
-<div class="line">                <span class="comment">// of the `flatbuffers.Table` (`unionTable`), which was populated by</span></div>
-<div class="line">                <span class="comment">// `monster.Equipped()`.</span></div>
-<div class="line">                unionWeapon = <span class="keyword">new</span>(sample.Weapon)</div>
-<div class="line">                unionWeapon.Init(unionTable.Bytes, unionTable.Pos)</div>
-<div class="line"></div>
-<div class="line">                weaponName = unionWeapon.Name()</div>
-<div class="line">                weaponDamage = unionWeapon.Damage()</div>
-<div class="line">        }</div>
-<div class="line">}</div>
-</div><!-- fragment --> </div> <div class="language-python"> <div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;union_type = monster.EquippedType()</div>
-<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;</div>
-<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="keywordflow">if</span> union_type == MyGame.Sample.Equipment.Equipment().Weapon:</div>
-<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;  <span class="comment"># `monster.Equipped()` returns a `flatbuffers.Table`, which can be used to</span></div>
-<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;  <span class="comment"># initialize a `MyGame.Sample.Weapon.Weapon()`.</span></div>
-<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;  union_weapon = MyGame.Sample.Weapon.Weapon()</div>
-<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;  union_weapon.Init(monster.Equipped().Bytes, monster.Equipped().Pos)</div>
-<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;</div>
-<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;  weapon_name = union_weapon.Name()     // <span class="stringliteral">&#39;Axe&#39;</span></div>
-<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;  weapon_damage = union_weapon.Damage() // 5</div>
-</div><!-- fragment --> </div> <div class="language-javascript"> <div class="fragment"><div class="line">var unionType = monster.equippedType();</div>
-<div class="line"></div>
-<div class="line"><span class="keywordflow">if</span> (unionType == MyGame.Sample.Equipment.Weapon) {</div>
-<div class="line">  var weapon_name = monster.equipped(<span class="keyword">new</span> MyGame.Sample.Weapon()).name();     <span class="comment">// &#39;Axe&#39;</span></div>
-<div class="line">  var weapon_damage = monster.equipped(<span class="keyword">new</span> MyGame.Sample.Weapon()).damage(); <span class="comment">// 5</span></div>
-<div class="line">}</div>
-</div><!-- fragment --> </div> <div class="language-php"> <div class="fragment"><div class="line">$union_type = $monster-&gt;getEquippedType();</div>
-<div class="line"></div>
-<div class="line"><span class="keywordflow">if</span> ($union_type == \MyGame\Sample\Equipment::Weapon) {</div>
-<div class="line">  $weapon_name = $monster-&gt;getEquipped(<span class="keyword">new</span> \MyGame\Sample\Weapon())-&gt;getName();     <span class="comment">// &quot;Axe&quot;</span></div>
-<div class="line">  $weapon_damage = $monster-&gt;getEquipped(<span class="keyword">new</span> \MyGame\Sample\Weapon())-&gt;getDamage(); <span class="comment">// 5</span></div>
-<div class="line">}</div>
-</div><!-- fragment --> </div> <div class="language-c"> <div class="fragment"><div class="line"><span class="comment">// Access union type field.</span></div>
-<div class="line"><span class="keywordflow">if</span> (ns(Monster_equipped_type(monster)) == ns(Equipment_Weapon)) {</div>
-<div class="line">    <span class="comment">// Cast to appropriate type:</span></div>
-<div class="line">    <span class="comment">// C allows for silent void pointer assignment, so we need no explicit cast.</span></div>
-<div class="line">    ns(Weapon_table_t) weapon = ns(Monster_equipped(monster));</div>
-<div class="line">    const <span class="keywordtype">char</span> *weapon_name = ns(Weapon_name(weapon)); <span class="comment">// &quot;Axe&quot;</span></div>
-<div class="line">    uint16_t weapon_damage = ns(Weapon_damage(weapon)); <span class="comment">// 5</span></div>
-<div class="line">}</div>
-</div><!-- fragment --> </div><h2>Mutating FlatBuffers</h2>
+<div class="language-cpp"> <div class="fragment"><div class="line"><span class="keyword">auto</span> union_type = monster.equipped_type();</div><div class="line"></div><div class="line"><span class="keywordflow">if</span> (union_type == Equipment_Weapon) {</div><div class="line">  <span class="keyword">auto</span> weapon = <span class="keyword">static_cast&lt;</span><span class="keyword">const </span>Weapon*<span class="keyword">&gt;</span>(monster-&gt;equipped()); <span class="comment">// Requires `static_cast`</span></div><div class="line">                                                                 <span class="comment">// to type `const Weapon*`.</span></div><div class="line"></div><div class="line">  <span class="keyword">auto</span> weapon_name = weapon-&gt;name()-&gt;str(); <span class="comment">// &quot;Axe&quot;</span></div><div class="line">  <span class="keyword">auto</span> weapon_damage = weapon-&gt;damage();    <span class="comment">// 5</span></div><div class="line">}</div></div><!-- fragment --> </div> <div class="language-java"> <div class="fragment"><div class="line"><span class="keywordtype">int</span> unionType = monster.EquippedType();</div><div class="line"></div><div class="line"><span class="keywordflow">if</span> (unionType == Equipment.Weapon) {</div><div class="line">  Weapon weapon = (Weapon)monster.equipped(<span class="keyword">new</span> Weapon()); <span class="comment">// Requires explicit cast</span></div><div class="line">                                                          <span class="comment">// to `Weapon`.</span></div><div class="line"></div><div class="line">  String weaponName = weapon.name();    <span class="comment">// &quot;Axe&quot;</span></div><div class="line">  <span class="keywordtype">short</span> weaponDamage = weapon.damage(); <span class="comment">// 5</span></div><div class="line">}</div></div><!-- fragment --> </div> <div class="language-csharp"> <div class="fragment"><div class="line">var unionType = monster.EquippedType;</div><div class="line"></div><div class="line"><span class="keywordflow">if</span> (unionType == Equipment.Weapon) {</div><div class="line">  var weapon = monster.Equipped&lt;Weapon&gt;().Value;</div><div class="line"></div><div class="line">  var weaponName = weapon.Name;     <span class="comment">// &quot;Axe&quot;</span></div><div class="line">  var weaponDamage = weapon.Damage; <span class="comment">// 5</span></div><div class="line">}</div></div><!-- fragment --> </div> <div class="language-go"> <div class="fragment"><div class="line">// We need a `flatbuffers.Table` to capture the output of the</div><div class="line">// `monster.Equipped()` function.</div><div class="line">unionTable := new(flatbuffers.Table)</div><div class="line"></div><div class="line">if monster.Equipped(unionTable) {</div><div class="line">        unionType := monster.EquippedType()</div><div class="line"></div><div class="line">        if unionType == sample.EquipmentWeapon {</div><div class="line">                // Create a `sample.Weapon` object that can be initialized with the contents</div><div class="line">                // of the `flatbuffers.Table` (`unionTable`), which was populated by</div><div class="line">                // `monster.Equipped()`.</div><div class="line">                unionWeapon = new(sample.Weapon)</div><div class="line">                unionWeapon.Init(unionTable.Bytes, unionTable.Pos)</div><div class="line"></div><div class="line">                weaponName = unionWeapon.Name()</div><div class="line">                weaponDamage = unionWeapon.Damage()</div><div class="line">        }</div><div class="line">}</div></div><!-- fragment --> </div> <div class="language-python"> <div class="fragment"><div class="line">union_type = monster.EquippedType()</div><div class="line"></div><div class="line"><span class="keywordflow">if</span> union_type == MyGame.Sample.Equipment.Equipment().Weapon:</div><div class="line">  <span class="comment"># `monster.Equipped()` returns a `flatbuffers.Table`, which can be used to</span></div><div class="line">  <span class="comment"># initialize a `MyGame.Sample.Weapon.Weapon()`.</span></div><div class="line">  union_weapon = MyGame.Sample.Weapon.Weapon()</div><div class="line">  union_weapon.Init(monster.Equipped().Bytes, monster.Equipped().Pos)</div><div class="line"></div><div class="line">  weapon_name = union_weapon.Name()     // <span class="stringliteral">&#39;Axe&#39;</span></div><div class="line">  weapon_damage = union_weapon.Damage() // 5</div></div><!-- fragment --> </div> <div class="language-javascript"> <div class="fragment"><div class="line">var unionType = monster.equippedType();</div><div class="line"></div><div class="line">if (unionType == MyGame.Sample.Equipment.Weapon) {</div><div class="line">  var weapon_name = monster.equipped(new MyGame.Sample.Weapon()).name();     // &#39;Axe&#39;</div><div class="line">  var weapon_damage = monster.equipped(new MyGame.Sample.Weapon()).damage(); // 5</div><div class="line">}</div></div><!-- fragment --> </div> <div class="language-typescript"> <div class="fragment"><div class="line">let unionType = monster.equippedType();</div><div class="line"></div><div class="line">if (unionType == MyGame.Sample.Equipment.Weapon) {</div><div class="line">  let weapon_name = monster.equipped(new MyGame.Sample.Weapon()).name();     // &#39;Axe&#39;</div><div class="line">  let weapon_damage = monster.equipped(new MyGame.Sample.Weapon()).damage(); // 5</div><div class="line">}</div></div><!-- fragment --> </div> <div class="language-php"> <div class="fragment"><div class="line">$union_type = $monster-&gt;getEquippedType();</div><div class="line"></div><div class="line"><span class="keywordflow">if</span> ($union_type == \MyGame\Sample\Equipment::Weapon) {</div><div class="line">  $weapon_name = $monster-&gt;getEquipped(<span class="keyword">new</span> \MyGame\Sample\Weapon())-&gt;getName();     <span class="comment">// &quot;Axe&quot;</span></div><div class="line">  $weapon_damage = $monster-&gt;getEquipped(<span class="keyword">new</span> \MyGame\Sample\Weapon())-&gt;getDamage(); <span class="comment">// 5</span></div><div class="line">}</div></div><!-- fragment --> </div> <div class="language-c"> <div class="fragment"><div class="line"><span class="comment">// Access union type field.</span></div><div class="line"><span class="keywordflow">if</span> (ns(Monster_equipped_type(monster)) == ns(Equipment_Weapon)) {</div><div class="line">    <span class="comment">// Cast to appropriate type:</span></div><div class="line">    <span class="comment">// C allows for silent void pointer assignment, so we need no explicit cast.</span></div><div class="line">    ns(Weapon_table_t) weapon = ns(Monster_equipped(monster));</div><div class="line">    <span class="keyword">const</span> <span class="keywordtype">char</span> *weapon_name = ns(Weapon_name(weapon)); <span class="comment">// &quot;Axe&quot;</span></div><div class="line">    uint16_t weapon_damage = ns(Weapon_damage(weapon)); <span class="comment">// 5</span></div><div class="line">}</div></div><!-- fragment --> </div><h2>Mutating FlatBuffers</h2>
 <p>As you saw above, typically once you have created a FlatBuffer, it is read-only from that moment on. There are, however, cases where you have just received a FlatBuffer, and you'd like to modify something about it before sending it on to another recipient. With the above functionality, you'd have to generate an entirely new FlatBuffer, while tracking what you modified in your own data structures. This is inconvenient.</p>
 <p>For this reason FlatBuffers can also be mutated in-place. While this is great for making small fixes to an existing buffer, you generally want to create buffers from scratch whenever possible, since it is much more efficient and the API is much more general purpose.</p>
 <p>To get non-const accessors, invoke <code>flatc</code> with <code>--gen-mutable</code>.</p>
 <p>Similar to how we read fields using the accessors above, we can now use the mutators like so:</p>
-<div class="language-cpp"> <div class="fragment"><div class="line"><span class="keyword">auto</span> monster = GetMutableMonster(buffer_pointer);  <span class="comment">// non-const</span></div>
-<div class="line">monster-&gt;mutate_hp(10);                      <span class="comment">// Set the table `hp` field.</span></div>
-<div class="line">monster-&gt;mutable_pos()-&gt;mutate_z(4);         <span class="comment">// Set struct field.</span></div>
-<div class="line">monster-&gt;mutable_inventory()-&gt;Mutate(0, 1);  <span class="comment">// Set vector element.</span></div>
-</div><!-- fragment --> </div> <div class="language-java"> <div class="fragment"><div class="line">Monster monster = Monster.getRootAsMonster(buf);</div>
-<div class="line">monster.mutateHp(10);            <span class="comment">// Set table field.</span></div>
-<div class="line">monster.pos().mutateZ(4);        <span class="comment">// Set struct field.</span></div>
-<div class="line">monster.mutateInventory(0, 1);   <span class="comment">// Set vector element.</span></div>
-</div><!-- fragment --> </div> <div class="language-csharp"> <div class="fragment"><div class="line">var monster = Monster.GetRootAsMonster(buf);</div>
-<div class="line">monster.MutateHp(10);            <span class="comment">// Set table field.</span></div>
-<div class="line">monster.Pos.MutateZ(4);          <span class="comment">// Set struct field.</span></div>
-<div class="line">monster.MutateInventory(0, 1);   <span class="comment">// Set vector element.</span></div>
-</div><!-- fragment --> </div> <div class="language-go"> <div class="fragment"><div class="line">&lt;API <span class="keywordflow">for</span> mutating FlatBuffers is not yet available in Go.&gt;</div>
-</div><!-- fragment --> </div> <div class="language-python"> <div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;&lt;API <span class="keywordflow">for</span> mutating FlatBuffers <span class="keywordflow">is</span> <span class="keywordflow">not</span> yet available <span class="keywordflow">in</span> Python.&gt;</div>
-</div><!-- fragment --> </div> <div class="language-javascript"> <div class="fragment"><div class="line">&lt;API <span class="keywordflow">for</span> mutating FlatBuffers is not yet support in JavaScript.&gt;</div>
-</div><!-- fragment --> </div> <div class="language-php"> <div class="fragment"><div class="line">&lt;API <span class="keywordflow">for</span> mutating FlatBuffers is not yet supported in PHP.&gt;</div>
-</div><!-- fragment --> </div> <div class="language-c"> <div class="fragment"><div class="line">&lt;API <span class="keywordflow">for</span> in-place mutating FlatBuffers will not be supported in C</div>
-<div class="line">(except in-place vector sorting is possible).&gt;</div>
-</div><!-- fragment --> </div><p>We use the somewhat verbose term <code>mutate</code> instead of <code>set</code> to indicate that this is a special use case, not to be confused with the default way of constructing FlatBuffer data.</p>
+<div class="language-cpp"> <div class="fragment"><div class="line"><span class="keyword">auto</span> monster = GetMutableMonster(buffer_pointer);  <span class="comment">// non-const</span></div><div class="line">monster-&gt;mutate_hp(10);                      <span class="comment">// Set the table `hp` field.</span></div><div class="line">monster-&gt;mutable_pos()-&gt;mutate_z(4);         <span class="comment">// Set struct field.</span></div><div class="line">monster-&gt;mutable_inventory()-&gt;Mutate(0, 1);  <span class="comment">// Set vector element.</span></div></div><!-- fragment --> </div> <div class="language-java"> <div class="fragment"><div class="line">Monster monster = Monster.getRootAsMonster(buf);</div><div class="line">monster.mutateHp(10);            <span class="comment">// Set table field.</span></div><div class="line">monster.pos().mutateZ(4);        <span class="comment">// Set struct field.</span></div><div class="line">monster.mutateInventory(0, 1);   <span class="comment">// Set vector element.</span></div></div><!-- fragment --> </div> <div class="language-csharp"> <div class="fragment"><div class="line">var monster = Monster.GetRootAsMonster(buf);</div><div class="line">monster.MutateHp(10);            <span class="comment">// Set table field.</span></div><div class="line">monster.Pos.MutateZ(4);          <span class="comment">// Set struct field.</span></div><div class="line">monster.MutateInventory(0, 1);   <span class="comment">// Set vector element.</span></div></div><!-- fragment --> </div> <div class="language-go"> <div class="fragment"><div class="line">&lt;API for mutating FlatBuffers is not yet available in Go.&gt;</div></div><!-- fragment --> </div> <div class="language-python"> <div class="fragment"><div class="line">&lt;API <span class="keywordflow">for</span> mutating FlatBuffers <span class="keywordflow">is</span> <span class="keywordflow">not</span> yet available <span class="keywordflow">in</span> Python.&gt;</div></div><!-- fragment --> </div> <div class="language-javascript"> <div class="fragment"><div class="line">&lt;API for mutating FlatBuffers is not yet supported in JavaScript.&gt;</div></div><!-- fragment --> </div> <div class="language-typescript"> <div class="fragment"><div class="line">&lt;API for mutating FlatBuffers is not yet supported in TypeScript.&gt;</div></div><!-- fragment --> </div> <div class="language-php"> <div class="fragment"><div class="line">&lt;API <span class="keywordflow">for</span> mutating <a class="code" href="namespace_flat_buffers.html">FlatBuffers</a> is not yet supported in PHP.&gt;</div></div><!-- fragment --> </div> <div class="language-c"> <div class="fragment"><div class="line">&lt;API <span class="keywordflow">for</span> in-place mutating <a class="code" href="namespace_flat_buffers.html">FlatBuffers</a> will not be supported in C</div><div class="line">(except in-place vector sorting is possible).&gt;</div></div><!-- fragment --> </div><p>We use the somewhat verbose term <code>mutate</code> instead of <code>set</code> to indicate that this is a special use case, not to be confused with the default way of constructing FlatBuffer data.</p>
 <p>After the above mutations, you can send on the FlatBuffer to a new recipient without any further work!</p>
 <p>Note that any <code>mutate</code> functions on a table will return a boolean, which is <code>false</code> if the field we're trying to set is not present in the buffer. Fields that are not present if they weren't set, or even if they happen to be equal to the default value. For example, in the creation code above, the <code>mana</code> field is equal to <code>150</code>, which is the default value, so it was never stored in the buffer. Trying to call the corresponding <code>mutate</code> method for <code>mana</code> on such data will return <code>false</code>, and the value won't actually be modified!</p>
 <p>One way to solve this is to call <code>ForceDefaults</code> on a FlatBufferBuilder to force all fields you set to actually be written. This, of course, increases the size of the buffer somewhat, but this may be acceptable for a mutable buffer.</p>
@@ -1162,22 +254,12 @@ $(document).ready(function(){initNavTree('flatbuffers_guide_tutorial.html','');}
 <p>This is often the preferred method to use JSON with FlatBuffers, as it doesn't require you to add any new code to your program. It is also efficient, since you can ship with the binary data. The drawback is that it requires an extra step for your users/developers to perform (although it may be able to be automated as part of your compilation).</p>
 <p>Lets say you have a JSON file that describes your monster. In this example, we will use the file <code>flatbuffers/samples/monsterdata.json</code>.</p>
 <p>Here are the contents of the file:</p>
-<div class="fragment"><div class="line">{</div>
-<div class="line">  pos: {</div>
-<div class="line">    x: 1,</div>
-<div class="line">    y: 2,</div>
-<div class="line">    z: 3</div>
-<div class="line">  },</div>
-<div class="line">  hp: 300,</div>
-<div class="line">  name: <span class="stringliteral">&quot;Orc&quot;</span></div>
-<div class="line">}</div>
-</div><!-- fragment --><p>You can run this file through the <code>flatc</code> compile with the <code>-b</code> flag and our <code>monster.fbs</code> schema to produce a FlatBuffer binary file.</p>
-<div class="fragment"><div class="line">./../flatc -b monster.fbs monsterdata.json</div>
-</div><!-- fragment --><p>The output of this will be a file <code>monsterdata.bin</code>, which will contain the FlatBuffer binary representation of the contents from our <code>.json</code> file.</p>
+<div class="fragment"><div class="line">{</div><div class="line">  pos: {</div><div class="line">    x: 1,</div><div class="line">    y: 2,</div><div class="line">    z: 3</div><div class="line">  },</div><div class="line">  hp: 300,</div><div class="line">  name: &quot;Orc&quot;</div><div class="line">}</div></div><!-- fragment --><p>You can run this file through the <code>flatc</code> compile with the <code>-b</code> flag and our <code>monster.fbs</code> schema to produce a FlatBuffer binary file.</p>
+<div class="fragment"><div class="line">./../flatc -b monster.fbs monsterdata.json</div></div><!-- fragment --><p>The output of this will be a file <code>monsterdata.bin</code>, which will contain the FlatBuffer binary representation of the contents from our <code>.json</code> file.</p>
 <div class="language-cpp"> <em>Note: If you're working in C++, you can also parse JSON at runtime. See the <a class="el" href="flatbuffers_guide_use_cpp.html">Use in C++</a> section of the Programmer's Guide for more information.</em> </div> <div class="language-c"> <em>Note: If you're working in C, the <code>flatcc --json</code> (not <code>flatc</code>) compiler will generate schema specific high performance json parsers and printers that you can compile and use at runtime. The <code>flatc</code> compiler (not <code>flatcc</code>) on the other hand, is still useful for general offline json to flatbuffer conversion from a given schema. There are no current plans for <code>flatcc</code> to support this.</em> </div><h2>Advanced Features for Each Language</h2>
 <p>Each language has a dedicated <code>Use in XXX</code> page in the Programmer's Guide to cover the nuances of FlatBuffers in that language.</p>
 <p>For your chosen language, see:</p>
-<div class="language-cpp"> <a class="el" href="flatbuffers_guide_use_cpp.html">Use in C++</a> </div> <div class="language-java"> <a class="el" href="flatbuffers_guide_use_java_c-sharp.html">Use in Java/C#</a> </div> <div class="language-csharp"> <a class="el" href="flatbuffers_guide_use_java_c-sharp.html">Use in Java/C#</a> </div> <div class="language-go"> <a class="el" href="flatbuffers_guide_use_go.html">Use in Go</a> </div> <div class="language-python"> <a class="el" href="flatbuffers_guide_use_python.html">Use in Python</a> </div> <div class="language-javascript"> <a class="el" href="flatbuffers_guide_use_javascript.html">Use in JavaScript</a> </div> <div class="language-php"> <a class="el" href="flatbuffers_guide_use_php.html">Use in PHP</a> </div> <div class="language-c"> <a class="el" href="flatbuffers_guide_use_c.html">Use in C</a> </div><p><br />
+<div class="language-cpp"> <a class="el" href="flatbuffers_guide_use_cpp.html">Use in C++</a> </div> <div class="language-java"> <a class="el" href="flatbuffers_guide_use_java_c-sharp.html">Use in Java/C#</a> </div> <div class="language-csharp"> <a class="el" href="flatbuffers_guide_use_java_c-sharp.html">Use in Java/C#</a> </div> <div class="language-go"> <a class="el" href="flatbuffers_guide_use_go.html">Use in Go</a> </div> <div class="language-python"> <a class="el" href="flatbuffers_guide_use_python.html">Use in Python</a> </div> <div class="language-javascript"> <a class="el" href="flatbuffers_guide_use_javascript.html">Use in JavaScript</a> </div> <div class="language-typescript"> Use in TypeScript </div> <div class="language-php"> <a class="el" href="flatbuffers_guide_use_php.html">Use in PHP</a> </div> <div class="language-c"> <a class="el" href="flatbuffers_guide_use_c.html">Use in C</a> </div><p><br />
  </p>
 </div></div><!-- contents -->
 </div><!-- doc-content -->
diff --git a/flatbuffers_guide_use_c.html b/flatbuffers_guide_use_c.html
index ccd3ddbb5161ea3c68a4dac30fdaa27e46f362ca..9209ca0a8ac4b9f5d64be325e8c09aa6db32e96e 100644
--- a/flatbuffers_guide_use_c.html
+++ b/flatbuffers_guide_use_c.html
@@ -4,23 +4,21 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <title>FlatBuffers: Use in C</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
 <link href="navtree.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
 <script type="text/javascript" src="navtree.js"></script>
 <script type="text/javascript">
   $(document).ready(initResizable);
-  $(window).load(resizeHeight);
 </script>
 <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
 <script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
-  $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,500italic,700,700italic|Roboto+Mono:400,700" rel="stylesheet">
 <link href="style.css" rel="stylesheet" type="text/css"/>
@@ -46,39 +44,19 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.7 -->
+<!-- Generated by Doxygen 1.8.13 -->
 <script type="text/javascript">
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </script>
-  <div id="navrow1" class="tabs">
-    <ul class="tablist">
-      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
-      <li><a href="usergroup0.html"><span>Programmer's&#160;Guide</span></a></li>
-      <li><a href="flatbuffers_support.html"><span>Platform&#160;/&#160;Language&#160;/&#160;Feature&#160;support</span></a></li>
-      <li><a href="flatbuffers_benchmarks.html"><span>Benchmarks</span></a></li>
-      <li><a href="flatbuffers_white_paper.html"><span>FlatBuffers&#160;white&#160;paper</span></a></li>
-      <li><a href="flatbuffers_internals.html"><span>FlatBuffers&#160;internals</span></a></li>
-      <li><a href="flatbuffers_grammar.html"><span>Grammar&#160;of&#160;the&#160;schema&#160;language</span></a></li>
-      <li><a href="usergroup2.html"><span>API&#160;Reference</span></a></li>
-      <li><a href="contributing.html"><span>Contributing</span></a></li>
-      <li>
-        <div id="MSearchBox" class="MSearchBoxInactive">
-        <span class="left">
-          <img id="MSearchSelect" src="search/mag_sel.png"
-               onmouseover="return searchBox.OnSearchSelectShow()"
-               onmouseout="return searchBox.OnSearchSelectHide()"
-               alt=""/>
-          <input type="text" id="MSearchField" value="Search" accesskey="S"
-               onfocus="searchBox.OnSearchFieldFocus(true)" 
-               onblur="searchBox.OnSearchFieldFocus(false)" 
-               onkeyup="searchBox.OnSearchFieldChange(event)"/>
-          </span><span class="right">
-            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
-          </span>
-        </div>
-      </li>
-    </ul>
-  </div>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -99,7 +77,7 @@ $(document).ready(function(){initNavTree('flatbuffers_guide_use_c.html','');});
      onmouseover="return searchBox.OnSearchSelectShow()"
      onmouseout="return searchBox.OnSearchSelectHide()"
      onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Properties</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+</div>
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
@@ -135,76 +113,11 @@ $(document).ready(function(){initNavTree('flatbuffers_guide_use_c.html','');});
 <p>The monster sample project was specifically written for C99 in order to follow the C++ version and for that reason it will not work with MSVC 2010.</p>
 <h2>Modular Object Creation</h2>
 <p>In the tutorial we used the call <code>Monster_create_as_root</code> to create the root buffer object since this is easier in simple use cases. Sometimes we need more modularity so we can reuse a function to create nested tables and root tables the same way. For this we need the <code>flatcc_builder_buffer_create_call</code>. It is best to keep <code>flatcc_builder</code> calls isolated at the top driver level, so we get:</p>
-<div class="language-c"> <div class="fragment"><div class="line">ns(Monster_ref_t) create_orc(flatcc_builder_t *B)</div>
-<div class="line">{</div>
-<div class="line">  <span class="comment">// ... same as in the tutorial.</span></div>
-<div class="line">  <span class="keywordflow">return</span> s(Monster_create(B, ...));</div>
-<div class="line">}</div>
-<div class="line"></div>
-<div class="line"><span class="keywordtype">void</span> create_monster_buffer()</div>
-<div class="line">{</div>
-<div class="line">    uint8_t *buf;</div>
-<div class="line">    <span class="keywordtype">size_t</span> size;</div>
-<div class="line">    flatcc_builder_t builder, *B;</div>
-<div class="line"></div>
-<div class="line">    <span class="comment">// Initialize the builder object.</span></div>
-<div class="line">    B = &amp;builder;</div>
-<div class="line">    flatcc_builder_init(B);</div>
-<div class="line">    <span class="comment">// Only use `buffer_create` without `create/start/end_as_root`.</span></div>
-<div class="line">    flatcc_builder_buffer_create(create_orc(B));</div>
-<div class="line">    <span class="comment">// Allocate and copy buffer to user memory.</span></div>
-<div class="line">    buf = flatcc_builder_finalize_buffer(B, &amp;size);</div>
-<div class="line">    <span class="comment">// ... write the buffer to disk or network, or something.</span></div>
-<div class="line"></div>
-<div class="line">    free(buf);</div>
-<div class="line">    flatcc_builder_clear(B);</div>
-<div class="line">}</div>
-</div><!-- fragment --> </div><p>The same principle applies with <code>start/end</code> vs <code>start/end_as_root</code> in the top-down approach.</p>
+<div class="language-c"> <div class="fragment"><div class="line">ns(Monster_ref_t) create_orc(flatcc_builder_t *B)</div><div class="line">{</div><div class="line">  <span class="comment">// ... same as in the tutorial.</span></div><div class="line">  <span class="keywordflow">return</span> s(Monster_create(B, ...));</div><div class="line">}</div><div class="line"></div><div class="line"><span class="keywordtype">void</span> create_monster_buffer()</div><div class="line">{</div><div class="line">    uint8_t *buf;</div><div class="line">    <span class="keywordtype">size_t</span> size;</div><div class="line">    flatcc_builder_t builder, *B;</div><div class="line"></div><div class="line">    <span class="comment">// Initialize the builder object.</span></div><div class="line">    B = &amp;builder;</div><div class="line">    flatcc_builder_init(B);</div><div class="line">    <span class="comment">// Only use `buffer_create` without `create/start/end_as_root`.</span></div><div class="line">    flatcc_builder_buffer_create(create_orc(B));</div><div class="line">    <span class="comment">// Allocate and copy buffer to user memory.</span></div><div class="line">    buf = flatcc_builder_finalize_buffer(B, &amp;size);</div><div class="line">    <span class="comment">// ... write the buffer to disk or network, or something.</span></div><div class="line"></div><div class="line">    free(buf);</div><div class="line">    flatcc_builder_clear(B);</div><div class="line">}</div></div><!-- fragment --> </div><p>The same principle applies with <code>start/end</code> vs <code>start/end_as_root</code> in the top-down approach.</p>
 <h2>Top Down Example</h2>
 <p>The tutorial uses a bottom up approach. In C it is also possible to use a top-down approach by starting and ending objects nested within each other. In the tutorial there is no deep nesting, so the difference is limited, but it shows the idea:</p>
 <div class="language-c"> <br />
- </p><div class="fragment"><div class="line">uint8_t treasure[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};</div>
-<div class="line"><span class="keywordtype">size_t</span> treasure_count = c_vec_len(treasure);</div>
-<div class="line">ns(Weapon_ref_t) axe;</div>
-<div class="line"></div>
-<div class="line"><span class="comment">// NOTE: if we use end_as_root, we MUST also start as root.</span></div>
-<div class="line">ns(Monster_start_as_root(B));</div>
-<div class="line">ns(Monster_pos_create(B, 1.0f, 2.0f, 3.0f));</div>
-<div class="line">ns(Monster_hp_add(B, 300));</div>
-<div class="line">ns(Monster_mana_add(B, 150));</div>
-<div class="line"><span class="comment">// We use create_str instead of add because we have no existing string reference.</span></div>
-<div class="line">ns(Monster_name_create_str(B, &quot;Orc&quot;));</div>
-<div class="line"><span class="comment">// Again we use create because we no existing vector object, only a C-array.</span></div>
-<div class="line">ns(Monster_inventory_create(B, treasure, treasure_count));</div>
-<div class="line">ns(Monster_color_add(B, ns(Color_Red)));</div>
-<div class="line">if (1) {</div>
-<div class="line">    ns(Monster_weapons_start(B));</div>
-<div class="line">    ns(Monster_weapons_push_create(B, flatbuffers_string_create_str(B, <span class="stringliteral">&quot;Sword&quot;</span>), 3));</div>
-<div class="line">    <span class="comment">// We reuse the axe object later. Note that we dereference a pointer</span></div>
-<div class="line">    <span class="comment">// because push always returns a short-term pointer to the stored element.</span></div>
-<div class="line">    <span class="comment">// We could also have created the axe object first and simply pushed it.</span></div>
-<div class="line">    axe = *ns(Monster_weapons_push_create(B, flatbuffers_string_create_str(B, <span class="stringliteral">&quot;Axe&quot;</span>), 5));</div>
-<div class="line">    ns(Monster_weapons_end(B));</div>
-<div class="line">} <span class="keywordflow">else</span> {</div>
-<div class="line">    <span class="comment">// We can have more control with the table elements added to a vector:</span></div>
-<div class="line">    <span class="comment">//</span></div>
-<div class="line">    ns(Monster_weapons_start(B));</div>
-<div class="line">    ns(Monster_weapons_push_start(B));</div>
-<div class="line">    ns(Weapon_name_create_str(B, <span class="stringliteral">&quot;Sword&quot;</span>));</div>
-<div class="line">    ns(Weapon_damage_add(B, 3));</div>
-<div class="line">    ns(Monster_weapons_push_end(B));</div>
-<div class="line">    ns(Monster_weapons_push_start(B));</div>
-<div class="line">    ns(Monster_weapons_push_start(B));</div>
-<div class="line">    ns(Weapon_name_create_str(B, <span class="stringliteral">&quot;Axe&quot;</span>));</div>
-<div class="line">    ns(Weapon_damage_add(B, 5));</div>
-<div class="line">    axe = *ns(Monster_weapons_push_end(B));</div>
-<div class="line">    ns(Monster_weapons_end(B));</div>
-<div class="line">}</div>
-<div class="line"><span class="comment">// Unions can get their type by using a type-specific add/create/start method.</span></div>
-<div class="line">ns(Monster_equipped_Weapon_add(B, axe));</div>
-<div class="line"></div>
-<div class="line">ns(Monster_end_as_root(B));</div>
-</div><!-- fragment --> </div><h2>Basic Reflection</h2>
+ <div class="fragment"><div class="line">uint8_t treasure[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};</div><div class="line"><span class="keywordtype">size_t</span> treasure_count = c_vec_len(treasure);</div><div class="line">ns(Weapon_ref_t) axe;</div><div class="line"></div><div class="line"><span class="comment">// NOTE: if we use end_as_root, we MUST also start as root.</span></div><div class="line">ns(Monster_start_as_root(B));</div><div class="line">ns(Monster_pos_create(B, 1.0f, 2.0f, 3.0f));</div><div class="line">ns(Monster_hp_add(B, 300));</div><div class="line">ns(Monster_mana_add(B, 150));</div><div class="line"><span class="comment">// We use create_str instead of add because we have no existing string reference.</span></div><div class="line">ns(Monster_name_create_str(B, <span class="stringliteral">&quot;Orc&quot;</span>));</div><div class="line"><span class="comment">// Again we use create because we no existing vector object, only a C-array.</span></div><div class="line">ns(Monster_inventory_create(B, treasure, treasure_count));</div><div class="line">ns(Monster_color_add(B, ns(Color_Red)));</div><div class="line"><span class="keywordflow">if</span> (1) {</div><div class="line">    ns(Monster_weapons_start(B));</div><div class="line">    ns(Monster_weapons_push_create(B, flatbuffers_string_create_str(B, <span class="stringliteral">&quot;Sword&quot;</span>), 3));</div><div class="line">    <span class="comment">// We reuse the axe object later. Note that we dereference a pointer</span></div><div class="line">    <span class="comment">// because push always returns a short-term pointer to the stored element.</span></div><div class="line">    <span class="comment">// We could also have created the axe object first and simply pushed it.</span></div><div class="line">    axe = *ns(Monster_weapons_push_create(B, flatbuffers_string_create_str(B, <span class="stringliteral">&quot;Axe&quot;</span>), 5));</div><div class="line">    ns(Monster_weapons_end(B));</div><div class="line">} <span class="keywordflow">else</span> {</div><div class="line">    <span class="comment">// We can have more control with the table elements added to a vector:</span></div><div class="line">    <span class="comment">//</span></div><div class="line">    ns(Monster_weapons_start(B));</div><div class="line">    ns(Monster_weapons_push_start(B));</div><div class="line">    ns(Weapon_name_create_str(B, <span class="stringliteral">&quot;Sword&quot;</span>));</div><div class="line">    ns(Weapon_damage_add(B, 3));</div><div class="line">    ns(Monster_weapons_push_end(B));</div><div class="line">    ns(Monster_weapons_push_start(B));</div><div class="line">    ns(Monster_weapons_push_start(B));</div><div class="line">    ns(Weapon_name_create_str(B, <span class="stringliteral">&quot;Axe&quot;</span>));</div><div class="line">    ns(Weapon_damage_add(B, 5));</div><div class="line">    axe = *ns(Monster_weapons_push_end(B));</div><div class="line">    ns(Monster_weapons_end(B));</div><div class="line">}</div><div class="line"><span class="comment">// Unions can get their type by using a type-specific add/create/start method.</span></div><div class="line">ns(Monster_equipped_Weapon_add(B, axe));</div><div class="line"></div><div class="line">ns(Monster_end_as_root(B));</div></div><!-- fragment --> </div><h2>Basic Reflection</h2>
 <p>The C-API does support reading binary schema (.bfbs) files via code generated from the <code>reflection.fbs</code> schema, and an <a href="https://github.com/dvidelabs/flatcc/tree/master/samples/reflection">example usage</a> shows how to use this. The reflection schema files are pre-generated in the <a href="https://github.com/dvidelabs/flatcc/tree/master/include/flatcc/reflection">runtime distribution</a>.</p>
 <h2>Mutations and Reflection</h2>
 <p>The C-API does not support mutating reflection like C++ does, nor does the reader interface support mutating scalars (and it is generally unsafe to do so even after verification).</p>
@@ -216,19 +129,10 @@ $(document).ready(function(){initNavTree('flatbuffers_guide_use_c.html','');});
 <p>The <code>FLATBUFFERS_WRAP_NAMESPACE</code> approach used in the tutorial is convenient when each function has a very long namespace prefix. But it isn't always the best approach. If the namespace is absent, or simple and informative, we might as well use the prefix directly. The <a href="https://github.com/dvidelabs/flatcc/blob/master/samples/reflection/bfbs2json.c">reflection example</a> mentioned above uses this approach.</p>
 <h2>Checking for Present Members</h2>
 <p>Not all languages support testing if a field is present, but in C we can elaborate the reader section of the tutorial with tests for this. Recall that <code>mana</code> was set to the default value <code>150</code> and therefore shouldn't be present.</p>
-<div class="language-c"> <div class="fragment"><div class="line"><span class="keywordtype">int</span> hp_present = ns(Monster_hp_is_present(monster)); <span class="comment">// 1</span></div>
-<div class="line"><span class="keywordtype">int</span> mana_present = ns(Monster_mana_is_present(monster)); <span class="comment">// 0</span></div>
-</div><!-- fragment --> </div><h2>Alternative ways to add a Union</h2>
+<div class="language-c"> <div class="fragment"><div class="line"><span class="keywordtype">int</span> hp_present = ns(Monster_hp_is_present(monster)); <span class="comment">// 1</span></div><div class="line"><span class="keywordtype">int</span> mana_present = ns(Monster_mana_is_present(monster)); <span class="comment">// 0</span></div></div><!-- fragment --> </div><h2>Alternative ways to add a Union</h2>
 <p>In the tutorial we used a single call to add a union. Here we show different ways to accomplish the same thing. The last form is rarely used, but is the low-level way to do it. It can be used to group small values together in the table by adding type and data at different points in time.</p>
-<div class="language-c"> <div class="fragment"><div class="line">ns(Equipment_union_ref_t) equipped = ns(Equipment_as_Weapon(axe));</div>
-<div class="line">ns(Monster_equipped_add(B, equipped));</div>
-<div class="line"><span class="comment">// or alternatively</span></div>
-<div class="line">ns(Monster_equipped_Weapon_add(B, axe);</div>
-<div class="line"><span class="comment">// or alternatively</span></div>
-<div class="line">ns(Monster_equipped_add_type(B, ns(Equipment_Weapon));</div>
-<div class="line">ns(Monster_equipped_add_member(B, axe));</div>
-</div><!-- fragment --> </div><h2>Why not integrate with the <code>flatc</code> tool?</h2>
-<p><a href="https://github.com/dvidelabs/flatcc/issues/1">It was considered how the C code generator could be integrated into the `flatc` tool</a>, but it would either require that the standalone C implementation of the schema compiler was dropped, or it would lead to excessive code duplication, or a complicated intermediate representation would have to be invented. Neither of these alternatives are very attractive, and it isn't a big deal to use the <code>flatcc</code> tool instead of <code>flatc</code> given that the FlatBuffers C runtime library needs to be made available regardless. </p>
+<div class="language-c"> <div class="fragment"><div class="line">ns(Equipment_union_ref_t) equipped = ns(Equipment_as_Weapon(axe));</div><div class="line">ns(Monster_equipped_add(B, equipped));</div><div class="line"><span class="comment">// or alternatively</span></div><div class="line">ns(Monster_equipped_Weapon_add(B, axe);</div><div class="line"><span class="comment">// or alternatively</span></div><div class="line">ns(Monster_equipped_add_type(B, ns(Equipment_Weapon));</div><div class="line">ns(Monster_equipped_add_member(B, axe));</div></div><!-- fragment --> </div><h2>Why not integrate with the <code>flatc</code> tool?</h2>
+<p><a href="https://github.com/dvidelabs/flatcc/issues/1">It was considered how the C code generator could be integrated into the <code>flatc</code> tool</a>, but it would either require that the standalone C implementation of the schema compiler was dropped, or it would lead to excessive code duplication, or a complicated intermediate representation would have to be invented. Neither of these alternatives are very attractive, and it isn't a big deal to use the <code>flatcc</code> tool instead of <code>flatc</code> given that the FlatBuffers C runtime library needs to be made available regardless. </p>
 </div></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- Google Analytics -->
diff --git a/flatbuffers_guide_use_cpp.html b/flatbuffers_guide_use_cpp.html
index 3a0d527ce68e801a6d900d53396ede0c81fa6faf..b76d2d869e53180bedb45e4d4ce40739b9f4bdc8 100644
--- a/flatbuffers_guide_use_cpp.html
+++ b/flatbuffers_guide_use_cpp.html
@@ -4,23 +4,21 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <title>FlatBuffers: Use in C++</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
 <link href="navtree.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
 <script type="text/javascript" src="navtree.js"></script>
 <script type="text/javascript">
   $(document).ready(initResizable);
-  $(window).load(resizeHeight);
 </script>
 <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
 <script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
-  $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,500italic,700,700italic|Roboto+Mono:400,700" rel="stylesheet">
 <link href="style.css" rel="stylesheet" type="text/css"/>
@@ -46,39 +44,19 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.7 -->
+<!-- Generated by Doxygen 1.8.13 -->
 <script type="text/javascript">
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </script>
-  <div id="navrow1" class="tabs">
-    <ul class="tablist">
-      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
-      <li><a href="usergroup0.html"><span>Programmer's&#160;Guide</span></a></li>
-      <li><a href="flatbuffers_support.html"><span>Platform&#160;/&#160;Language&#160;/&#160;Feature&#160;support</span></a></li>
-      <li><a href="flatbuffers_benchmarks.html"><span>Benchmarks</span></a></li>
-      <li><a href="flatbuffers_white_paper.html"><span>FlatBuffers&#160;white&#160;paper</span></a></li>
-      <li><a href="flatbuffers_internals.html"><span>FlatBuffers&#160;internals</span></a></li>
-      <li><a href="flatbuffers_grammar.html"><span>Grammar&#160;of&#160;the&#160;schema&#160;language</span></a></li>
-      <li><a href="usergroup2.html"><span>API&#160;Reference</span></a></li>
-      <li><a href="contributing.html"><span>Contributing</span></a></li>
-      <li>
-        <div id="MSearchBox" class="MSearchBoxInactive">
-        <span class="left">
-          <img id="MSearchSelect" src="search/mag_sel.png"
-               onmouseover="return searchBox.OnSearchSelectShow()"
-               onmouseout="return searchBox.OnSearchSelectHide()"
-               alt=""/>
-          <input type="text" id="MSearchField" value="Search" accesskey="S"
-               onfocus="searchBox.OnSearchFieldFocus(true)" 
-               onblur="searchBox.OnSearchFieldFocus(false)" 
-               onkeyup="searchBox.OnSearchFieldChange(event)"/>
-          </span><span class="right">
-            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
-          </span>
-        </div>
-      </li>
-    </ul>
-  </div>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -99,7 +77,7 @@ $(document).ready(function(){initNavTree('flatbuffers_guide_use_cpp.html','');})
      onmouseover="return searchBox.OnSearchSelectShow()"
      onmouseout="return searchBox.OnSearchSelectHide()"
      onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Properties</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+</div>
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
@@ -129,44 +107,27 @@ $(document).ready(function(){initNavTree('flatbuffers_guide_use_cpp.html','');})
 <p>FlatBuffers supports both reading and writing FlatBuffers in C++.</p>
 <p>To use FlatBuffers in your code, first generate the C++ classes from your schema with the <code>--cpp</code> option to <code>flatc</code>. Then you can include both FlatBuffers and the generated code to read or write FlatBuffers.</p>
 <p>For example, here is how you would read a FlatBuffer binary file in C++: First, include the library and generated code. Then read the file into a <code>char *</code> array, which you pass to <code>GetMonster()</code>.</p>
-<div class="fragment"><div class="line"><span class="preprocessor">#include &quot;flatbuffers/flatbuffers.h&quot;</span></div>
-<div class="line"><span class="preprocessor">#include &quot;monster_test_generate.h&quot;</span></div>
-<div class="line"><span class="preprocessor">#include &lt;cstdio&gt;</span> <span class="comment">// For printing and file access.</span></div>
-<div class="line"></div>
-<div class="line">FILE* file = fopen(<span class="stringliteral">&quot;monsterdata_test.mon&quot;</span>, <span class="stringliteral">&quot;rb&quot;</span>);</div>
-<div class="line">fseek(file, 0L, SEEK_END);</div>
-<div class="line"><span class="keywordtype">int</span> length = ftell(file);</div>
-<div class="line">fseek(file, 0L, SEEK_SET);</div>
-<div class="line"><span class="keywordtype">char</span> *data = <span class="keyword">new</span> <span class="keywordtype">char</span>[length];</div>
-<div class="line">fread(data, <span class="keyword">sizeof</span>(<span class="keywordtype">char</span>), length, file);</div>
-<div class="line">fclose(file);</div>
-<div class="line"></div>
-<div class="line"><span class="keyword">auto</span> monster = GetMonster(data);</div>
-</div><!-- fragment --><p><code>monster</code> is of type <code>Monster *</code>, and points to somewhere <em>inside</em> your buffer (root object pointers are not the same as <code>buffer_pointer</code> !). If you look in your generated header, you'll see it has convenient accessors for all fields, e.g. <code>hp()</code>, <code>mana()</code>, etc:</p>
-<div class="fragment"><div class="line">printf(<span class="stringliteral">&quot;%d\n&quot;</span>, monster-&gt;hp());            <span class="comment">// `80`</span></div>
-<div class="line">printf(<span class="stringliteral">&quot;%d\n&quot;</span>, monster-&gt;mana());          <span class="comment">// default value of `150`</span></div>
-<div class="line">printf(<span class="stringliteral">&quot;%s\n&quot;</span>, monster-&gt;name()-&gt;c_str()); <span class="comment">// &quot;MyMonster&quot;</span></div>
-</div><!-- fragment --><p><em>Note: That we never stored a <code>mana</code> value, so it will return the default.</em></p>
+<div class="fragment"><div class="line"><span class="preprocessor">#include &quot;flatbuffers/flatbuffers.h&quot;</span></div><div class="line"><span class="preprocessor">#include &quot;monster_test_generate.h&quot;</span></div><div class="line"><span class="preprocessor">#include &lt;cstdio&gt;</span> <span class="comment">// For printing and file access.</span></div><div class="line"></div><div class="line">FILE* file = fopen(<span class="stringliteral">&quot;monsterdata_test.mon&quot;</span>, <span class="stringliteral">&quot;rb&quot;</span>);</div><div class="line">fseek(file, 0L, SEEK_END);</div><div class="line"><span class="keywordtype">int</span> length = ftell(file);</div><div class="line">fseek(file, 0L, SEEK_SET);</div><div class="line"><span class="keywordtype">char</span> *data = <span class="keyword">new</span> <span class="keywordtype">char</span>[length];</div><div class="line">fread(data, <span class="keyword">sizeof</span>(<span class="keywordtype">char</span>), length, file);</div><div class="line">fclose(file);</div><div class="line"></div><div class="line"><span class="keyword">auto</span> monster = GetMonster(data);</div></div><!-- fragment --><p><code>monster</code> is of type <code>Monster *</code>, and points to somewhere <em>inside</em> your buffer (root object pointers are not the same as <code>buffer_pointer</code> !). If you look in your generated header, you'll see it has convenient accessors for all fields, e.g. <code>hp()</code>, <code>mana()</code>, etc:</p>
+<div class="fragment"><div class="line">printf(<span class="stringliteral">&quot;%d\n&quot;</span>, monster-&gt;hp());            <span class="comment">// `80`</span></div><div class="line">printf(<span class="stringliteral">&quot;%d\n&quot;</span>, monster-&gt;mana());          <span class="comment">// default value of `150`</span></div><div class="line">printf(<span class="stringliteral">&quot;%s\n&quot;</span>, monster-&gt;name()-&gt;c_str()); <span class="comment">// &quot;MyMonster&quot;</span></div></div><!-- fragment --><p><em>Note: That we never stored a <code>mana</code> value, so it will return the default.</em></p>
 <p>FlatBuffers is all about memory efficiency, which is why its base API is written around using as little as possible of it. This does make the API clumsier (requiring pre-order construction of all data, and making mutation harder).</p>
 <p>For times when efficiency is less important a more convenient object based API can be used (through <code>--gen-object-api</code>) that is able to unpack &amp; pack a FlatBuffer into objects and standard STL containers, allowing for convenient construction, access and mutation.</p>
 <p>To use:</p>
-<div class="fragment"><div class="line"><span class="comment">// Autogenerated class from table Monster.</span></div>
-<div class="line">MonsterT monsterobj;</div>
-<div class="line"></div>
-<div class="line"><span class="comment">// Deserialize from buffer into object.</span></div>
-<div class="line">UnPackTo(&amp;monsterobj, flatbuffer);</div>
-<div class="line"></div>
-<div class="line"><span class="comment">// Update object directly like a C++ class instance.</span></div>
-<div class="line">cout &lt;&lt; monsterobj-&gt;name;  <span class="comment">// This is now a std::string!</span></div>
-<div class="line">monsterobj-&gt;name = <span class="stringliteral">&quot;Bob&quot;</span>;  <span class="comment">// Change the name.</span></div>
-<div class="line"></div>
-<div class="line"><span class="comment">// Serialize into new flatbuffer.</span></div>
-<div class="line">FlatBufferBuilder fbb;</div>
-<div class="line">Pack(fbb, &amp;monsterobj);</div>
-</div><!-- fragment --><p>The following attributes are specific to the object-based API code generation:</p>
+<div class="fragment"><div class="line"><span class="comment">// Autogenerated class from table Monster.</span></div><div class="line">MonsterT monsterobj;</div><div class="line"></div><div class="line"><span class="comment">// Deserialize from buffer into object.</span></div><div class="line">UnPackTo(&amp;monsterobj, flatbuffer);</div><div class="line"></div><div class="line"><span class="comment">// Update object directly like a C++ class instance.</span></div><div class="line">cout &lt;&lt; monsterobj-&gt;name;  <span class="comment">// This is now a std::string!</span></div><div class="line">monsterobj-&gt;name = <span class="stringliteral">&quot;Bob&quot;</span>;  <span class="comment">// Change the name.</span></div><div class="line"></div><div class="line"><span class="comment">// Serialize into new flatbuffer.</span></div><div class="line">FlatBufferBuilder fbb;</div><div class="line">Pack(fbb, &amp;monsterobj);</div></div><!-- fragment --><p>The following attributes are specific to the object-based API code generation:</p>
 <ul>
 <li><code>native_inline</code> (on a field): Because FlatBuffer tables and structs are optionally present in a given buffer, they are best represented as pointers (specifically std::unique_ptrs) in the native class since they can be null. This attribute changes the member declaration to use the type directly rather than wrapped in a unique_ptr.</li>
 <li><code>native_default</code>: "value" (on a field): For members that are declared "native_inline", the value specified with this attribute will be included verbatim in the class constructor initializer list for this member.</li>
+<li><p class="startli"><code>native_custom_alloc</code>:"custom_allocator" (on a table or struct): When using the object-based API all generated NativeTables that are allocated when unpacking your flatbuffer will use "custom allocator". The allocator is also used by any std::vector that appears in a table defined with <code>native_custom_alloc</code>. This can be used to provide allocation from a pool for example, for faster unpacking when using the object-based API.</p>
+<p class="startli">Minimal Example:</p>
+<p class="startli">schema:</p>
+<p class="startli">table mytable(native_custom_alloc:"custom_allocator") { ... }</p>
+<p class="startli">with custom_allocator defined before flatbuffers.h is included, as:</p>
+<p class="startli">template &lt;typename t&gt;=""&gt; struct custom_allocator : public std::allocator&lt;T&gt; {</p>
+<p class="startli">typedef T *pointer;</p>
+<p class="startli">template &lt;class u&gt;=""&gt; struct rebind { typedef custom_allocator&lt;U&gt; other; };</p>
+<p class="startli">pointer allocate(const std::size_t n) { return std::allocator&lt;T&gt;::allocate(n); }</p>
+<p class="startli">void deallocate(T* ptr, std::size_t n) { return std::allocator&lt;T&gt;::deallocate(ptr,n); }</p>
+<p class="startli">custom_allocator() throw() {} template &lt;class u&gt;=""&gt; custom_allocator(const custom_allocator&lt;U&gt;&amp;) throw() {} };</p>
+</li>
 <li><p class="startli"><code>native_type</code>' "type" (on a struct): In some cases, a more optimal C++ data type exists for a given struct. For example, the following schema:</p>
 <p class="startli">struct Vec2 { x: float; y: float; }</p>
 <p class="startli">generates the following Object-Based API class:</p>
@@ -214,7 +175,7 @@ $(document).ready(function(){initNavTree('flatbuffers_guide_use_cpp.html','');})
 </ul>
 <h2>Direct memory access</h2>
 <p>As you can see from the above examples, all elements in a buffer are accessed through generated accessors. This is because everything is stored in little endian format on all platforms (the accessor performs a swap operation on big endian machines), and also because the layout of things is generally not known to the user.</p>
-<p>For structs, layout is deterministic and guaranteed to be the same accross platforms (scalars are aligned to their own size, and structs themselves to their largest member), and you are allowed to access this memory directly by using <code>sizeof()</code> and <code>memcpy</code> on the pointer to a struct, or even an array of structs.</p>
+<p>For structs, layout is deterministic and guaranteed to be the same across platforms (scalars are aligned to their own size, and structs themselves to their largest member), and you are allowed to access this memory directly by using <code>sizeof()</code> and <code>memcpy</code> on the pointer to a struct, or even an array of structs.</p>
 <p>To compute offsets to sub-elements of a struct, make sure they are a structs themselves, as then you can use the pointers to figure out the offset without having to hardcode it. This is handy for use of arrays of structs with calls like <code>glVertexAttribPointer</code> in OpenGL or similar APIs.</p>
 <p>It is important to note is that structs are still little endian on all machines, so only use tricks like this if you can guarantee you're not shipping on a big endian machine (an <code>assert(FLATBUFFERS_LITTLEENDIAN)</code> would be wise).</p>
 <h2>Access of untrusted buffers</h2>
@@ -222,8 +183,7 @@ $(document).ready(function(){initNavTree('flatbuffers_guide_use_cpp.html','');})
 <p>When you're processing large amounts of data from a source you know (e.g. your own generated data on disk), this is acceptable, but when reading data from the network that can potentially have been modified by an attacker, this is undesirable.</p>
 <p>For this reason, you can optionally use a buffer verifier before you access the data. This verifier will check all offsets, all sizes of fields, and null termination of strings to ensure that when a buffer is accessed, all reads will end up inside the buffer.</p>
 <p>Each root type will have a verification function generated for it, e.g. for <code>Monster</code>, you can call:</p>
-<div class="fragment"><div class="line"><span class="keywordtype">bool</span> ok = VerifyMonsterBuffer(Verifier(buf, len));</div>
-</div><!-- fragment --><p>if <code>ok</code> is true, the buffer is safe to read.</p>
+<div class="fragment"><div class="line"><span class="keywordtype">bool</span> ok = VerifyMonsterBuffer(Verifier(buf, len));</div></div><!-- fragment --><p>if <code>ok</code> is true, the buffer is safe to read.</p>
 <p>Besides untrusted data, this function may be useful to call in debug mode, as extra insurance against data being corrupted somewhere along the way.</p>
 <p>While verifying a buffer isn't "free", it is typically faster than a full traversal (since any scalar data is not actually touched), and since it may cause the buffer to be brought into cache before reading, the actual overhead may be even lower than expected.</p>
 <p>In specialized cases where a denial of service attack is possible, the verifier has two additional constructor arguments that allow you to limit the nesting depth and total amount of tables the verifier may encounter before declaring the buffer malformed. The default is <code>Verifier(buf, len, 64 /* max depth */, 1000000, /* max tables */)</code> which should be sufficient for most uses.</p>
@@ -240,10 +200,8 @@ $(document).ready(function(){initNavTree('flatbuffers_guide_use_cpp.html','');})
 <p>This option is currently only available for C++, or Java through JNI.</p>
 <p>As mentioned in the section "Building" above, this technique requires you to link a few more files into your program, and you'll want to include <code>flatbuffers/idl.h</code>.</p>
 <p>Load text (either a schema or json) into an in-memory buffer (there is a convenient <code>LoadFile()</code> utility function in <code>flatbuffers/util.h</code> if you wish). Construct a parser:</p>
-<div class="fragment"><div class="line">flatbuffers::Parser parser;</div>
-</div><!-- fragment --><p>Now you can parse any number of text files in sequence:</p>
-<div class="fragment"><div class="line">parser.Parse(text_file.c_str());</div>
-</div><!-- fragment --><p>This works similarly to how the command-line compiler works: a sequence of files parsed by the same <code>Parser</code> object allow later files to reference definitions in earlier files. Typically this means you first load a schema file (which populates <code>Parser</code> with definitions), followed by one or more JSON files.</p>
+<div class="fragment"><div class="line">flatbuffers::Parser parser;</div></div><!-- fragment --><p>Now you can parse any number of text files in sequence:</p>
+<div class="fragment"><div class="line">parser.Parse(text_file.c_str());</div></div><!-- fragment --><p>This works similarly to how the command-line compiler works: a sequence of files parsed by the same <code>Parser</code> object allow later files to reference definitions in earlier files. Typically this means you first load a schema file (which populates <code>Parser</code> with definitions), followed by one or more JSON files.</p>
 <p>As optional argument to <code>Parse</code>, you may specify a null-terminated list of include paths. If not specified, any include statements try to resolve from the current directory.</p>
 <p>If there were any parsing errors, <code>Parse</code> will return <code>false</code>, and <code>Parser::err</code> contains a human readable error string with a line number etc, which you should present to the creator of that file.</p>
 <p>After each JSON file, the <code>Parser::fbb</code> member variable is the <code>FlatBufferBuilder</code> that contains the binary buffer version of that file, that you can access as described above.</p>
diff --git a/flatbuffers_guide_use_go.html b/flatbuffers_guide_use_go.html
index 911b68fe9774471fe9ceab883483b7987f62074d..4f7a1f4fc6a5c05fe2ce7cb12798eff8aa82e39e 100644
--- a/flatbuffers_guide_use_go.html
+++ b/flatbuffers_guide_use_go.html
@@ -4,23 +4,21 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <title>FlatBuffers: Use in Go</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
 <link href="navtree.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
 <script type="text/javascript" src="navtree.js"></script>
 <script type="text/javascript">
   $(document).ready(initResizable);
-  $(window).load(resizeHeight);
 </script>
 <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
 <script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
-  $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,500italic,700,700italic|Roboto+Mono:400,700" rel="stylesheet">
 <link href="style.css" rel="stylesheet" type="text/css"/>
@@ -46,39 +44,19 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.7 -->
+<!-- Generated by Doxygen 1.8.13 -->
 <script type="text/javascript">
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </script>
-  <div id="navrow1" class="tabs">
-    <ul class="tablist">
-      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
-      <li><a href="usergroup0.html"><span>Programmer's&#160;Guide</span></a></li>
-      <li><a href="flatbuffers_support.html"><span>Platform&#160;/&#160;Language&#160;/&#160;Feature&#160;support</span></a></li>
-      <li><a href="flatbuffers_benchmarks.html"><span>Benchmarks</span></a></li>
-      <li><a href="flatbuffers_white_paper.html"><span>FlatBuffers&#160;white&#160;paper</span></a></li>
-      <li><a href="flatbuffers_internals.html"><span>FlatBuffers&#160;internals</span></a></li>
-      <li><a href="flatbuffers_grammar.html"><span>Grammar&#160;of&#160;the&#160;schema&#160;language</span></a></li>
-      <li><a href="usergroup2.html"><span>API&#160;Reference</span></a></li>
-      <li><a href="contributing.html"><span>Contributing</span></a></li>
-      <li>
-        <div id="MSearchBox" class="MSearchBoxInactive">
-        <span class="left">
-          <img id="MSearchSelect" src="search/mag_sel.png"
-               onmouseover="return searchBox.OnSearchSelectShow()"
-               onmouseout="return searchBox.OnSearchSelectHide()"
-               alt=""/>
-          <input type="text" id="MSearchField" value="Search" accesskey="S"
-               onfocus="searchBox.OnSearchFieldFocus(true)" 
-               onblur="searchBox.OnSearchFieldFocus(false)" 
-               onkeyup="searchBox.OnSearchFieldChange(event)"/>
-          </span><span class="right">
-            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
-          </span>
-        </div>
-      </li>
-    </ul>
-  </div>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -99,7 +77,7 @@ $(document).ready(function(){initNavTree('flatbuffers_guide_use_go.html','');});
      onmouseover="return searchBox.OnSearchSelectShow()"
      onmouseout="return searchBox.OnSearchSelectHide()"
      onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Properties</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+</div>
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
@@ -129,36 +107,9 @@ blob/master/tests/GoTest.sh">GoTest.sh</a> shell script.</p>
 <p>FlatBuffers supports reading and writing binary FlatBuffers in Go.</p>
 <p>To use FlatBuffers in your own code, first generate Go classes from your schema with the <code>--go</code> option to <code>flatc</code>. Then you can include both FlatBuffers and the generated code to read or write a FlatBuffer.</p>
 <p>For example, here is how you would read a FlatBuffer binary file in Go: First, include the library and generated code. Then read a FlatBuffer binary file into a <code>[]byte</code>, which you pass to the <code>GetRootAsMonster</code> function:</p>
-<div class="fragment"><div class="line"><span class="keyword">import</span> (</div>
-<div class="line">   example <span class="stringliteral">&quot;MyGame/Example&quot;</span></div>
-<div class="line">   flatbuffers <span class="stringliteral">&quot;github.com/google/flatbuffers/go&quot;</span></div>
-<div class="line"></div>
-<div class="line">   io/ioutil</div>
-<div class="line">)</div>
-<div class="line"></div>
-<div class="line">buf, err := ioutil.ReadFile(<span class="stringliteral">&quot;monster.dat&quot;</span>)</div>
-<div class="line"><span class="comment">// handle err</span></div>
-<div class="line">monster := example.GetRootAsMonster(buf, 0)</div>
-</div><!-- fragment --><p>Now you can access values like this:</p>
-<div class="fragment"><div class="line">hp := monster.Hp()</div>
-<div class="line">pos := monster.Pos(nil)</div>
-</div><!-- fragment --><p>In some cases it's necessary to modify values in an existing FlatBuffer in place (without creating a copy). For this reason, scalar fields of a Flatbuffer table or struct can be mutated.</p>
-<div class="fragment"><div class="line">monster := example.GetRootAsMonster(buf, 0)</div>
-<div class="line"></div>
-<div class="line"><span class="comment">// Set table field.</span></div>
-<div class="line"><span class="keywordflow">if</span> ok := monster.MutateHp(10); !ok {</div>
-<div class="line">  panic(<span class="stringliteral">&quot;failed to mutate Hp&quot;</span>)</div>
-<div class="line">}</div>
-<div class="line"></div>
-<div class="line"><span class="comment">// Set struct field.</span></div>
-<div class="line">monster.Pos().MutateZ(4)</div>
-<div class="line"></div>
-<div class="line"><span class="comment">// This mutation will fail because the mana field is not available in</span></div>
-<div class="line"><span class="comment">// the buffer. It should be set when creating the buffer.</span></div>
-<div class="line"><span class="keywordflow">if</span> ok := monster.MutateMana(20); !ok {</div>
-<div class="line">  panic(<span class="stringliteral">&quot;failed to mutate Hp&quot;</span>)</div>
-<div class="line">}</div>
-</div><!-- fragment --><p>The term <code>mutate</code> is used instead of <code>set</code> to indicate that this is a special use case. All mutate functions return a boolean value which is false if the field we're trying to mutate is not available in the buffer.</p>
+<div class="fragment"><div class="line">import (</div><div class="line">   example &quot;MyGame/Example&quot;</div><div class="line">   flatbuffers &quot;github.com/google/flatbuffers/go&quot;</div><div class="line"></div><div class="line">   io/ioutil</div><div class="line">)</div><div class="line"></div><div class="line">buf, err := ioutil.ReadFile(&quot;monster.dat&quot;)</div><div class="line">// handle err</div><div class="line">monster := example.GetRootAsMonster(buf, 0)</div></div><!-- fragment --><p>Now you can access values like this:</p>
+<div class="fragment"><div class="line">hp := monster.Hp()</div><div class="line">pos := monster.Pos(nil)</div></div><!-- fragment --><p>In some cases it's necessary to modify values in an existing FlatBuffer in place (without creating a copy). For this reason, scalar fields of a Flatbuffer table or struct can be mutated.</p>
+<div class="fragment"><div class="line">monster := example.GetRootAsMonster(buf, 0)</div><div class="line"></div><div class="line">// Set table field.</div><div class="line">if ok := monster.MutateHp(10); !ok {</div><div class="line">  panic(&quot;failed to mutate Hp&quot;)</div><div class="line">}</div><div class="line"></div><div class="line">// Set struct field.</div><div class="line">monster.Pos().MutateZ(4)</div><div class="line"></div><div class="line">// This mutation will fail because the mana field is not available in</div><div class="line">// the buffer. It should be set when creating the buffer.</div><div class="line">if ok := monster.MutateMana(20); !ok {</div><div class="line">  panic(&quot;failed to mutate Hp&quot;)</div><div class="line">}</div></div><!-- fragment --><p>The term <code>mutate</code> is used instead of <code>set</code> to indicate that this is a special use case. All mutate functions return a boolean value which is false if the field we're trying to mutate is not available in the buffer.</p>
 <h2>Text Parsing</h2>
 <p>There currently is no support for parsing text (Schema's and JSON) directly from Go, though you could use the C++ parser through cgo. Please see the C++ documentation for more on text parsing.</p>
 <p><br />
diff --git a/flatbuffers_guide_use_java_c-sharp.html b/flatbuffers_guide_use_java_c-sharp.html
index 432df2b02f4a316e442aca6ab9c1dc8975e2d587..1be48e03f1e7c74e48c753bc8efacc06af84553a 100644
--- a/flatbuffers_guide_use_java_c-sharp.html
+++ b/flatbuffers_guide_use_java_c-sharp.html
@@ -4,23 +4,21 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <title>FlatBuffers: Use in Java/C#</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
 <link href="navtree.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
 <script type="text/javascript" src="navtree.js"></script>
 <script type="text/javascript">
   $(document).ready(initResizable);
-  $(window).load(resizeHeight);
 </script>
 <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
 <script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
-  $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,500italic,700,700italic|Roboto+Mono:400,700" rel="stylesheet">
 <link href="style.css" rel="stylesheet" type="text/css"/>
@@ -46,39 +44,19 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.7 -->
+<!-- Generated by Doxygen 1.8.13 -->
 <script type="text/javascript">
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </script>
-  <div id="navrow1" class="tabs">
-    <ul class="tablist">
-      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
-      <li><a href="usergroup0.html"><span>Programmer's&#160;Guide</span></a></li>
-      <li><a href="flatbuffers_support.html"><span>Platform&#160;/&#160;Language&#160;/&#160;Feature&#160;support</span></a></li>
-      <li><a href="flatbuffers_benchmarks.html"><span>Benchmarks</span></a></li>
-      <li><a href="flatbuffers_white_paper.html"><span>FlatBuffers&#160;white&#160;paper</span></a></li>
-      <li><a href="flatbuffers_internals.html"><span>FlatBuffers&#160;internals</span></a></li>
-      <li><a href="flatbuffers_grammar.html"><span>Grammar&#160;of&#160;the&#160;schema&#160;language</span></a></li>
-      <li><a href="usergroup2.html"><span>API&#160;Reference</span></a></li>
-      <li><a href="contributing.html"><span>Contributing</span></a></li>
-      <li>
-        <div id="MSearchBox" class="MSearchBoxInactive">
-        <span class="left">
-          <img id="MSearchSelect" src="search/mag_sel.png"
-               onmouseover="return searchBox.OnSearchSelectShow()"
-               onmouseout="return searchBox.OnSearchSelectHide()"
-               alt=""/>
-          <input type="text" id="MSearchField" value="Search" accesskey="S"
-               onfocus="searchBox.OnSearchFieldFocus(true)" 
-               onblur="searchBox.OnSearchFieldFocus(false)" 
-               onkeyup="searchBox.OnSearchFieldChange(event)"/>
-          </span><span class="right">
-            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
-          </span>
-        </div>
-      </li>
-    </ul>
-  </div>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -99,7 +77,7 @@ $(document).ready(function(){initNavTree('flatbuffers_guide_use_java_c-sharp.htm
      onmouseover="return searchBox.OnSearchSelectShow()"
      onmouseout="return searchBox.OnSearchSelectHide()"
      onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Properties</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+</div>
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
@@ -136,39 +114,17 @@ google/flatbuffers/blob/master/tests/JavaTest.bat">JavaTest.bat</a>, depending o
 <p>The test code for C# is located in the <a href="https://github.com/
 google/flatbuffers/tree/master/tests/FlatBuffers.Test">FlatBuffers.Test</a> subfolder. To run the tests, open <code>FlatBuffers.Test.csproj</code> in <a href="https://www.visualstudio.com">Visual Studio</a>, and compile/run the project.</p>
 <p>Optionally, you can run this using <a href="http://www.mono-project.com/">Mono</a> instead. Once you have installed <code>Mono</code>, you can run the tests from the command line by running the following commands from inside the <code>FlatBuffers.Test</code> folder:</p>
-<div class="fragment"><div class="line">mcs *.cs ../MyGame/Example<span class="comment">/*.cs ../../net/FlatBuffers/*.cs</span></div>
-<div class="line"><span class="comment">mono Assert.exe</span></div>
-</div><!-- fragment --><h2>Using the FlatBuffers Java (and C#) library</h2>
+<div class="fragment"><div class="line">mcs *.cs ../MyGame/Example/*.cs ../../net/FlatBuffers/*.cs</div><div class="line">mono Assert.exe</div></div><!-- fragment --><h2>Using the FlatBuffers Java (and C#) library</h2>
 <p><em>Note: See <a class="el" href="flatbuffers_guide_tutorial.html">Tutorial</a> for a more in-depth example of how to use FlatBuffers in Java or C#.</em></p>
 <p>FlatBuffers supports reading and writing binary FlatBuffers in Java and C#.</p>
 <p>To use FlatBuffers in your own code, first generate Java classes from your schema with the <code>--java</code> option to <code>flatc</code>. (Or for C# with <code>--csharp</code>). Then you can include both FlatBuffers and the generated code to read or write a FlatBuffer.</p>
 <p>For example, here is how you would read a FlatBuffer binary file in Java: First, import the library and generated code. Then, you read a FlatBuffer binary file into a <code>byte[]</code>. You then turn the <code>byte[]</code> into a <code>ByteBuffer</code>, which you pass to the <code>getRootAsMyRootType</code> function:</p>
 <p><em>Note: The code here is written from the perspective of Java. Code for both languages is both generated and used in nearly the exact same way, with only minor differences. These differences are <a href="#differences_in_c-sharp">explained in a section below</a>.</em></p>
-<div class="fragment"><div class="line"><span class="keyword">import</span> MyGame.Example.*;</div>
-<div class="line"><span class="keyword">import</span> <a class="code" href="classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html">com.google.flatbuffers.FlatBufferBuilder</a>;</div>
-<div class="line"></div>
-<div class="line"><span class="comment">// This snippet ignores exceptions for brevity.</span></div>
-<div class="line">File file = <span class="keyword">new</span> File(<span class="stringliteral">&quot;monsterdata_test.mon&quot;</span>);</div>
-<div class="line">RandomAccessFile f = <span class="keyword">new</span> RandomAccessFile(file, <span class="stringliteral">&quot;r&quot;</span>);</div>
-<div class="line">byte[] data = <span class="keyword">new</span> byte[(int)f.length()];</div>
-<div class="line">f.readFully(data);</div>
-<div class="line">f.close();</div>
-<div class="line"></div>
-<div class="line">ByteBuffer bb = ByteBuffer.wrap(data);</div>
-<div class="line">Monster monster = Monster.getRootAsMonster(bb);</div>
-</div><!-- fragment --><p>Now you can access the data from the <code>Monster monster</code>:</p>
-<div class="fragment"><div class="line"><span class="keywordtype">short</span> hp = monster.hp();</div>
-<div class="line">Vec3 pos = monster.pos();</div>
-</div><!-- fragment --><p><a class="anchor" id="differences_in_c-sharp"></a> </p><h4>Differences in C-sharp</h4>
+<div class="fragment"><div class="line"><span class="keyword">import</span> MyGame.Example.*;</div><div class="line"><span class="keyword">import</span> <a class="code" href="namespacecom.html">com</a>.<a class="code" href="namespacecom_1_1google.html">google</a>.<a class="code" href="namespacecom_1_1google_1_1flatbuffers.html">flatbuffers</a>.<a class="code" href="classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html">FlatBufferBuilder</a>;</div><div class="line"></div><div class="line"><span class="comment">// This snippet ignores exceptions for brevity.</span></div><div class="line">File file = <span class="keyword">new</span> File(<span class="stringliteral">&quot;monsterdata_test.mon&quot;</span>);</div><div class="line">RandomAccessFile f = <span class="keyword">new</span> RandomAccessFile(file, <span class="stringliteral">&quot;r&quot;</span>);</div><div class="line">byte[] data = <span class="keyword">new</span> byte[(int)f.length()];</div><div class="line">f.readFully(data);</div><div class="line">f.close();</div><div class="line"></div><div class="line">ByteBuffer bb = ByteBuffer.wrap(data);</div><div class="line">Monster monster = Monster.getRootAsMonster(bb);</div></div><!-- fragment --><p>Now you can access the data from the <code>Monster monster</code>:</p>
+<div class="fragment"><div class="line"><span class="keywordtype">short</span> hp = monster.hp();</div><div class="line">Vec3 pos = monster.pos();</div></div><!-- fragment --><p><a class="anchor" id="differences_in_c-sharp"></a> </p><h4>Differences in C-sharp</h4>
 <p>C# code works almost identically to Java, with only a few minor differences. You can see an example of C# code in <code>tests/FlatBuffers.Test/FlatBuffersExampleTests.cs</code> or <code>samples/SampleBinary.cs</code>.</p>
 <p>First of all, naming follows standard C# style with <code>PascalCasing</code> identifiers, e.g. <code>GetRootAsMyRootType</code>. Also, values (except vectors and unions) are available as properties instead of parameterless accessor methods as in Java. The performance-enhancing methods to which you can pass an already created object are prefixed with <code>Get</code>, e.g.:</p>
-<div class="fragment"><div class="line"><span class="comment">// property</span></div>
-<div class="line">var pos = monster.Pos;</div>
-<div class="line"></div>
-<div class="line"><span class="comment">// method filling a preconstructed object</span></div>
-<div class="line">var preconstructedPos = <span class="keyword">new</span> Vec3();</div>
-<div class="line">monster.GetPos(preconstructedPos);</div>
-</div><!-- fragment --><h2>Storing dictionaries in a FlatBuffer</h2>
+<div class="fragment"><div class="line"><span class="comment">// property</span></div><div class="line">var pos = monster.Pos;</div><div class="line"></div><div class="line"><span class="comment">// method filling a preconstructed object</span></div><div class="line">var preconstructedPos = <span class="keyword">new</span> Vec3();</div><div class="line">monster.GetPos(preconstructedPos);</div></div><!-- fragment --><h2>Storing dictionaries in a FlatBuffer</h2>
 <p>FlatBuffers doesn't support dictionaries natively, but there is support to emulate their behavior with vectors and binary search, which means you can have fast lookups directly from a FlatBuffer without having to unpack your data into a <code>Dictionary</code> or similar.</p>
 <p>To use it:</p><ul>
 <li>Designate one of the fields in a table as the "key" field. You do this by setting the <code>key</code> attribute on this field, e.g. <code>name:string (key)</code>. You may only have one key field, and it must be of string or scalar type.</li>
diff --git a/flatbuffers_guide_use_javascript.html b/flatbuffers_guide_use_javascript.html
index c69f99b73cd71c0a723592e6770d02ba128d63ae..f93fb79a1f4c0f47bdb61329dbbb72d20baf4ba8 100644
--- a/flatbuffers_guide_use_javascript.html
+++ b/flatbuffers_guide_use_javascript.html
@@ -4,23 +4,21 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <title>FlatBuffers: Use in JavaScript</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
 <link href="navtree.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
 <script type="text/javascript" src="navtree.js"></script>
 <script type="text/javascript">
   $(document).ready(initResizable);
-  $(window).load(resizeHeight);
 </script>
 <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
 <script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
-  $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,500italic,700,700italic|Roboto+Mono:400,700" rel="stylesheet">
 <link href="style.css" rel="stylesheet" type="text/css"/>
@@ -46,39 +44,19 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.7 -->
+<!-- Generated by Doxygen 1.8.13 -->
 <script type="text/javascript">
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </script>
-  <div id="navrow1" class="tabs">
-    <ul class="tablist">
-      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
-      <li><a href="usergroup0.html"><span>Programmer's&#160;Guide</span></a></li>
-      <li><a href="flatbuffers_support.html"><span>Platform&#160;/&#160;Language&#160;/&#160;Feature&#160;support</span></a></li>
-      <li><a href="flatbuffers_benchmarks.html"><span>Benchmarks</span></a></li>
-      <li><a href="flatbuffers_white_paper.html"><span>FlatBuffers&#160;white&#160;paper</span></a></li>
-      <li><a href="flatbuffers_internals.html"><span>FlatBuffers&#160;internals</span></a></li>
-      <li><a href="flatbuffers_grammar.html"><span>Grammar&#160;of&#160;the&#160;schema&#160;language</span></a></li>
-      <li><a href="usergroup2.html"><span>API&#160;Reference</span></a></li>
-      <li><a href="contributing.html"><span>Contributing</span></a></li>
-      <li>
-        <div id="MSearchBox" class="MSearchBoxInactive">
-        <span class="left">
-          <img id="MSearchSelect" src="search/mag_sel.png"
-               onmouseover="return searchBox.OnSearchSelectShow()"
-               onmouseout="return searchBox.OnSearchSelectHide()"
-               alt=""/>
-          <input type="text" id="MSearchField" value="Search" accesskey="S"
-               onfocus="searchBox.OnSearchFieldFocus(true)" 
-               onblur="searchBox.OnSearchFieldFocus(false)" 
-               onkeyup="searchBox.OnSearchFieldChange(event)"/>
-          </span><span class="right">
-            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
-          </span>
-        </div>
-      </li>
-    </ul>
-  </div>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -99,7 +77,7 @@ $(document).ready(function(){initNavTree('flatbuffers_guide_use_javascript.html'
      onmouseover="return searchBox.OnSearchSelectShow()"
      onmouseout="return searchBox.OnSearchSelectHide()"
      onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Properties</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+</div>
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
@@ -130,49 +108,8 @@ flatbuffers/blob/master/tests/JavaScriptTest.sh">JavaScriptTest.sh</a> shell scr
 <p>To use FlatBuffers in your own code, first generate JavaScript classes from your schema with the <code>--js</code> option to <code>flatc</code>. Then you can include both FlatBuffers and the generated code to read or write a FlatBuffer.</p>
 <p>For example, here is how you would read a FlatBuffer binary file in Javascript: First, include the library and generated code. Then read the file into an <code>Uint8Array</code>. Make a <code>flatbuffers.ByteBuffer</code> out of the <code>Uint8Array</code>, and pass the ByteBuffer to the <code>getRootAsMonster</code> function.</p>
 <p><em>Note: Both JavaScript module loaders (e.g. Node.js) and browser-based HTML/JavaScript code segments are shown below in the following snippet:</em></p>
-<div class="fragment"><div class="line"><span class="comment">// Note: These require functions are specific to JavaScript module loaders</span></div>
-<div class="line"><span class="comment">//       (namely, Node.js). See below for a browser-based example.</span></div>
-<div class="line">var fs = require(<span class="stringliteral">&#39;fs&#39;</span>);</div>
-<div class="line"></div>
-<div class="line">var flatbuffers = require(<span class="stringliteral">&#39;../flatbuffers&#39;</span>).flatbuffers;</div>
-<div class="line">var MyGame = require(<span class="stringliteral">&#39;./monster_generated&#39;</span>).MyGame;</div>
-<div class="line"></div>
-<div class="line">var data = <span class="keyword">new</span> Uint8Array(fs.readFileSync(<span class="stringliteral">&#39;monster.dat&#39;</span>));</div>
-<div class="line">var buf = <span class="keyword">new</span> flatbuffers.ByteBuffer(data);</div>
-<div class="line"></div>
-<div class="line">var monster = MyGame.Example.Monster.getRootAsMonster(buf);</div>
-<div class="line"></div>
-<div class="line"><span class="comment">//--------------------------------------------------------------------------//</span></div>
-<div class="line"></div>
-<div class="line"><span class="comment">// Note: This code is specific to browser-based HTML/JavaScript. See above</span></div>
-<div class="line"><span class="comment">//       for the code using JavaScript module loaders (e.g. Node.js).</span></div>
-<div class="line">&lt;script src=<span class="stringliteral">&quot;../js/flatbuffers.js&quot;</span>&gt;&lt;/script&gt;</div>
-<div class="line">&lt;script src=<span class="stringliteral">&quot;monster_generated.js&quot;</span>&gt;&lt;/script&gt;</div>
-<div class="line">&lt;script&gt;</div>
-<div class="line">  <span class="keyword">function</span> readFile() {</div>
-<div class="line">    var reader = <span class="keyword">new</span> FileReader(); <span class="comment">// This example uses the HTML5 FileReader.</span></div>
-<div class="line">    var file = document.getElementById(</div>
-<div class="line">        <span class="stringliteral">&#39;file_input&#39;</span>).files[0]; <span class="comment">// &quot;monster.dat&quot; from the HTML &lt;input&gt; field.</span></div>
-<div class="line"></div>
-<div class="line">    reader.onload = <span class="keyword">function</span>() { <span class="comment">// Executes after the file is read.</span></div>
-<div class="line">      var data = <span class="keyword">new</span> Uint8Array(reader.result);</div>
-<div class="line"></div>
-<div class="line">      var buf = <span class="keyword">new</span> flatbuffers.ByteBuffer(data);</div>
-<div class="line"></div>
-<div class="line">      var monster = MyGame.Example.Monster.getRootAsMonster(buf);</div>
-<div class="line">    }</div>
-<div class="line"></div>
-<div class="line">    reader.readAsArrayBuffer(file);</div>
-<div class="line">  }</div>
-<div class="line">&lt;/script&gt;</div>
-<div class="line"></div>
-<div class="line"><span class="comment">// Open the HTML file in a browser and select &quot;monster.dat&quot; from with the</span></div>
-<div class="line"><span class="comment">// &lt;input&gt; field.</span></div>
-<div class="line">&lt;input type=<span class="stringliteral">&quot;file&quot;</span> <span class="keywordtype">id</span>=<span class="stringliteral">&quot;file_input&quot;</span> onchange=<span class="stringliteral">&quot;readFile();&quot;</span>&gt;</div>
-</div><!-- fragment --><p>Now you can access values like this:</p>
-<div class="fragment"><div class="line">var hp = monster.hp();</div>
-<div class="line">var pos = monster.pos();</div>
-</div><!-- fragment --><h2>Text parsing FlatBuffers in JavaScript</h2>
+<div class="fragment"><div class="line">// Note: These require functions are specific to JavaScript module loaders</div><div class="line">//       (namely, Node.js). See below for a browser-based example.</div><div class="line">var fs = require(&#39;fs&#39;);</div><div class="line"></div><div class="line">var flatbuffers = require(&#39;../flatbuffers&#39;).flatbuffers;</div><div class="line">var MyGame = require(&#39;./monster_generated&#39;).MyGame;</div><div class="line"></div><div class="line">var data = new Uint8Array(fs.readFileSync(&#39;monster.dat&#39;));</div><div class="line">var buf = new flatbuffers.ByteBuffer(data);</div><div class="line"></div><div class="line">var monster = MyGame.Example.Monster.getRootAsMonster(buf);</div><div class="line"></div><div class="line">//--------------------------------------------------------------------------//</div><div class="line"></div><div class="line">// Note: This code is specific to browser-based HTML/JavaScript. See above</div><div class="line">//       for the code using JavaScript module loaders (e.g. Node.js).</div><div class="line">&lt;script src=&quot;../js/flatbuffers.js&quot;&gt;&lt;/script&gt;</div><div class="line">&lt;script src=&quot;monster_generated.js&quot;&gt;&lt;/script&gt;</div><div class="line">&lt;script&gt;</div><div class="line">  function readFile() {</div><div class="line">    var reader = new FileReader(); // This example uses the HTML5 FileReader.</div><div class="line">    var file = document.getElementById(</div><div class="line">        &#39;file_input&#39;).files[0]; // &quot;monster.dat&quot; from the HTML &lt;input&gt; field.</div><div class="line"></div><div class="line">    reader.onload = function() { // Executes after the file is read.</div><div class="line">      var data = new Uint8Array(reader.result);</div><div class="line"></div><div class="line">      var buf = new flatbuffers.ByteBuffer(data);</div><div class="line"></div><div class="line">      var monster = MyGame.Example.Monster.getRootAsMonster(buf);</div><div class="line">    }</div><div class="line"></div><div class="line">    reader.readAsArrayBuffer(file);</div><div class="line">  }</div><div class="line">&lt;/script&gt;</div><div class="line"></div><div class="line">// Open the HTML file in a browser and select &quot;monster.dat&quot; from with the</div><div class="line">// &lt;input&gt; field.</div><div class="line">&lt;input type=&quot;file&quot; id=&quot;file_input&quot; onchange=&quot;readFile();&quot;&gt;</div></div><!-- fragment --><p>Now you can access values like this:</p>
+<div class="fragment"><div class="line">var hp = monster.hp();</div><div class="line">var pos = monster.pos();</div></div><!-- fragment --><h2>Text parsing FlatBuffers in JavaScript</h2>
 <p>There currently is no support for parsing text (Schema's and JSON) directly from JavaScript. </p>
 </div></div><!-- contents -->
 </div><!-- doc-content -->
diff --git a/flatbuffers_guide_use_php.html b/flatbuffers_guide_use_php.html
index c0d009d89401756e57513a709c5871bd1f26fa8a..bb5e561ecb52da3d2596a0bab8d0ca4ace55455f 100644
--- a/flatbuffers_guide_use_php.html
+++ b/flatbuffers_guide_use_php.html
@@ -4,23 +4,21 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <title>FlatBuffers: Use in PHP</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
 <link href="navtree.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
 <script type="text/javascript" src="navtree.js"></script>
 <script type="text/javascript">
   $(document).ready(initResizable);
-  $(window).load(resizeHeight);
 </script>
 <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
 <script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
-  $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,500italic,700,700italic|Roboto+Mono:400,700" rel="stylesheet">
 <link href="style.css" rel="stylesheet" type="text/css"/>
@@ -46,39 +44,19 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.7 -->
+<!-- Generated by Doxygen 1.8.13 -->
 <script type="text/javascript">
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </script>
-  <div id="navrow1" class="tabs">
-    <ul class="tablist">
-      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
-      <li><a href="usergroup0.html"><span>Programmer's&#160;Guide</span></a></li>
-      <li><a href="flatbuffers_support.html"><span>Platform&#160;/&#160;Language&#160;/&#160;Feature&#160;support</span></a></li>
-      <li><a href="flatbuffers_benchmarks.html"><span>Benchmarks</span></a></li>
-      <li><a href="flatbuffers_white_paper.html"><span>FlatBuffers&#160;white&#160;paper</span></a></li>
-      <li><a href="flatbuffers_internals.html"><span>FlatBuffers&#160;internals</span></a></li>
-      <li><a href="flatbuffers_grammar.html"><span>Grammar&#160;of&#160;the&#160;schema&#160;language</span></a></li>
-      <li><a href="usergroup2.html"><span>API&#160;Reference</span></a></li>
-      <li><a href="contributing.html"><span>Contributing</span></a></li>
-      <li>
-        <div id="MSearchBox" class="MSearchBoxInactive">
-        <span class="left">
-          <img id="MSearchSelect" src="search/mag_sel.png"
-               onmouseover="return searchBox.OnSearchSelectShow()"
-               onmouseout="return searchBox.OnSearchSelectHide()"
-               alt=""/>
-          <input type="text" id="MSearchField" value="Search" accesskey="S"
-               onfocus="searchBox.OnSearchFieldFocus(true)" 
-               onblur="searchBox.OnSearchFieldFocus(false)" 
-               onkeyup="searchBox.OnSearchFieldChange(event)"/>
-          </span><span class="right">
-            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
-          </span>
-        </div>
-      </li>
-    </ul>
-  </div>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -99,7 +77,7 @@ $(document).ready(function(){initNavTree('flatbuffers_guide_use_php.html','');})
      onmouseover="return searchBox.OnSearchSelectShow()"
      onmouseout="return searchBox.OnSearchSelectHide()"
      onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Properties</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+</div>
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
@@ -128,36 +106,8 @@ flatbuffers/blob/master/tests/phpTest.php">phpTest.php</a>.</p>
 <p>FlatBuffers supports both reading and writing FlatBuffers in PHP.</p>
 <p>To use FlatBuffers in your own code, first generate PHP classes from your schema with the <code>--php</code> option to <code>flatc</code>. Then you can include both FlatBuffers and the generated code to read or write a FlatBuffer.</p>
 <p>For example, here is how you would read a FlatBuffer binary file in PHP: First, include the library and generated code (using the PSR <code>autoload</code> function). Then you can read a FlatBuffer binary file, which you pass the contents of to the <code>GetRootAsMonster</code> function:</p>
-<div class="fragment"><div class="line"><span class="comment">// It is recommended that your use PSR autoload when using FlatBuffers in PHP.</span></div>
-<div class="line"><span class="comment">// Here is an example:</span></div>
-<div class="line"><span class="keyword">function</span> __autoload($class_name) {</div>
-<div class="line">  <span class="comment">// The last segment of the class name matches the file name.</span></div>
-<div class="line">  $class = substr($class_name, strrpos($class_name, <span class="stringliteral">&quot;\\&quot;</span>) + 1);</div>
-<div class="line">  $root_dir = join(DIRECTORY_SEPARATOR, array(dirname(dirname(__FILE__)))); <span class="comment">// `flatbuffers` root.</span></div>
-<div class="line"></div>
-<div class="line">  <span class="comment">// Contains the `*.php` files for the FlatBuffers library and the `flatc` generated files.</span></div>
-<div class="line">  $paths = array(join(DIRECTORY_SEPARATOR, array($root_dir, <span class="stringliteral">&quot;php&quot;</span>)),</div>
-<div class="line">                 join(DIRECTORY_SEPARATOR, array($root_dir, <span class="stringliteral">&quot;tests&quot;</span>, <span class="stringliteral">&quot;MyGame&quot;</span>, <span class="stringliteral">&quot;Example&quot;</span>)));</div>
-<div class="line">  <span class="keywordflow">foreach</span> ($paths as $path) {</div>
-<div class="line">    $file = join(DIRECTORY_SEPARATOR, array($path, $class . <span class="stringliteral">&quot;.php&quot;</span>));</div>
-<div class="line">    <span class="keywordflow">if</span> (file_exists($file)) {</div>
-<div class="line">      require($file);</div>
-<div class="line">      <span class="keywordflow">break</span>;</div>
-<div class="line">  }</div>
-<div class="line">}</div>
-<div class="line"></div>
-<div class="line"><span class="comment">// Read the contents of the FlatBuffer binary file.</span></div>
-<div class="line">$filename = <span class="stringliteral">&quot;monster.dat&quot;</span>;</div>
-<div class="line">$handle = fopen($filename, <span class="stringliteral">&quot;rb&quot;</span>);</div>
-<div class="line">$contents = $fread($handle, filesize($filename));</div>
-<div class="line">fclose($handle);</div>
-<div class="line"></div>
-<div class="line"><span class="comment">// Pass the contents to `GetRootAsMonster`.</span></div>
-<div class="line">$monster = \MyGame\Example\Monster::GetRootAsMonster($contents);</div>
-</div><!-- fragment --><p>Now you can access values like this:</p>
-<div class="fragment"><div class="line">$hp = $monster-&gt;GetHp();</div>
-<div class="line">$pos = $monster-&gt;GetPos();</div>
-</div><!-- fragment --><h2>Text Parsing</h2>
+<div class="fragment"><div class="line"><span class="comment">// It is recommended that your use PSR autoload when using FlatBuffers in PHP.</span></div><div class="line"><span class="comment">// Here is an example:</span></div><div class="line"><span class="keyword">function</span> __autoload($class_name) {</div><div class="line">  <span class="comment">// The last segment of the class name matches the file name.</span></div><div class="line">  $class = substr($class_name, strrpos($class_name, <span class="stringliteral">&quot;\\&quot;</span>) + 1);</div><div class="line">  $root_dir = join(DIRECTORY_SEPARATOR, array(dirname(dirname(__FILE__)))); <span class="comment">// `flatbuffers` root.</span></div><div class="line"></div><div class="line">  <span class="comment">// Contains the `*.php` files for the FlatBuffers library and the `flatc` generated files.</span></div><div class="line">  $paths = array(join(DIRECTORY_SEPARATOR, array($root_dir, <span class="stringliteral">&quot;php&quot;</span>)),</div><div class="line">                 join(DIRECTORY_SEPARATOR, array($root_dir, <span class="stringliteral">&quot;tests&quot;</span>, <span class="stringliteral">&quot;MyGame&quot;</span>, <span class="stringliteral">&quot;Example&quot;</span>)));</div><div class="line">  <span class="keywordflow">foreach</span> ($paths as $path) {</div><div class="line">    $file = join(DIRECTORY_SEPARATOR, array($path, $class . <span class="stringliteral">&quot;.php&quot;</span>));</div><div class="line">    <span class="keywordflow">if</span> (file_exists($file)) {</div><div class="line">      require($file);</div><div class="line">      <span class="keywordflow">break</span>;</div><div class="line">  }</div><div class="line">}</div><div class="line"></div><div class="line"><span class="comment">// Read the contents of the FlatBuffer binary file.</span></div><div class="line">$filename = <span class="stringliteral">&quot;monster.dat&quot;</span>;</div><div class="line">$handle = fopen($filename, <span class="stringliteral">&quot;rb&quot;</span>);</div><div class="line">$contents = $fread($handle, filesize($filename));</div><div class="line">fclose($handle);</div><div class="line"></div><div class="line"><span class="comment">// Pass the contents to `GetRootAsMonster`.</span></div><div class="line">$monster = \MyGame\Example\Monster::GetRootAsMonster($contents);</div></div><!-- fragment --><p>Now you can access values like this:</p>
+<div class="fragment"><div class="line">$hp = $monster-&gt;GetHp();</div><div class="line">$pos = $monster-&gt;GetPos();</div></div><!-- fragment --><h2>Text Parsing</h2>
 <p>There currently is no support for parsing text (Schema's and JSON) directly from PHP. </p>
 </div></div><!-- contents -->
 </div><!-- doc-content -->
diff --git a/flatbuffers_guide_use_python.html b/flatbuffers_guide_use_python.html
index a7d5f913b41c6a634f61d0615a63710421e5b947..b645e3b3cea127a772f432d718e85c1b9be0751e 100644
--- a/flatbuffers_guide_use_python.html
+++ b/flatbuffers_guide_use_python.html
@@ -4,23 +4,21 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <title>FlatBuffers: Use in Python</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
 <link href="navtree.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
 <script type="text/javascript" src="navtree.js"></script>
 <script type="text/javascript">
   $(document).ready(initResizable);
-  $(window).load(resizeHeight);
 </script>
 <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
 <script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
-  $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,500italic,700,700italic|Roboto+Mono:400,700" rel="stylesheet">
 <link href="style.css" rel="stylesheet" type="text/css"/>
@@ -46,39 +44,19 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.7 -->
+<!-- Generated by Doxygen 1.8.13 -->
 <script type="text/javascript">
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </script>
-  <div id="navrow1" class="tabs">
-    <ul class="tablist">
-      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
-      <li><a href="usergroup0.html"><span>Programmer's&#160;Guide</span></a></li>
-      <li><a href="flatbuffers_support.html"><span>Platform&#160;/&#160;Language&#160;/&#160;Feature&#160;support</span></a></li>
-      <li><a href="flatbuffers_benchmarks.html"><span>Benchmarks</span></a></li>
-      <li><a href="flatbuffers_white_paper.html"><span>FlatBuffers&#160;white&#160;paper</span></a></li>
-      <li><a href="flatbuffers_internals.html"><span>FlatBuffers&#160;internals</span></a></li>
-      <li><a href="flatbuffers_grammar.html"><span>Grammar&#160;of&#160;the&#160;schema&#160;language</span></a></li>
-      <li><a href="usergroup2.html"><span>API&#160;Reference</span></a></li>
-      <li><a href="contributing.html"><span>Contributing</span></a></li>
-      <li>
-        <div id="MSearchBox" class="MSearchBoxInactive">
-        <span class="left">
-          <img id="MSearchSelect" src="search/mag_sel.png"
-               onmouseover="return searchBox.OnSearchSelectShow()"
-               onmouseout="return searchBox.OnSearchSelectHide()"
-               alt=""/>
-          <input type="text" id="MSearchField" value="Search" accesskey="S"
-               onfocus="searchBox.OnSearchFieldFocus(true)" 
-               onblur="searchBox.OnSearchFieldFocus(false)" 
-               onkeyup="searchBox.OnSearchFieldChange(event)"/>
-          </span><span class="right">
-            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
-          </span>
-        </div>
-      </li>
-    </ul>
-  </div>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -99,7 +77,7 @@ $(document).ready(function(){initNavTree('flatbuffers_guide_use_python.html','')
      onmouseover="return searchBox.OnSearchSelectShow()"
      onmouseout="return searchBox.OnSearchSelectHide()"
      onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Properties</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+</div>
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
@@ -130,24 +108,11 @@ blob/master/tests/PythonTest.sh">PythonTest.sh</a> shell script.</p>
 <p>There is support for both reading and writing FlatBuffers in Python.</p>
 <p>To use FlatBuffers in your own code, first generate Python classes from your schema with the <code>--python</code> option to <code>flatc</code>. Then you can include both FlatBuffers and the generated code to read or write a FlatBuffer.</p>
 <p>For example, here is how you would read a FlatBuffer binary file in Python: First, import the library and the generated code. Then read a FlatBuffer binary file into a <code>bytearray</code>, which you pass to the <code>GetRootAsMonster</code> function:</p>
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;import MyGame.Example <span class="keyword">as</span> example</div>
-<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="keyword">import</span> flatbuffers</div>
-<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;</div>
-<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;buf = open(<span class="stringliteral">&#39;monster.dat&#39;</span>, <span class="stringliteral">&#39;rb&#39;</span>).read()</div>
-<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;buf = bytearray(buf)</div>
-<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;monster = example.GetRootAsMonster(buf, 0)</div>
-</div><!-- fragment --><p>Now you can access values like this:</p>
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;hp = monster.Hp()</div>
-<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;pos = monster.Pos()</div>
-</div><!-- fragment --><h2>Support for Numpy arrays</h2>
+<div class="fragment"><div class="line">import MyGame.Example <span class="keyword">as</span> example</div><div class="line"><span class="keyword">import</span> flatbuffers</div><div class="line"></div><div class="line">buf = open(<span class="stringliteral">&#39;monster.dat&#39;</span>, <span class="stringliteral">&#39;rb&#39;</span>).read()</div><div class="line">buf = bytearray(buf)</div><div class="line">monster = example.GetRootAsMonster(buf, 0)</div></div><!-- fragment --><p>Now you can access values like this:</p>
+<div class="fragment"><div class="line">hp = monster.Hp()</div><div class="line">pos = monster.Pos()</div></div><!-- fragment --><h2>Support for Numpy arrays</h2>
 <p>The Flatbuffers python library also has support for accessing scalar vectors as numpy arrays. This can be orders of magnitude faster than iterating over the vector one element at a time, and is particularly useful when unpacking large nested flatbuffers. The generated code for a scalar vector will have a method <code>&lt;vector name&gt;AsNumpy()</code>. In the case of the Monster example, you could access the inventory vector like this:</p>
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;inventory = monster.InventoryAsNumpy()</div>
-<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"># inventory is a numpy array of type np.dtype(&#39;uint8&#39;)</span></div>
-</div><!-- fragment --><p>instead of</p>
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;inventory = []</div>
-<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="keywordflow">for</span> i <span class="keywordflow">in</span> range(monster.InventoryLength()):</div>
-<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;    inventory.append(int(monster.Inventory(i)))</div>
-</div><!-- fragment --><p>Numpy is not a requirement. If numpy is not installed on your system, then attempting to access one of the <code>*asNumpy()</code> methods will result in a <code>NumpyRequiredForThisFeature</code> exception.</p>
+<div class="fragment"><div class="line">inventory = monster.InventoryAsNumpy()</div><div class="line"><span class="comment"># inventory is a numpy array of type np.dtype(&#39;uint8&#39;)</span></div></div><!-- fragment --><p>instead of</p>
+<div class="fragment"><div class="line">inventory = []</div><div class="line"><span class="keywordflow">for</span> i <span class="keywordflow">in</span> range(monster.InventoryLength()):</div><div class="line">    inventory.append(int(monster.Inventory(i)))</div></div><!-- fragment --><p>Numpy is not a requirement. If numpy is not installed on your system, then attempting to access one of the <code>*asNumpy()</code> methods will result in a <code>NumpyRequiredForThisFeature</code> exception.</p>
 <h2>Text Parsing</h2>
 <p>There currently is no support for parsing text (Schema's and JSON) directly from Python, though you could use the C++ parser through SWIG or ctypes. Please see the C++ documentation for more on text parsing.</p>
 <p><br />
diff --git a/flatbuffers_guide_using_schema_compiler.html b/flatbuffers_guide_using_schema_compiler.html
index 175aeae7de7a2cbebfecd8f1b353e78edf69be20..3768cdddc1f479b89c262317add6510c658d62c8 100644
--- a/flatbuffers_guide_using_schema_compiler.html
+++ b/flatbuffers_guide_using_schema_compiler.html
@@ -4,23 +4,21 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <title>FlatBuffers: Using the schema compiler</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
 <link href="navtree.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
 <script type="text/javascript" src="navtree.js"></script>
 <script type="text/javascript">
   $(document).ready(initResizable);
-  $(window).load(resizeHeight);
 </script>
 <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
 <script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
-  $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,500italic,700,700italic|Roboto+Mono:400,700" rel="stylesheet">
 <link href="style.css" rel="stylesheet" type="text/css"/>
@@ -46,39 +44,19 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.7 -->
+<!-- Generated by Doxygen 1.8.13 -->
 <script type="text/javascript">
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </script>
-  <div id="navrow1" class="tabs">
-    <ul class="tablist">
-      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
-      <li><a href="usergroup0.html"><span>Programmer's&#160;Guide</span></a></li>
-      <li><a href="flatbuffers_support.html"><span>Platform&#160;/&#160;Language&#160;/&#160;Feature&#160;support</span></a></li>
-      <li><a href="flatbuffers_benchmarks.html"><span>Benchmarks</span></a></li>
-      <li><a href="flatbuffers_white_paper.html"><span>FlatBuffers&#160;white&#160;paper</span></a></li>
-      <li><a href="flatbuffers_internals.html"><span>FlatBuffers&#160;internals</span></a></li>
-      <li><a href="flatbuffers_grammar.html"><span>Grammar&#160;of&#160;the&#160;schema&#160;language</span></a></li>
-      <li><a href="usergroup2.html"><span>API&#160;Reference</span></a></li>
-      <li><a href="contributing.html"><span>Contributing</span></a></li>
-      <li>
-        <div id="MSearchBox" class="MSearchBoxInactive">
-        <span class="left">
-          <img id="MSearchSelect" src="search/mag_sel.png"
-               onmouseover="return searchBox.OnSearchSelectShow()"
-               onmouseout="return searchBox.OnSearchSelectHide()"
-               alt=""/>
-          <input type="text" id="MSearchField" value="Search" accesskey="S"
-               onfocus="searchBox.OnSearchFieldFocus(true)" 
-               onblur="searchBox.OnSearchFieldFocus(false)" 
-               onkeyup="searchBox.OnSearchFieldChange(event)"/>
-          </span><span class="right">
-            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
-          </span>
-        </div>
-      </li>
-    </ul>
-  </div>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -99,7 +77,7 @@ $(document).ready(function(){initNavTree('flatbuffers_guide_using_schema_compile
      onmouseover="return searchBox.OnSearchSelectShow()"
      onmouseout="return searchBox.OnSearchSelectHide()"
      onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Properties</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+</div>
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
diff --git a/flatbuffers_guide_writing_schema.html b/flatbuffers_guide_writing_schema.html
index 2d82ef20564d22e4142c6489584ea89414fad63e..a0eb42b1ca9d9d1aaa9f0a50bd3dc06213a120a6 100644
--- a/flatbuffers_guide_writing_schema.html
+++ b/flatbuffers_guide_writing_schema.html
@@ -4,23 +4,21 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <title>FlatBuffers: Writing a schema</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
 <link href="navtree.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
 <script type="text/javascript" src="navtree.js"></script>
 <script type="text/javascript">
   $(document).ready(initResizable);
-  $(window).load(resizeHeight);
 </script>
 <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
 <script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
-  $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,500italic,700,700italic|Roboto+Mono:400,700" rel="stylesheet">
 <link href="style.css" rel="stylesheet" type="text/css"/>
@@ -46,39 +44,19 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.7 -->
+<!-- Generated by Doxygen 1.8.13 -->
 <script type="text/javascript">
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </script>
-  <div id="navrow1" class="tabs">
-    <ul class="tablist">
-      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
-      <li><a href="usergroup0.html"><span>Programmer's&#160;Guide</span></a></li>
-      <li><a href="flatbuffers_support.html"><span>Platform&#160;/&#160;Language&#160;/&#160;Feature&#160;support</span></a></li>
-      <li><a href="flatbuffers_benchmarks.html"><span>Benchmarks</span></a></li>
-      <li><a href="flatbuffers_white_paper.html"><span>FlatBuffers&#160;white&#160;paper</span></a></li>
-      <li><a href="flatbuffers_internals.html"><span>FlatBuffers&#160;internals</span></a></li>
-      <li><a href="flatbuffers_grammar.html"><span>Grammar&#160;of&#160;the&#160;schema&#160;language</span></a></li>
-      <li><a href="usergroup2.html"><span>API&#160;Reference</span></a></li>
-      <li><a href="contributing.html"><span>Contributing</span></a></li>
-      <li>
-        <div id="MSearchBox" class="MSearchBoxInactive">
-        <span class="left">
-          <img id="MSearchSelect" src="search/mag_sel.png"
-               onmouseover="return searchBox.OnSearchSelectShow()"
-               onmouseout="return searchBox.OnSearchSelectHide()"
-               alt=""/>
-          <input type="text" id="MSearchField" value="Search" accesskey="S"
-               onfocus="searchBox.OnSearchFieldFocus(true)" 
-               onblur="searchBox.OnSearchFieldFocus(false)" 
-               onkeyup="searchBox.OnSearchFieldChange(event)"/>
-          </span><span class="right">
-            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
-          </span>
-        </div>
-      </li>
-    </ul>
-  </div>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -99,7 +77,7 @@ $(document).ready(function(){initNavTree('flatbuffers_guide_writing_schema.html'
      onmouseover="return searchBox.OnSearchSelectShow()"
      onmouseout="return searchBox.OnSearchSelectHide()"
      onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Properties</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+</div>
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
diff --git a/flatbuffers_internals.html b/flatbuffers_internals.html
index ef59bdf3e833d081fd81555ce12a4943a9c13389..ab3f8bf72d88c341c6c0f86743511ec95b7470ba 100644
--- a/flatbuffers_internals.html
+++ b/flatbuffers_internals.html
@@ -4,23 +4,21 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <title>FlatBuffers: FlatBuffer Internals</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
 <link href="navtree.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
 <script type="text/javascript" src="navtree.js"></script>
 <script type="text/javascript">
   $(document).ready(initResizable);
-  $(window).load(resizeHeight);
 </script>
 <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
 <script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
-  $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,500italic,700,700italic|Roboto+Mono:400,700" rel="stylesheet">
 <link href="style.css" rel="stylesheet" type="text/css"/>
@@ -46,39 +44,19 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.7 -->
+<!-- Generated by Doxygen 1.8.13 -->
 <script type="text/javascript">
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </script>
-  <div id="navrow1" class="tabs">
-    <ul class="tablist">
-      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
-      <li><a href="usergroup0.html"><span>Programmer's&#160;Guide</span></a></li>
-      <li><a href="flatbuffers_support.html"><span>Platform&#160;/&#160;Language&#160;/&#160;Feature&#160;support</span></a></li>
-      <li><a href="flatbuffers_benchmarks.html"><span>Benchmarks</span></a></li>
-      <li><a href="flatbuffers_white_paper.html"><span>FlatBuffers&#160;white&#160;paper</span></a></li>
-      <li><a href="flatbuffers_internals.html"><span>FlatBuffers&#160;internals</span></a></li>
-      <li><a href="flatbuffers_grammar.html"><span>Grammar&#160;of&#160;the&#160;schema&#160;language</span></a></li>
-      <li><a href="usergroup2.html"><span>API&#160;Reference</span></a></li>
-      <li><a href="contributing.html"><span>Contributing</span></a></li>
-      <li>
-        <div id="MSearchBox" class="MSearchBoxInactive">
-        <span class="left">
-          <img id="MSearchSelect" src="search/mag_sel.png"
-               onmouseover="return searchBox.OnSearchSelectShow()"
-               onmouseout="return searchBox.OnSearchSelectHide()"
-               alt=""/>
-          <input type="text" id="MSearchField" value="Search" accesskey="S"
-               onfocus="searchBox.OnSearchFieldFocus(true)" 
-               onblur="searchBox.OnSearchFieldFocus(false)" 
-               onkeyup="searchBox.OnSearchFieldChange(event)"/>
-          </span><span class="right">
-            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
-          </span>
-        </div>
-      </li>
-    </ul>
-  </div>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -99,7 +77,7 @@ $(document).ready(function(){initNavTree('flatbuffers_internals.html','');});
      onmouseover="return searchBox.OnSearchSelectShow()"
      onmouseout="return searchBox.OnSearchSelectHide()"
      onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Properties</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+</div>
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
diff --git a/flatbuffers_support.html b/flatbuffers_support.html
index 512d0965f036f8d7c8b6099c49f787b79c9fe7eb..219bfb17230513e39496f4817a1ff2e20b2b1083 100644
--- a/flatbuffers_support.html
+++ b/flatbuffers_support.html
@@ -4,23 +4,21 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <title>FlatBuffers: Platform / Language / Feature support</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
 <link href="navtree.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
 <script type="text/javascript" src="navtree.js"></script>
 <script type="text/javascript">
   $(document).ready(initResizable);
-  $(window).load(resizeHeight);
 </script>
 <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
 <script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
-  $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,500italic,700,700italic|Roboto+Mono:400,700" rel="stylesheet">
 <link href="style.css" rel="stylesheet" type="text/css"/>
@@ -46,39 +44,19 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.7 -->
+<!-- Generated by Doxygen 1.8.13 -->
 <script type="text/javascript">
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </script>
-  <div id="navrow1" class="tabs">
-    <ul class="tablist">
-      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
-      <li><a href="usergroup0.html"><span>Programmer's&#160;Guide</span></a></li>
-      <li><a href="flatbuffers_support.html"><span>Platform&#160;/&#160;Language&#160;/&#160;Feature&#160;support</span></a></li>
-      <li><a href="flatbuffers_benchmarks.html"><span>Benchmarks</span></a></li>
-      <li><a href="flatbuffers_white_paper.html"><span>FlatBuffers&#160;white&#160;paper</span></a></li>
-      <li><a href="flatbuffers_internals.html"><span>FlatBuffers&#160;internals</span></a></li>
-      <li><a href="flatbuffers_grammar.html"><span>Grammar&#160;of&#160;the&#160;schema&#160;language</span></a></li>
-      <li><a href="usergroup2.html"><span>API&#160;Reference</span></a></li>
-      <li><a href="contributing.html"><span>Contributing</span></a></li>
-      <li>
-        <div id="MSearchBox" class="MSearchBoxInactive">
-        <span class="left">
-          <img id="MSearchSelect" src="search/mag_sel.png"
-               onmouseover="return searchBox.OnSearchSelectShow()"
-               onmouseout="return searchBox.OnSearchSelectHide()"
-               alt=""/>
-          <input type="text" id="MSearchField" value="Search" accesskey="S"
-               onfocus="searchBox.OnSearchFieldFocus(true)" 
-               onblur="searchBox.OnSearchFieldFocus(false)" 
-               onkeyup="searchBox.OnSearchFieldChange(event)"/>
-          </span><span class="right">
-            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
-          </span>
-        </div>
-      </li>
-    </ul>
-  </div>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -99,7 +77,7 @@ $(document).ready(function(){initNavTree('flatbuffers_support.html','');});
      onmouseover="return searchBox.OnSearchSelectShow()"
      onmouseout="return searchBox.OnSearchSelectHide()"
      onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Properties</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+</div>
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
@@ -123,43 +101,44 @@ $(document).ready(function(){initNavTree('flatbuffers_support.html','');});
 <p>NOTE: this table is a start, it needs to be extended.</p>
 <table class="doxtable">
 <tr>
-<th>Feature </th><th>C++ </th><th>Java </th><th>C# </th><th>Go </th><th>Python </th><th>JS </th><th>C </th><th>PHP </th><th>Ruby  </th></tr>
+<th>Feature </th><th>C++ </th><th>Java </th><th>C# </th><th>Go </th><th>Python </th><th>JS </th><th>TS </th><th>C </th><th>PHP </th><th>Ruby  </th></tr>
 <tr>
-<td>Codegen for all basic features </td><td>Yes </td><td>Yes </td><td>Yes </td><td>Yes </td><td>Yes </td><td>Yes </td><td>Yes </td><td>WiP </td><td>WiP </td></tr>
+<td>Codegen for all basic features </td><td>Yes </td><td>Yes </td><td>Yes </td><td>Yes </td><td>Yes </td><td>Yes </td><td>Yes </td><td>Yes </td><td>WiP </td><td>WiP </td></tr>
 <tr>
-<td>JSON parsing </td><td>Yes </td><td>No </td><td>No </td><td>No </td><td>No </td><td>No </td><td>Yes </td><td>No </td><td>No </td></tr>
+<td>JSON parsing </td><td>Yes </td><td>No </td><td>No </td><td>No </td><td>No </td><td>No </td><td>No </td><td>Yes </td><td>No </td><td>No </td></tr>
 <tr>
-<td>Simple mutation </td><td>Yes </td><td>WIP </td><td>WIP </td><td>No </td><td>No </td><td>No </td><td>No </td><td>No </td><td>No </td></tr>
+<td>Simple mutation </td><td>Yes </td><td>Yes </td><td>Yes </td><td>Yes </td><td>No </td><td>No </td><td>No </td><td>No </td><td>No </td><td>No </td></tr>
 <tr>
-<td>Reflection </td><td>Yes </td><td>No </td><td>No </td><td>No </td><td>No </td><td>No </td><td>Basic </td><td>No </td><td>No </td></tr>
+<td>Reflection </td><td>Yes </td><td>No </td><td>No </td><td>No </td><td>No </td><td>No </td><td>No </td><td>Basic </td><td>No </td><td>No </td></tr>
 <tr>
-<td>Buffer verifier </td><td>Yes </td><td>No </td><td>No </td><td>No </td><td>No </td><td>No </td><td>Yes </td><td>No </td><td>No </td></tr>
+<td>Buffer verifier </td><td>Yes </td><td>No </td><td>No </td><td>No </td><td>No </td><td>No </td><td>No </td><td>Yes </td><td>No </td><td>No </td></tr>
 <tr>
-<td>Testing: basic </td><td>Yes </td><td>Yes </td><td>Yes </td><td>Yes </td><td>Yes </td><td>Yes </td><td>Yes </td><td>? </td><td>? </td></tr>
+<td>Testing: basic </td><td>Yes </td><td>Yes </td><td>Yes </td><td>Yes </td><td>Yes </td><td>Yes </td><td>Yes </td><td>Yes </td><td>? </td><td>? </td></tr>
 <tr>
-<td>Testing: fuzz </td><td>Yes </td><td>No </td><td>No </td><td>Yes </td><td>Yes </td><td>No </td><td>No </td><td>? </td><td>? </td></tr>
+<td>Testing: fuzz </td><td>Yes </td><td>No </td><td>No </td><td>Yes </td><td>Yes </td><td>No </td><td>No </td><td>No </td><td>? </td><td>? </td></tr>
 <tr>
-<td>Performance: </td><td>Superb </td><td>Great </td><td>Great </td><td>Great </td><td>Ok </td><td>? </td><td>Superb </td><td>? </td><td>? </td></tr>
+<td>Performance: </td><td>Superb </td><td>Great </td><td>Great </td><td>Great </td><td>Ok </td><td>? </td><td>? </td><td>Superb </td><td>? </td><td>? </td></tr>
 <tr>
-<td>Platform: Windows </td><td>VS2010 </td><td>Yes </td><td>Yes </td><td>? </td><td>? </td><td>? </td><td>VS2010 </td><td>? </td><td>? </td></tr>
+<td>Platform: Windows </td><td>VS2010 </td><td>Yes </td><td>Yes </td><td>? </td><td>? </td><td>? </td><td>Yes </td><td>VS2010 </td><td>? </td><td>? </td></tr>
 <tr>
-<td>Platform: Linux </td><td>GCC282 </td><td>Yes </td><td>? </td><td>Yes </td><td>Yes </td><td>? </td><td>Yes </td><td>? </td><td>? </td></tr>
+<td>Platform: Linux </td><td>GCC282 </td><td>Yes </td><td>? </td><td>Yes </td><td>Yes </td><td>? </td><td>Yes </td><td>Yes </td><td>? </td><td>? </td></tr>
 <tr>
-<td>Platform: OS X </td><td>Xcode4 </td><td>? </td><td>? </td><td>? </td><td>Yes </td><td>? </td><td>Yes </td><td>? </td><td>? </td></tr>
+<td>Platform: OS X </td><td>Xcode4 </td><td>? </td><td>? </td><td>? </td><td>Yes </td><td>? </td><td>Yes </td><td>Yes </td><td>? </td><td>? </td></tr>
 <tr>
-<td>Platform: Android </td><td>NDK10d </td><td>Yes </td><td>? </td><td>? </td><td>? </td><td>? </td><td>? </td><td>? </td><td>? </td></tr>
+<td>Platform: Android </td><td>NDK10d </td><td>Yes </td><td>? </td><td>? </td><td>? </td><td>? </td><td>? </td><td>? </td><td>? </td><td>? </td></tr>
 <tr>
-<td>Platform: iOS </td><td>? </td><td>? </td><td>? </td><td>? </td><td>? </td><td>? </td><td>? </td><td>? </td><td>? </td></tr>
+<td>Platform: iOS </td><td>? </td><td>? </td><td>? </td><td>? </td><td>? </td><td>? </td><td>? </td><td>? </td><td>? </td><td>? </td></tr>
 <tr>
-<td>Engine: Unity </td><td>? </td><td>? </td><td>Yes </td><td>? </td><td>? </td><td>? </td><td>? </td><td>? </td><td>? </td></tr>
+<td>Engine: Unity </td><td>? </td><td>? </td><td>Yes </td><td>? </td><td>? </td><td>? </td><td>? </td><td>? </td><td>? </td><td>? </td></tr>
 <tr>
-<td>Primary authors (github) </td><td>gwvo </td><td>gwvo </td><td>ev*/js*</td><td>rw </td><td>rw </td><td>evanw/ev* </td><td>mik* </td><td>ch* </td><td>rw </td></tr>
+<td>Primary authors (github) </td><td>gwvo </td><td>gwvo </td><td>ev*/js*</td><td>rw </td><td>rw </td><td>evanw/ev* </td><td>kr </td><td>mik* </td><td>ch* </td><td>rw </td></tr>
 </table>
 <ul>
 <li>ev = evolutional</li>
 <li>js = jonsimantov</li>
 <li>mik = mikkelfj</li>
 <li>ch = chobie</li>
+<li>kr = krojew</li>
 </ul>
 <p><br />
  </p>
diff --git a/flatbuffers_white_paper.html b/flatbuffers_white_paper.html
index 892064ef675063ea85e61e179ecc6a5316615793..3d34a0f6b762609a3ef00cc4d2822e4c5a475902 100644
--- a/flatbuffers_white_paper.html
+++ b/flatbuffers_white_paper.html
@@ -4,23 +4,21 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <title>FlatBuffers: FlatBuffers white paper</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
 <link href="navtree.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
 <script type="text/javascript" src="navtree.js"></script>
 <script type="text/javascript">
   $(document).ready(initResizable);
-  $(window).load(resizeHeight);
 </script>
 <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
 <script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
-  $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,500italic,700,700italic|Roboto+Mono:400,700" rel="stylesheet">
 <link href="style.css" rel="stylesheet" type="text/css"/>
@@ -46,39 +44,19 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.7 -->
+<!-- Generated by Doxygen 1.8.13 -->
 <script type="text/javascript">
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </script>
-  <div id="navrow1" class="tabs">
-    <ul class="tablist">
-      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
-      <li><a href="usergroup0.html"><span>Programmer's&#160;Guide</span></a></li>
-      <li><a href="flatbuffers_support.html"><span>Platform&#160;/&#160;Language&#160;/&#160;Feature&#160;support</span></a></li>
-      <li><a href="flatbuffers_benchmarks.html"><span>Benchmarks</span></a></li>
-      <li><a href="flatbuffers_white_paper.html"><span>FlatBuffers&#160;white&#160;paper</span></a></li>
-      <li><a href="flatbuffers_internals.html"><span>FlatBuffers&#160;internals</span></a></li>
-      <li><a href="flatbuffers_grammar.html"><span>Grammar&#160;of&#160;the&#160;schema&#160;language</span></a></li>
-      <li><a href="usergroup2.html"><span>API&#160;Reference</span></a></li>
-      <li><a href="contributing.html"><span>Contributing</span></a></li>
-      <li>
-        <div id="MSearchBox" class="MSearchBoxInactive">
-        <span class="left">
-          <img id="MSearchSelect" src="search/mag_sel.png"
-               onmouseover="return searchBox.OnSearchSelectShow()"
-               onmouseout="return searchBox.OnSearchSelectHide()"
-               alt=""/>
-          <input type="text" id="MSearchField" value="Search" accesskey="S"
-               onfocus="searchBox.OnSearchFieldFocus(true)" 
-               onblur="searchBox.OnSearchFieldFocus(false)" 
-               onkeyup="searchBox.OnSearchFieldChange(event)"/>
-          </span><span class="right">
-            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
-          </span>
-        </div>
-      </li>
-    </ul>
-  </div>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -99,7 +77,7 @@ $(document).ready(function(){initNavTree('flatbuffers_white_paper.html','');});
      onmouseover="return searchBox.OnSearchSelectShow()"
      onmouseout="return searchBox.OnSearchSelectHide()"
      onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Properties</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+</div>
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
diff --git a/flexbuffers.html b/flexbuffers.html
index 439f78ca3bf50bb7900c4a3df5f1241996e41542..34b2ffa3e540b65edb12f34cc349bed3deb4a4d6 100644
--- a/flexbuffers.html
+++ b/flexbuffers.html
@@ -4,23 +4,21 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <title>FlatBuffers: FlexBuffers</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
 <link href="navtree.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
 <script type="text/javascript" src="navtree.js"></script>
 <script type="text/javascript">
   $(document).ready(initResizable);
-  $(window).load(resizeHeight);
 </script>
 <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
 <script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
-  $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,500italic,700,700italic|Roboto+Mono:400,700" rel="stylesheet">
 <link href="style.css" rel="stylesheet" type="text/css"/>
@@ -46,39 +44,19 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.7 -->
+<!-- Generated by Doxygen 1.8.13 -->
 <script type="text/javascript">
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </script>
-  <div id="navrow1" class="tabs">
-    <ul class="tablist">
-      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
-      <li><a href="usergroup0.html"><span>Programmer's&#160;Guide</span></a></li>
-      <li><a href="flatbuffers_support.html"><span>Platform&#160;/&#160;Language&#160;/&#160;Feature&#160;support</span></a></li>
-      <li><a href="flatbuffers_benchmarks.html"><span>Benchmarks</span></a></li>
-      <li><a href="flatbuffers_white_paper.html"><span>FlatBuffers&#160;white&#160;paper</span></a></li>
-      <li><a href="flatbuffers_internals.html"><span>FlatBuffers&#160;internals</span></a></li>
-      <li><a href="flatbuffers_grammar.html"><span>Grammar&#160;of&#160;the&#160;schema&#160;language</span></a></li>
-      <li><a href="usergroup2.html"><span>API&#160;Reference</span></a></li>
-      <li><a href="contributing.html"><span>Contributing</span></a></li>
-      <li>
-        <div id="MSearchBox" class="MSearchBoxInactive">
-        <span class="left">
-          <img id="MSearchSelect" src="search/mag_sel.png"
-               onmouseover="return searchBox.OnSearchSelectShow()"
-               onmouseout="return searchBox.OnSearchSelectHide()"
-               alt=""/>
-          <input type="text" id="MSearchField" value="Search" accesskey="S"
-               onfocus="searchBox.OnSearchFieldFocus(true)" 
-               onblur="searchBox.OnSearchFieldFocus(false)" 
-               onkeyup="searchBox.OnSearchFieldChange(event)"/>
-          </span><span class="right">
-            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
-          </span>
-        </div>
-      </li>
-    </ul>
-  </div>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -99,7 +77,7 @@ $(document).ready(function(){initNavTree('flexbuffers.html','');});
      onmouseover="return searchBox.OnSearchSelectShow()"
      onmouseout="return searchBox.OnSearchSelectHide()"
      onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Properties</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+</div>
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
@@ -123,43 +101,17 @@ $(document).ready(function(){initNavTree('flexbuffers.html','');});
 <p>This is for C++, other languages may follow.</p>
 <p>Include the header <code>flexbuffers.h</code>, which in turn depends on <code>flatbuffers.h</code> and <code>util.h</code>.</p>
 <p>To create a buffer:</p>
-<div class="fragment"><div class="line"><a class="code" href="group__flatbuffers__javascript__api.html#gabd00b65bbe9e9fbac55fe4982eb6cec8">flexbuffers::Builder</a> fbb;</div>
-<div class="line">fbb.Int(13);</div>
-<div class="line">fbb.Finish();</div>
-</div><!-- fragment --><p>You create any value, followed by <code>Finish</code>. Unlike FlatBuffers which requires the root value to be a table, here any value can be the root, including a lonely int value.</p>
+<div class="fragment"><div class="line">flexbuffers::Builder fbb;</div><div class="line">fbb.Int(13);</div><div class="line">fbb.Finish();</div></div><!-- fragment --><p>You create any value, followed by <code>Finish</code>. Unlike FlatBuffers which requires the root value to be a table, here any value can be the root, including a lonely int value.</p>
 <p>You can now access the <code>std::vector&lt;uint8_t&gt;</code> that contains the encoded value as <code>fbb.GetBuffer()</code>. Write it, send it, or store it in a parent FlatBuffer. In this case, the buffer is just 3 bytes in size.</p>
 <p>To read this value back, you could just say:</p>
-<div class="fragment"><div class="line"><span class="keyword">auto</span> root = flexbuffers::GetRoot(my_buffer);</div>
-<div class="line">int64_t i = root.AsInt64();</div>
-</div><!-- fragment --><p>FlexBuffers stores ints only as big as needed, so it doesn't differentiate between different sizes of ints. You can ask for the 64 bit version, regardless of what you put in. In fact, since you demand to read the root as an int, if you supply a buffer that actually contains a float, or a string with numbers in it, it will convert it for you on the fly as well, or return 0 if it can't. If instead you actually want to know what is inside the buffer before you access it, you can call <code>root.GetType()</code> or <code>root.IsInt()</code> etc.</p>
+<div class="fragment"><div class="line"><span class="keyword">auto</span> root = flexbuffers::GetRoot(my_buffer);</div><div class="line">int64_t i = root.AsInt64();</div></div><!-- fragment --><p>FlexBuffers stores ints only as big as needed, so it doesn't differentiate between different sizes of ints. You can ask for the 64 bit version, regardless of what you put in. In fact, since you demand to read the root as an int, if you supply a buffer that actually contains a float, or a string with numbers in it, it will convert it for you on the fly as well, or return 0 if it can't. If instead you actually want to know what is inside the buffer before you access it, you can call <code>root.GetType()</code> or <code>root.IsInt()</code> etc.</p>
 <p>Here's a slightly more complex value you could write instead of <code>fbb.Int</code> above:</p>
-<div class="fragment"><div class="line">fbb.Map([&amp;]() {</div>
-<div class="line">  fbb.Vector(<span class="stringliteral">&quot;vec&quot;</span>, [&amp;]() {</div>
-<div class="line">    fbb.Int(-100);</div>
-<div class="line">    fbb.String(<span class="stringliteral">&quot;Fred&quot;</span>);</div>
-<div class="line">    fbb.IndirectFloat(4.0f);</div>
-<div class="line">  });</div>
-<div class="line">  fbb.UInt(<span class="stringliteral">&quot;foo&quot;</span>, 100);</div>
-<div class="line">});</div>
-</div><!-- fragment --><p>This stores the equivalent of the JSON value <code>{ vec: [ -100, "Fred", 4.0 ], foo: 100 }</code>. The root is a dictionary that has just two key-value pairs, with keys <code>vec</code> and <code>foo</code>. Unlike FlatBuffers, it actually has to store these keys in the buffer (which it does only once if you store multiple such objects, by pooling key values), but also unlike FlatBuffers it has no restriction on the keys (fields) that you use.</p>
+<div class="fragment"><div class="line">fbb.Map([&amp;]() {</div><div class="line">  fbb.Vector(<span class="stringliteral">&quot;vec&quot;</span>, [&amp;]() {</div><div class="line">    fbb.Int(-100);</div><div class="line">    fbb.String(<span class="stringliteral">&quot;Fred&quot;</span>);</div><div class="line">    fbb.IndirectFloat(4.0f);</div><div class="line">  });</div><div class="line">  fbb.UInt(<span class="stringliteral">&quot;foo&quot;</span>, 100);</div><div class="line">});</div></div><!-- fragment --><p>This stores the equivalent of the JSON value <code>{ vec: [ -100, "Fred", 4.0 ], foo: 100 }</code>. The root is a dictionary that has just two key-value pairs, with keys <code>vec</code> and <code>foo</code>. Unlike FlatBuffers, it actually has to store these keys in the buffer (which it does only once if you store multiple such objects, by pooling key values), but also unlike FlatBuffers it has no restriction on the keys (fields) that you use.</p>
 <p>The map constructor uses a C++11 Lambda to group its children, but you can also use more conventional start/end calls if you prefer.</p>
 <p>The first value in the map is a vector. You'll notice that unlike FlatBuffers, you can use mixed types. There is also a <code>TypedVector</code> variant that only allows a single type, and uses a bit less memory.</p>
 <p><code>IndirectFloat</code> is an interesting feature that allows you to store values by offset rather than inline. Though that doesn't make any visible change to the user, the consequence is that large values (especially doubles or 64 bit ints) that occur more than once can be shared. Another use case is inside of vectors, where the largest element makes up the size of all elements (e.g. a single double forces all elements to 64bit), so storing a lot of small integers together with a double is more efficient if the double is indirect.</p>
 <p>Accessing it:</p>
-<div class="fragment"><div class="line"><span class="keyword">auto</span> map = flexbuffers::GetRoot(my_buffer).AsMap();</div>
-<div class="line">map.size();  <span class="comment">// 2</span></div>
-<div class="line"><span class="keyword">auto</span> vec = map[<span class="stringliteral">&quot;vec&quot;</span>].AsVector();</div>
-<div class="line">vec.size();  <span class="comment">// 3</span></div>
-<div class="line">vec[0].AsInt64();  <span class="comment">// -100;</span></div>
-<div class="line">vec[1].AsString().c_str();  <span class="comment">// &quot;Fred&quot;;</span></div>
-<div class="line">vec[1].AsInt64();  <span class="comment">// 0 (Number parsing failed).</span></div>
-<div class="line">vec[2].AsDouble();  <span class="comment">// 4.0</span></div>
-<div class="line">vec[2].AsString().IsTheEmptyString();  <span class="comment">// true (Wrong Type).</span></div>
-<div class="line">vec[2].AsString().c_str();  <span class="comment">// &quot;&quot; (This still works though).</span></div>
-<div class="line">vec[2].ToString().c_str();  <span class="comment">// &quot;4&quot; (Or have it converted).</span></div>
-<div class="line">map[<span class="stringliteral">&quot;foo&quot;</span>].AsUInt8();  <span class="comment">// 100</span></div>
-<div class="line">map[<span class="stringliteral">&quot;unknown&quot;</span>].IsNull();  <span class="comment">// true</span></div>
-</div><!-- fragment --><h1>Binary encoding</h1>
+<div class="fragment"><div class="line"><span class="keyword">auto</span> map = flexbuffers::GetRoot(my_buffer).AsMap();</div><div class="line">map.size();  <span class="comment">// 2</span></div><div class="line"><span class="keyword">auto</span> vec = map[<span class="stringliteral">&quot;vec&quot;</span>].AsVector();</div><div class="line">vec.size();  <span class="comment">// 3</span></div><div class="line">vec[0].AsInt64();  <span class="comment">// -100;</span></div><div class="line">vec[1].AsString().c_str();  <span class="comment">// &quot;Fred&quot;;</span></div><div class="line">vec[1].AsInt64();  <span class="comment">// 0 (Number parsing failed).</span></div><div class="line">vec[2].AsDouble();  <span class="comment">// 4.0</span></div><div class="line">vec[2].AsString().IsTheEmptyString();  <span class="comment">// true (Wrong Type).</span></div><div class="line">vec[2].AsString().c_str();  <span class="comment">// &quot;&quot; (This still works though).</span></div><div class="line">vec[2].ToString().c_str();  <span class="comment">// &quot;4&quot; (Or have it converted).</span></div><div class="line">map[<span class="stringliteral">&quot;foo&quot;</span>].AsUInt8();  <span class="comment">// 100</span></div><div class="line">map[<span class="stringliteral">&quot;unknown&quot;</span>].IsNull();  <span class="comment">// true</span></div></div><!-- fragment --><h1>Binary encoding</h1>
 <p>A description of how FlexBuffers are encoded is in the <a class="el" href="flatbuffers_internals.html">internals</a> document.</p>
 <h1>Nesting inside a FlatBuffer</h1>
 <p>You can mark a field as containing a FlexBuffer, e.g. </p><pre class="fragment">a:[ubyte] (flexbuffer);
diff --git a/folderclosed.png b/folderclosed.png
new file mode 100644
index 0000000000000000000000000000000000000000..bb8ab35edce8e97554e360005ee9fc5bffb36e66
Binary files /dev/null and b/folderclosed.png differ
diff --git a/folderopen.png b/folderopen.png
new file mode 100644
index 0000000000000000000000000000000000000000..d6c7f676a3b3ef8c2c307d319dff3c6a604eb227
Binary files /dev/null and b/folderopen.png differ
diff --git a/ftv2mnode.png b/ftv2mnode.png
index 0b63f6d38c4b9ec907b820192ebe9724ed6eca22..3caf47df8addae74f92b2cc3abfb68b113f75a8b 100644
Binary files a/ftv2mnode.png and b/ftv2mnode.png differ
diff --git a/ftv2pnode.png b/ftv2pnode.png
index c6ee22f937a07d1dbfc27c669d11f8ed13e2f152..f1aaad3786e39e12a1233ce00d96ab8b1018456a 100644
Binary files a/ftv2pnode.png and b/ftv2pnode.png differ
diff --git a/functions.html b/functions.html
index b125bdfc735c14fabb6fd94eeef81875169309e3..fda192744056c2c028751da6247c15df59b75325 100644
--- a/functions.html
+++ b/functions.html
@@ -4,23 +4,21 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <title>FlatBuffers: Class Members</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
 <link href="navtree.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
 <script type="text/javascript" src="navtree.js"></script>
 <script type="text/javascript">
   $(document).ready(initResizable);
-  $(window).load(resizeHeight);
 </script>
 <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
 <script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
-  $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,500italic,700,700italic|Roboto+Mono:400,700" rel="stylesheet">
 <link href="style.css" rel="stylesheet" type="text/css"/>
@@ -46,80 +44,19 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.7 -->
+<!-- Generated by Doxygen 1.8.13 -->
 <script type="text/javascript">
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </script>
-  <div id="navrow1" class="tabs">
-    <ul class="tablist">
-      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
-      <li><a href="usergroup0.html"><span>Programmer's&#160;Guide</span></a></li>
-      <li><a href="flatbuffers_support.html"><span>Platform&#160;/&#160;Language&#160;/&#160;Feature&#160;support</span></a></li>
-      <li><a href="flatbuffers_benchmarks.html"><span>Benchmarks</span></a></li>
-      <li><a href="flatbuffers_white_paper.html"><span>FlatBuffers&#160;white&#160;paper</span></a></li>
-      <li><a href="flatbuffers_internals.html"><span>FlatBuffers&#160;internals</span></a></li>
-      <li><a href="flatbuffers_grammar.html"><span>Grammar&#160;of&#160;the&#160;schema&#160;language</span></a></li>
-      <li class="current"><a href="usergroup2.html"><span>API&#160;Reference</span></a></li>
-      <li><a href="contributing.html"><span>Contributing</span></a></li>
-      <li>
-        <div id="MSearchBox" class="MSearchBoxInactive">
-        <span class="left">
-          <img id="MSearchSelect" src="search/mag_sel.png"
-               onmouseover="return searchBox.OnSearchSelectShow()"
-               onmouseout="return searchBox.OnSearchSelectHide()"
-               alt=""/>
-          <input type="text" id="MSearchField" value="Search" accesskey="S"
-               onfocus="searchBox.OnSearchFieldFocus(true)" 
-               onblur="searchBox.OnSearchFieldFocus(false)" 
-               onkeyup="searchBox.OnSearchFieldChange(event)"/>
-          </span><span class="right">
-            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
-          </span>
-        </div>
-      </li>
-    </ul>
-  </div>
-  <div id="navrow2" class="tabs2">
-    <ul class="tablist">
-      <li><a href="modules.html"><span>APIs</span></a></li>
-      <li class="current"><a href="annotated.html"><span>Class&#160;List</span></a></li>
-    </ul>
-  </div>
-  <div id="navrow2" class="tabs2">
-    <ul class="tablist">
-      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
-      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
-      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
-      <li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
-    </ul>
-  </div>
-  <div id="navrow3" class="tabs2">
-    <ul class="tablist">
-      <li class="current"><a href="functions.html"><span>All</span></a></li>
-      <li><a href="functions_func.html"><span>Functions</span></a></li>
-      <li><a href="functions_vars.html"><span>Variables</span></a></li>
-      <li><a href="functions_prop.html"><span>Properties</span></a></li>
-    </ul>
-  </div>
-  <div id="navrow4" class="tabs3">
-    <ul class="tablist">
-      <li><a href="#index_$"><span>$</span></a></li>
-      <li><a href="#index__"><span>_</span></a></li>
-      <li><a href="#index_a"><span>a</span></a></li>
-      <li><a href="#index_c"><span>c</span></a></li>
-      <li><a href="#index_d"><span>d</span></a></li>
-      <li><a href="#index_e"><span>e</span></a></li>
-      <li><a href="#index_f"><span>f</span></a></li>
-      <li><a href="#index_g"><span>g</span></a></li>
-      <li><a href="#index_i"><span>i</span></a></li>
-      <li><a href="#index_k"><span>k</span></a></li>
-      <li><a href="#index_n"><span>n</span></a></li>
-      <li><a href="#index_o"><span>o</span></a></li>
-      <li><a href="#index_p"><span>p</span></a></li>
-      <li><a href="#index_r"><span>r</span></a></li>
-      <li class="current"><a href="#index_s"><span>s</span></a></li>
-    </ul>
-  </div>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -140,7 +77,7 @@ $(document).ready(function(){initNavTree('functions.html','');});
      onmouseover="return searchBox.OnSearchSelectShow()"
      onmouseout="return searchBox.OnSearchSelectHide()"
      onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Properties</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+</div>
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
@@ -152,21 +89,21 @@ $(document).ready(function(){initNavTree('functions.html','');});
 <div class="contents">
 <div class="textblock">Here is a list of all documented class members with links to the class documentation for each member:</div>
 
-<h3><a class="anchor" id="index_$"></a>- $ -</h3><ul>
+<h3><a id="index_0x24"></a>- $ -</h3><ul>
 <li>$bb
 : <a class="el" href="class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html#aa01f9205792614930138e19d3e310b7b">Google\FlatBuffers\FlatbufferBuilder</a>
 </li>
 </ul>
 
 
-<h3><a class="anchor" id="index__"></a>- _ -</h3><ul>
+<h3><a id="index__"></a>- _ -</h3><ul>
 <li>__construct()
 : <a class="el" href="class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html#a5aa5323732b1efe0da24fa235a40f5d4">Google\FlatBuffers\FlatbufferBuilder</a>
 </li>
 </ul>
 
 
-<h3><a class="anchor" id="index_a"></a>- a -</h3><ul>
+<h3><a id="index_a"></a>- a -</h3><ul>
 <li>AddBool()
 : <a class="el" href="class_flat_buffers_1_1_flat_buffer_builder.html#a6b66d785555d19cd0f141978eff78e2e">FlatBuffers.FlatBufferBuilder</a>
 </li>
@@ -266,7 +203,7 @@ $(document).ready(function(){initNavTree('functions.html','');});
 </ul>
 
 
-<h3><a class="anchor" id="index_c"></a>- c -</h3><ul>
+<h3><a id="index_c"></a>- c -</h3><ul>
 <li>clear()
 : <a class="el" href="classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a3a5dd461dc86a2132eaa4f0348b4c001">com.google.flatbuffers.FlatBufferBuilder</a>
 </li>
@@ -300,7 +237,7 @@ $(document).ready(function(){initNavTree('functions.html','');});
 : <a class="el" href="classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#acc889115f91460ca89ce981cb02c2039">com.google.flatbuffers.FlatBufferBuilder</a>
 </li>
 <li>CreateVector()
-: <a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#af715dd24dd37cb0151dc7a980ad0f207">flatbuffers::FlatBufferBuilder</a>
+: <a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#a2cca5c89246a53e80e6ad9487f4c36f3">flatbuffers::FlatBufferBuilder</a>
 </li>
 <li>CreateVectorOfNativeStructs()
 : <a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#a3d57074082aaab8cdeb8474ff9df0b53">flatbuffers::FlatBufferBuilder</a>
@@ -309,7 +246,7 @@ $(document).ready(function(){initNavTree('functions.html','');});
 : <a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#a799701af34c398d8eb86e049b73bcecf">flatbuffers::FlatBufferBuilder</a>
 </li>
 <li>CreateVectorOfSortedStructs()
-: <a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#a7cc10b709dfa3e72083843d1a5e36c15">flatbuffers::FlatBufferBuilder</a>
+: <a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#ab1f44cc1b130e13b41e9a80de76e25cf">flatbuffers::FlatBufferBuilder</a>
 </li>
 <li>CreateVectorOfSortedTables()
 : <a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#a2130ef232ff405eebe2e7f184ecd06e6">flatbuffers::FlatBufferBuilder</a>
@@ -318,7 +255,7 @@ $(document).ready(function(){initNavTree('functions.html','');});
 : <a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#a592110519a6c8db1926f1365bf2a58e6">flatbuffers::FlatBufferBuilder</a>
 </li>
 <li>CreateVectorOfStructs()
-: <a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#afede51fd9c32d146cbb1832f57c5e1b7">flatbuffers::FlatBufferBuilder</a>
+: <a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#a6e90ada59d9553636f72ce8e4a892f72">flatbuffers::FlatBufferBuilder</a>
 </li>
 <li>createVectorOfTables()
 : <a class="el" href="classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a24ea4649f508a7843e429737a4a9fad1">com.google.flatbuffers.FlatBufferBuilder</a>
@@ -329,7 +266,7 @@ $(document).ready(function(){initNavTree('functions.html','');});
 </ul>
 
 
-<h3><a class="anchor" id="index_d"></a>- d -</h3><ul>
+<h3><a id="index_d"></a>- d -</h3><ul>
 <li>dataBuffer()
 : <a class="el" href="classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#abf0fd34f0d93a9d89f595fddf752feb7">com.google.flatbuffers.FlatBufferBuilder</a>
 </li>
@@ -345,31 +282,35 @@ $(document).ready(function(){initNavTree('functions.html','');});
 </ul>
 
 
-<h3><a class="anchor" id="index_e"></a>- e -</h3><ul>
+<h3><a id="index_e"></a>- e -</h3><ul>
 <li>EndVector()
 : <a class="el" href="class_flat_buffers_1_1_flat_buffer_builder.html#a7cacff748cbf996b52de2e31e731af41">FlatBuffers.FlatBufferBuilder</a>
 </li>
 </ul>
 
 
-<h3><a class="anchor" id="index_f"></a>- f -</h3><ul>
+<h3><a id="index_f"></a>- f -</h3><ul>
 <li>finish()
-: <a class="el" href="classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#aee9ed3214a7b35075773c506e3d95a14">com.google.flatbuffers.FlatBufferBuilder</a>
+: <a class="el" href="classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#af344604d66e9e8524fef826fc516d5b2">com.google.flatbuffers.FlatBufferBuilder</a>
 </li>
 <li>Finish()
-: <a class="el" href="class_flat_buffers_1_1_flat_buffer_builder.html#a1afc6853539aaff7ac6937ed03ff5c7b">FlatBuffers.FlatBufferBuilder</a>
+: <a class="el" href="class_flat_buffers_1_1_flat_buffer_builder.html#a709d1ded4ffd922b61bc6f7f4a12fb97">FlatBuffers.FlatBufferBuilder</a>
 , <a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#a0c9e507b373d598b51052fab4fa34912">flatbuffers::FlatBufferBuilder</a>
 </li>
 <li>finish()
 : <a class="el" href="class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html#a799f0d1cf0fff359d6d04768108cb2a5">Google\FlatBuffers\FlatbufferBuilder</a>
 </li>
+<li>finishSizePrefixed()
+: <a class="el" href="classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#aa00c035b0f60abe32a5f1467ebd4ec54">com.google.flatbuffers.FlatBufferBuilder</a>
+</li>
 <li>FinishSizePrefixed()
-: <a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#a7ba8462e408431054c99d25120326220">flatbuffers::FlatBufferBuilder</a>
+: <a class="el" href="class_flat_buffers_1_1_flat_buffer_builder.html#a425ab2bd13a0e4331a7190ec2d17c3b2">FlatBuffers.FlatBufferBuilder</a>
+, <a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#a7ba8462e408431054c99d25120326220">flatbuffers::FlatBufferBuilder</a>
 </li>
 <li>FlatBufferBuilder()
 : <a class="el" href="classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#aed1e475e75409625c8df85dc3d396e4c">com.google.flatbuffers.FlatBufferBuilder</a>
 , <a class="el" href="class_flat_buffers_1_1_flat_buffer_builder.html#ae24f93e3f9672846dd241d585d62c63d">FlatBuffers.FlatBufferBuilder</a>
-, <a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#ae4ab74f53187e6c3e6041d34e01904c4">flatbuffers::FlatBufferBuilder</a>
+, <a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#ab0173786ea4ec3e4ae10555639b2996c">flatbuffers::FlatBufferBuilder</a>
 </li>
 <li>forceDefaults()
 : <a class="el" href="classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#aaadff3772bfdff756b4f269afae5ac69">com.google.flatbuffers.FlatBufferBuilder</a>
@@ -384,37 +325,40 @@ $(document).ready(function(){initNavTree('functions.html','');});
 </ul>
 
 
-<h3><a class="anchor" id="index_g"></a>- g -</h3><ul>
+<h3><a id="index_g"></a>- g -</h3><ul>
 <li>GetBufferMinAlignment()
 : <a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#aa1ebce1f3f46832946a95952af1e9c2b">flatbuffers::FlatBufferBuilder</a>
 </li>
 <li>GetBufferPointer()
-: <a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#a8dc35f792179df4ca850492c1796d8b8">flatbuffers::FlatBufferBuilder</a>
+: <a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#ab81ab8aa273c270b0942fd81489cad83">flatbuffers::FlatBufferBuilder</a>
 </li>
 <li>GetCurrentBufferPointer()
-: <a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#a3f4252e9bc005ba6c700469544fdccc9">flatbuffers::FlatBufferBuilder</a>
+: <a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#a099810f03046139d1854d20a1c2a2e41">flatbuffers::FlatBufferBuilder</a>
 </li>
 <li>GetSize()
-: <a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#ac1bfd609f7f736e9a37cedae77448b63">flatbuffers::FlatBufferBuilder</a>
+: <a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#a66c8fd33ab9b3b237954c9ea38648f7f">flatbuffers::FlatBufferBuilder</a>
+</li>
+<li>getSizePrefix()
+: <a class="el" href="classcom_1_1google_1_1flatbuffers_1_1_byte_buffer_util.html#a4c87c63fa8d31e039b344bbaef00a3be">com.google.flatbuffers.ByteBufferUtil</a>
 </li>
 </ul>
 
 
-<h3><a class="anchor" id="index_i"></a>- i -</h3><ul>
+<h3><a id="index_i"></a>- i -</h3><ul>
 <li>init()
 : <a class="el" href="classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#adf671e70a4d30c85f37393c47a7a7dd1">com.google.flatbuffers.FlatBufferBuilder</a>
 </li>
 </ul>
 
 
-<h3><a class="anchor" id="index_k"></a>- k -</h3><ul>
+<h3><a id="index_k"></a>- k -</h3><ul>
 <li>kFileIdentifierLength
 : <a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#af8c7583c92e1d1d6f438977da5158d19">flatbuffers::FlatBufferBuilder</a>
 </li>
 </ul>
 
 
-<h3><a class="anchor" id="index_n"></a>- n -</h3><ul>
+<h3><a id="index_n"></a>- n -</h3><ul>
 <li>newByteBuffer()
 : <a class="el" href="interfacecom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder_1_1_byte_buffer_factory.html#a0db9a9033d232d584443a433d7576f4a">com.google.flatbuffers.FlatBufferBuilder.ByteBufferFactory</a>
 , <a class="el" href="classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder_1_1_heap_byte_buffer_factory.html#aac26ff51a8162b37a072792ec9068644">com.google.flatbuffers.FlatBufferBuilder.HeapByteBufferFactory</a>
@@ -422,14 +366,14 @@ $(document).ready(function(){initNavTree('functions.html','');});
 </ul>
 
 
-<h3><a class="anchor" id="index_o"></a>- o -</h3><ul>
+<h3><a id="index_o"></a>- o -</h3><ul>
 <li>offset()
 : <a class="el" href="classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#ae3a3fbf645e64ce784a524f935a6e6f2">com.google.flatbuffers.FlatBufferBuilder</a>
 </li>
 </ul>
 
 
-<h3><a class="anchor" id="index_p"></a>- p -</h3><ul>
+<h3><a id="index_p"></a>- p -</h3><ul>
 <li>pad()
 : <a class="el" href="classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a4a2e8c6430c6538509147225b8a4697e">com.google.flatbuffers.FlatBufferBuilder</a>
 </li>
@@ -460,17 +404,20 @@ $(document).ready(function(){initNavTree('functions.html','');});
 </ul>
 
 
-<h3><a class="anchor" id="index_r"></a>- r -</h3><ul>
+<h3><a id="index_r"></a>- r -</h3><ul>
 <li>Release()
 : <a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#a5e2c3a1e47f0ab4a3a3f07a07a52fb45">flatbuffers::FlatBufferBuilder</a>
 </li>
 <li>ReleaseBufferPointer()
 : <a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#a0e715d9019060b4b753c4e5228be56e8">flatbuffers::FlatBufferBuilder</a>
 </li>
+<li>removeSizePrefix()
+: <a class="el" href="classcom_1_1google_1_1flatbuffers_1_1_byte_buffer_util.html#a58d6c39c53a0c981a2f72a5eca7d992c">com.google.flatbuffers.ByteBufferUtil</a>
+</li>
 </ul>
 
 
-<h3><a class="anchor" id="index_s"></a>- s -</h3><ul>
+<h3><a id="index_s"></a>- s -</h3><ul>
 <li>sizedByteArray()
 : <a class="el" href="classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a81a5c2d7ab36e913cc16d9499aabe078">com.google.flatbuffers.FlatBufferBuilder</a>
 </li>
diff --git a/functions_func.html b/functions_func.html
index 133dec8549cb9eea6cadb935104064550b1e78dd..316e07f3e7dd947b12e113ef0e1e70011e621351 100644
--- a/functions_func.html
+++ b/functions_func.html
@@ -4,23 +4,21 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <title>FlatBuffers: Class Members - Functions</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
 <link href="navtree.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
 <script type="text/javascript" src="navtree.js"></script>
 <script type="text/javascript">
   $(document).ready(initResizable);
-  $(window).load(resizeHeight);
 </script>
 <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
 <script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
-  $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,500italic,700,700italic|Roboto+Mono:400,700" rel="stylesheet">
 <link href="style.css" rel="stylesheet" type="text/css"/>
@@ -46,78 +44,19 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.7 -->
+<!-- Generated by Doxygen 1.8.13 -->
 <script type="text/javascript">
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </script>
-  <div id="navrow1" class="tabs">
-    <ul class="tablist">
-      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
-      <li><a href="usergroup0.html"><span>Programmer's&#160;Guide</span></a></li>
-      <li><a href="flatbuffers_support.html"><span>Platform&#160;/&#160;Language&#160;/&#160;Feature&#160;support</span></a></li>
-      <li><a href="flatbuffers_benchmarks.html"><span>Benchmarks</span></a></li>
-      <li><a href="flatbuffers_white_paper.html"><span>FlatBuffers&#160;white&#160;paper</span></a></li>
-      <li><a href="flatbuffers_internals.html"><span>FlatBuffers&#160;internals</span></a></li>
-      <li><a href="flatbuffers_grammar.html"><span>Grammar&#160;of&#160;the&#160;schema&#160;language</span></a></li>
-      <li class="current"><a href="usergroup2.html"><span>API&#160;Reference</span></a></li>
-      <li><a href="contributing.html"><span>Contributing</span></a></li>
-      <li>
-        <div id="MSearchBox" class="MSearchBoxInactive">
-        <span class="left">
-          <img id="MSearchSelect" src="search/mag_sel.png"
-               onmouseover="return searchBox.OnSearchSelectShow()"
-               onmouseout="return searchBox.OnSearchSelectHide()"
-               alt=""/>
-          <input type="text" id="MSearchField" value="Search" accesskey="S"
-               onfocus="searchBox.OnSearchFieldFocus(true)" 
-               onblur="searchBox.OnSearchFieldFocus(false)" 
-               onkeyup="searchBox.OnSearchFieldChange(event)"/>
-          </span><span class="right">
-            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
-          </span>
-        </div>
-      </li>
-    </ul>
-  </div>
-  <div id="navrow2" class="tabs2">
-    <ul class="tablist">
-      <li><a href="modules.html"><span>APIs</span></a></li>
-      <li class="current"><a href="annotated.html"><span>Class&#160;List</span></a></li>
-    </ul>
-  </div>
-  <div id="navrow2" class="tabs2">
-    <ul class="tablist">
-      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
-      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
-      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
-      <li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
-    </ul>
-  </div>
-  <div id="navrow3" class="tabs2">
-    <ul class="tablist">
-      <li><a href="functions.html"><span>All</span></a></li>
-      <li class="current"><a href="functions_func.html"><span>Functions</span></a></li>
-      <li><a href="functions_vars.html"><span>Variables</span></a></li>
-      <li><a href="functions_prop.html"><span>Properties</span></a></li>
-    </ul>
-  </div>
-  <div id="navrow4" class="tabs3">
-    <ul class="tablist">
-      <li><a href="#index__"><span>_</span></a></li>
-      <li><a href="#index_a"><span>a</span></a></li>
-      <li><a href="#index_c"><span>c</span></a></li>
-      <li><a href="#index_d"><span>d</span></a></li>
-      <li><a href="#index_e"><span>e</span></a></li>
-      <li><a href="#index_f"><span>f</span></a></li>
-      <li><a href="#index_g"><span>g</span></a></li>
-      <li><a href="#index_i"><span>i</span></a></li>
-      <li><a href="#index_n"><span>n</span></a></li>
-      <li><a href="#index_o"><span>o</span></a></li>
-      <li><a href="#index_p"><span>p</span></a></li>
-      <li><a href="#index_r"><span>r</span></a></li>
-      <li class="current"><a href="#index_s"><span>s</span></a></li>
-    </ul>
-  </div>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -138,7 +77,7 @@ $(document).ready(function(){initNavTree('functions_func.html','');});
      onmouseover="return searchBox.OnSearchSelectShow()"
      onmouseout="return searchBox.OnSearchSelectHide()"
      onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Properties</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+</div>
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
@@ -150,14 +89,14 @@ $(document).ready(function(){initNavTree('functions_func.html','');});
 <div class="contents">
 &#160;
 
-<h3><a class="anchor" id="index__"></a>- _ -</h3><ul>
+<h3><a id="index__"></a>- _ -</h3><ul>
 <li>__construct()
 : <a class="el" href="class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html#a5aa5323732b1efe0da24fa235a40f5d4">Google\FlatBuffers\FlatbufferBuilder</a>
 </li>
 </ul>
 
 
-<h3><a class="anchor" id="index_a"></a>- a -</h3><ul>
+<h3><a id="index_a"></a>- a -</h3><ul>
 <li>AddBool()
 : <a class="el" href="class_flat_buffers_1_1_flat_buffer_builder.html#a6b66d785555d19cd0f141978eff78e2e">FlatBuffers.FlatBufferBuilder</a>
 </li>
@@ -257,7 +196,7 @@ $(document).ready(function(){initNavTree('functions_func.html','');});
 </ul>
 
 
-<h3><a class="anchor" id="index_c"></a>- c -</h3><ul>
+<h3><a id="index_c"></a>- c -</h3><ul>
 <li>clear()
 : <a class="el" href="classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a3a5dd461dc86a2132eaa4f0348b4c001">com.google.flatbuffers.FlatBufferBuilder</a>
 </li>
@@ -276,7 +215,7 @@ $(document).ready(function(){initNavTree('functions_func.html','');});
 </li>
 <li>CreateString()
 : <a class="el" href="class_flat_buffers_1_1_flat_buffer_builder.html#a3b6e42519f278e4a060895633d048070">FlatBuffers.FlatBufferBuilder</a>
-, <a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#aad93d113ac24e86ed04b5236b3f4c0c5">flatbuffers::FlatBufferBuilder</a>
+, <a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#a8c3af55e64f5cda9aefa38ac5287ef9f">flatbuffers::FlatBufferBuilder</a>
 </li>
 <li>createString()
 : <a class="el" href="class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html#ac54a8acfac1dda020b610da53b2d9a0f">Google\FlatBuffers\FlatbufferBuilder</a>
@@ -291,7 +230,7 @@ $(document).ready(function(){initNavTree('functions_func.html','');});
 : <a class="el" href="classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#acc889115f91460ca89ce981cb02c2039">com.google.flatbuffers.FlatBufferBuilder</a>
 </li>
 <li>CreateVector()
-: <a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#af715dd24dd37cb0151dc7a980ad0f207">flatbuffers::FlatBufferBuilder</a>
+: <a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#a2cca5c89246a53e80e6ad9487f4c36f3">flatbuffers::FlatBufferBuilder</a>
 </li>
 <li>CreateVectorOfNativeStructs()
 : <a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#a3d57074082aaab8cdeb8474ff9df0b53">flatbuffers::FlatBufferBuilder</a>
@@ -300,7 +239,7 @@ $(document).ready(function(){initNavTree('functions_func.html','');});
 : <a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#a799701af34c398d8eb86e049b73bcecf">flatbuffers::FlatBufferBuilder</a>
 </li>
 <li>CreateVectorOfSortedStructs()
-: <a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#a7cc10b709dfa3e72083843d1a5e36c15">flatbuffers::FlatBufferBuilder</a>
+: <a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#ab1f44cc1b130e13b41e9a80de76e25cf">flatbuffers::FlatBufferBuilder</a>
 </li>
 <li>CreateVectorOfSortedTables()
 : <a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#a2130ef232ff405eebe2e7f184ecd06e6">flatbuffers::FlatBufferBuilder</a>
@@ -309,7 +248,7 @@ $(document).ready(function(){initNavTree('functions_func.html','');});
 : <a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#a592110519a6c8db1926f1365bf2a58e6">flatbuffers::FlatBufferBuilder</a>
 </li>
 <li>CreateVectorOfStructs()
-: <a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#afede51fd9c32d146cbb1832f57c5e1b7">flatbuffers::FlatBufferBuilder</a>
+: <a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#a6e90ada59d9553636f72ce8e4a892f72">flatbuffers::FlatBufferBuilder</a>
 </li>
 <li>createVectorOfTables()
 : <a class="el" href="classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a24ea4649f508a7843e429737a4a9fad1">com.google.flatbuffers.FlatBufferBuilder</a>
@@ -320,7 +259,7 @@ $(document).ready(function(){initNavTree('functions_func.html','');});
 </ul>
 
 
-<h3><a class="anchor" id="index_d"></a>- d -</h3><ul>
+<h3><a id="index_d"></a>- d -</h3><ul>
 <li>dataBuffer()
 : <a class="el" href="classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#abf0fd34f0d93a9d89f595fddf752feb7">com.google.flatbuffers.FlatBufferBuilder</a>
 , <a class="el" href="class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html#ae7e97c2d21da04ef483e6940d442938f">Google\FlatBuffers\FlatbufferBuilder</a>
@@ -331,31 +270,35 @@ $(document).ready(function(){initNavTree('functions_func.html','');});
 </ul>
 
 
-<h3><a class="anchor" id="index_e"></a>- e -</h3><ul>
+<h3><a id="index_e"></a>- e -</h3><ul>
 <li>EndVector()
 : <a class="el" href="class_flat_buffers_1_1_flat_buffer_builder.html#a7cacff748cbf996b52de2e31e731af41">FlatBuffers.FlatBufferBuilder</a>
 </li>
 </ul>
 
 
-<h3><a class="anchor" id="index_f"></a>- f -</h3><ul>
+<h3><a id="index_f"></a>- f -</h3><ul>
 <li>finish()
-: <a class="el" href="classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#aee9ed3214a7b35075773c506e3d95a14">com.google.flatbuffers.FlatBufferBuilder</a>
+: <a class="el" href="classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#af344604d66e9e8524fef826fc516d5b2">com.google.flatbuffers.FlatBufferBuilder</a>
 </li>
 <li>Finish()
-: <a class="el" href="class_flat_buffers_1_1_flat_buffer_builder.html#a1afc6853539aaff7ac6937ed03ff5c7b">FlatBuffers.FlatBufferBuilder</a>
+: <a class="el" href="class_flat_buffers_1_1_flat_buffer_builder.html#a703062d740b32a77d26c5f6d1928c75f">FlatBuffers.FlatBufferBuilder</a>
 , <a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#a0c9e507b373d598b51052fab4fa34912">flatbuffers::FlatBufferBuilder</a>
 </li>
 <li>finish()
 : <a class="el" href="class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html#a799f0d1cf0fff359d6d04768108cb2a5">Google\FlatBuffers\FlatbufferBuilder</a>
 </li>
+<li>finishSizePrefixed()
+: <a class="el" href="classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#aa00c035b0f60abe32a5f1467ebd4ec54">com.google.flatbuffers.FlatBufferBuilder</a>
+</li>
 <li>FinishSizePrefixed()
-: <a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#a7ba8462e408431054c99d25120326220">flatbuffers::FlatBufferBuilder</a>
+: <a class="el" href="class_flat_buffers_1_1_flat_buffer_builder.html#a425ab2bd13a0e4331a7190ec2d17c3b2">FlatBuffers.FlatBufferBuilder</a>
+, <a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#a7ba8462e408431054c99d25120326220">flatbuffers::FlatBufferBuilder</a>
 </li>
 <li>FlatBufferBuilder()
-: <a class="el" href="classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a3388cd4dc6e5233283fb4927b71a1c39">com.google.flatbuffers.FlatBufferBuilder</a>
+: <a class="el" href="classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#aed1e475e75409625c8df85dc3d396e4c">com.google.flatbuffers.FlatBufferBuilder</a>
 , <a class="el" href="class_flat_buffers_1_1_flat_buffer_builder.html#ae24f93e3f9672846dd241d585d62c63d">FlatBuffers.FlatBufferBuilder</a>
-, <a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#ae4ab74f53187e6c3e6041d34e01904c4">flatbuffers::FlatBufferBuilder</a>
+, <a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#ab0173786ea4ec3e4ae10555639b2996c">flatbuffers::FlatBufferBuilder</a>
 </li>
 <li>forceDefaults()
 : <a class="el" href="classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#aaadff3772bfdff756b4f269afae5ac69">com.google.flatbuffers.FlatBufferBuilder</a>
@@ -369,30 +312,33 @@ $(document).ready(function(){initNavTree('functions_func.html','');});
 </ul>
 
 
-<h3><a class="anchor" id="index_g"></a>- g -</h3><ul>
+<h3><a id="index_g"></a>- g -</h3><ul>
 <li>GetBufferMinAlignment()
 : <a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#aa1ebce1f3f46832946a95952af1e9c2b">flatbuffers::FlatBufferBuilder</a>
 </li>
 <li>GetBufferPointer()
-: <a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#a8dc35f792179df4ca850492c1796d8b8">flatbuffers::FlatBufferBuilder</a>
+: <a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#ab81ab8aa273c270b0942fd81489cad83">flatbuffers::FlatBufferBuilder</a>
 </li>
 <li>GetCurrentBufferPointer()
-: <a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#a3f4252e9bc005ba6c700469544fdccc9">flatbuffers::FlatBufferBuilder</a>
+: <a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#a099810f03046139d1854d20a1c2a2e41">flatbuffers::FlatBufferBuilder</a>
 </li>
 <li>GetSize()
-: <a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#ac1bfd609f7f736e9a37cedae77448b63">flatbuffers::FlatBufferBuilder</a>
+: <a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#a66c8fd33ab9b3b237954c9ea38648f7f">flatbuffers::FlatBufferBuilder</a>
+</li>
+<li>getSizePrefix()
+: <a class="el" href="classcom_1_1google_1_1flatbuffers_1_1_byte_buffer_util.html#a4c87c63fa8d31e039b344bbaef00a3be">com.google.flatbuffers.ByteBufferUtil</a>
 </li>
 </ul>
 
 
-<h3><a class="anchor" id="index_i"></a>- i -</h3><ul>
+<h3><a id="index_i"></a>- i -</h3><ul>
 <li>init()
 : <a class="el" href="classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#adf671e70a4d30c85f37393c47a7a7dd1">com.google.flatbuffers.FlatBufferBuilder</a>
 </li>
 </ul>
 
 
-<h3><a class="anchor" id="index_n"></a>- n -</h3><ul>
+<h3><a id="index_n"></a>- n -</h3><ul>
 <li>newByteBuffer()
 : <a class="el" href="interfacecom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder_1_1_byte_buffer_factory.html#a0db9a9033d232d584443a433d7576f4a">com.google.flatbuffers.FlatBufferBuilder.ByteBufferFactory</a>
 , <a class="el" href="classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder_1_1_heap_byte_buffer_factory.html#aac26ff51a8162b37a072792ec9068644">com.google.flatbuffers.FlatBufferBuilder.HeapByteBufferFactory</a>
@@ -400,14 +346,14 @@ $(document).ready(function(){initNavTree('functions_func.html','');});
 </ul>
 
 
-<h3><a class="anchor" id="index_o"></a>- o -</h3><ul>
+<h3><a id="index_o"></a>- o -</h3><ul>
 <li>offset()
 : <a class="el" href="classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#ae3a3fbf645e64ce784a524f935a6e6f2">com.google.flatbuffers.FlatBufferBuilder</a>
 </li>
 </ul>
 
 
-<h3><a class="anchor" id="index_p"></a>- p -</h3><ul>
+<h3><a id="index_p"></a>- p -</h3><ul>
 <li>pad()
 : <a class="el" href="classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a4a2e8c6430c6538509147225b8a4697e">com.google.flatbuffers.FlatBufferBuilder</a>
 </li>
@@ -438,17 +384,20 @@ $(document).ready(function(){initNavTree('functions_func.html','');});
 </ul>
 
 
-<h3><a class="anchor" id="index_r"></a>- r -</h3><ul>
+<h3><a id="index_r"></a>- r -</h3><ul>
 <li>Release()
 : <a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#a5e2c3a1e47f0ab4a3a3f07a07a52fb45">flatbuffers::FlatBufferBuilder</a>
 </li>
 <li>ReleaseBufferPointer()
 : <a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html#a0e715d9019060b4b753c4e5228be56e8">flatbuffers::FlatBufferBuilder</a>
 </li>
+<li>removeSizePrefix()
+: <a class="el" href="classcom_1_1google_1_1flatbuffers_1_1_byte_buffer_util.html#a58d6c39c53a0c981a2f72a5eca7d992c">com.google.flatbuffers.ByteBufferUtil</a>
+</li>
 </ul>
 
 
-<h3><a class="anchor" id="index_s"></a>- s -</h3><ul>
+<h3><a id="index_s"></a>- s -</h3><ul>
 <li>sizedByteArray()
 : <a class="el" href="classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a81a5c2d7ab36e913cc16d9499aabe078">com.google.flatbuffers.FlatBufferBuilder</a>
 </li>
diff --git a/functions_prop.html b/functions_prop.html
index 19d070d086606f28f8f95f4ac7cc2fcd462940a1..8a6845d65458c80034a3c3a65704d65e191cffcd 100644
--- a/functions_prop.html
+++ b/functions_prop.html
@@ -4,23 +4,21 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <title>FlatBuffers: Class Members - Properties</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
 <link href="navtree.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
 <script type="text/javascript" src="navtree.js"></script>
 <script type="text/javascript">
   $(document).ready(initResizable);
-  $(window).load(resizeHeight);
 </script>
 <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
 <script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
-  $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,500italic,700,700italic|Roboto+Mono:400,700" rel="stylesheet">
 <link href="style.css" rel="stylesheet" type="text/css"/>
@@ -46,61 +44,19 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.7 -->
+<!-- Generated by Doxygen 1.8.13 -->
 <script type="text/javascript">
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </script>
-  <div id="navrow1" class="tabs">
-    <ul class="tablist">
-      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
-      <li><a href="usergroup0.html"><span>Programmer's&#160;Guide</span></a></li>
-      <li><a href="flatbuffers_support.html"><span>Platform&#160;/&#160;Language&#160;/&#160;Feature&#160;support</span></a></li>
-      <li><a href="flatbuffers_benchmarks.html"><span>Benchmarks</span></a></li>
-      <li><a href="flatbuffers_white_paper.html"><span>FlatBuffers&#160;white&#160;paper</span></a></li>
-      <li><a href="flatbuffers_internals.html"><span>FlatBuffers&#160;internals</span></a></li>
-      <li><a href="flatbuffers_grammar.html"><span>Grammar&#160;of&#160;the&#160;schema&#160;language</span></a></li>
-      <li class="current"><a href="usergroup2.html"><span>API&#160;Reference</span></a></li>
-      <li><a href="contributing.html"><span>Contributing</span></a></li>
-      <li>
-        <div id="MSearchBox" class="MSearchBoxInactive">
-        <span class="left">
-          <img id="MSearchSelect" src="search/mag_sel.png"
-               onmouseover="return searchBox.OnSearchSelectShow()"
-               onmouseout="return searchBox.OnSearchSelectHide()"
-               alt=""/>
-          <input type="text" id="MSearchField" value="Search" accesskey="S"
-               onfocus="searchBox.OnSearchFieldFocus(true)" 
-               onblur="searchBox.OnSearchFieldFocus(false)" 
-               onkeyup="searchBox.OnSearchFieldChange(event)"/>
-          </span><span class="right">
-            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
-          </span>
-        </div>
-      </li>
-    </ul>
-  </div>
-  <div id="navrow2" class="tabs2">
-    <ul class="tablist">
-      <li><a href="modules.html"><span>APIs</span></a></li>
-      <li class="current"><a href="annotated.html"><span>Class&#160;List</span></a></li>
-    </ul>
-  </div>
-  <div id="navrow2" class="tabs2">
-    <ul class="tablist">
-      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
-      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
-      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
-      <li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
-    </ul>
-  </div>
-  <div id="navrow3" class="tabs2">
-    <ul class="tablist">
-      <li><a href="functions.html"><span>All</span></a></li>
-      <li><a href="functions_func.html"><span>Functions</span></a></li>
-      <li><a href="functions_vars.html"><span>Variables</span></a></li>
-      <li class="current"><a href="functions_prop.html"><span>Properties</span></a></li>
-    </ul>
-  </div>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -121,7 +77,7 @@ $(document).ready(function(){initNavTree('functions_prop.html','');});
      onmouseover="return searchBox.OnSearchSelectShow()"
      onmouseout="return searchBox.OnSearchSelectHide()"
      onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Properties</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+</div>
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
diff --git a/functions_vars.html b/functions_vars.html
index 0667617398e5c8d54af58085399c8bf6a18c7024..968eabcd78c460dabb244a48fa849127fe571dd8 100644
--- a/functions_vars.html
+++ b/functions_vars.html
@@ -4,23 +4,21 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <title>FlatBuffers: Class Members - Variables</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
 <link href="navtree.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
 <script type="text/javascript" src="navtree.js"></script>
 <script type="text/javascript">
   $(document).ready(initResizable);
-  $(window).load(resizeHeight);
 </script>
 <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
 <script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
-  $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,500italic,700,700italic|Roboto+Mono:400,700" rel="stylesheet">
 <link href="style.css" rel="stylesheet" type="text/css"/>
@@ -46,61 +44,19 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.7 -->
+<!-- Generated by Doxygen 1.8.13 -->
 <script type="text/javascript">
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </script>
-  <div id="navrow1" class="tabs">
-    <ul class="tablist">
-      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
-      <li><a href="usergroup0.html"><span>Programmer's&#160;Guide</span></a></li>
-      <li><a href="flatbuffers_support.html"><span>Platform&#160;/&#160;Language&#160;/&#160;Feature&#160;support</span></a></li>
-      <li><a href="flatbuffers_benchmarks.html"><span>Benchmarks</span></a></li>
-      <li><a href="flatbuffers_white_paper.html"><span>FlatBuffers&#160;white&#160;paper</span></a></li>
-      <li><a href="flatbuffers_internals.html"><span>FlatBuffers&#160;internals</span></a></li>
-      <li><a href="flatbuffers_grammar.html"><span>Grammar&#160;of&#160;the&#160;schema&#160;language</span></a></li>
-      <li class="current"><a href="usergroup2.html"><span>API&#160;Reference</span></a></li>
-      <li><a href="contributing.html"><span>Contributing</span></a></li>
-      <li>
-        <div id="MSearchBox" class="MSearchBoxInactive">
-        <span class="left">
-          <img id="MSearchSelect" src="search/mag_sel.png"
-               onmouseover="return searchBox.OnSearchSelectShow()"
-               onmouseout="return searchBox.OnSearchSelectHide()"
-               alt=""/>
-          <input type="text" id="MSearchField" value="Search" accesskey="S"
-               onfocus="searchBox.OnSearchFieldFocus(true)" 
-               onblur="searchBox.OnSearchFieldFocus(false)" 
-               onkeyup="searchBox.OnSearchFieldChange(event)"/>
-          </span><span class="right">
-            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
-          </span>
-        </div>
-      </li>
-    </ul>
-  </div>
-  <div id="navrow2" class="tabs2">
-    <ul class="tablist">
-      <li><a href="modules.html"><span>APIs</span></a></li>
-      <li class="current"><a href="annotated.html"><span>Class&#160;List</span></a></li>
-    </ul>
-  </div>
-  <div id="navrow2" class="tabs2">
-    <ul class="tablist">
-      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
-      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
-      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
-      <li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
-    </ul>
-  </div>
-  <div id="navrow3" class="tabs2">
-    <ul class="tablist">
-      <li><a href="functions.html"><span>All</span></a></li>
-      <li><a href="functions_func.html"><span>Functions</span></a></li>
-      <li class="current"><a href="functions_vars.html"><span>Variables</span></a></li>
-      <li><a href="functions_prop.html"><span>Properties</span></a></li>
-    </ul>
-  </div>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -121,7 +77,7 @@ $(document).ready(function(){initNavTree('functions_vars.html','');});
      onmouseover="return searchBox.OnSearchSelectShow()"
      onmouseout="return searchBox.OnSearchSelectHide()"
      onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Properties</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+</div>
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
diff --git a/group__flatbuffers__cpp__api.html b/group__flatbuffers__cpp__api.html
index ad85553e248aa7b83f00eae41982b786b6759966..4e723e306c81731f42d13eff52c3bb4f0568b8ee 100644
--- a/group__flatbuffers__cpp__api.html
+++ b/group__flatbuffers__cpp__api.html
@@ -4,23 +4,21 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
-<title>FlatBuffers: C++ API</title>
+<meta name="generator" content="Doxygen 1.8.13"/>
+<title>FlatBuffers: Flatbuffers_cpp_api</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
 <link href="navtree.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
 <script type="text/javascript" src="navtree.js"></script>
 <script type="text/javascript">
   $(document).ready(initResizable);
-  $(window).load(resizeHeight);
 </script>
 <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
 <script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
-  $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,500italic,700,700italic|Roboto+Mono:400,700" rel="stylesheet">
 <link href="style.css" rel="stylesheet" type="text/css"/>
@@ -46,39 +44,19 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.7 -->
+<!-- Generated by Doxygen 1.8.13 -->
 <script type="text/javascript">
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </script>
-  <div id="navrow1" class="tabs">
-    <ul class="tablist">
-      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
-      <li><a href="usergroup0.html"><span>Programmer's&#160;Guide</span></a></li>
-      <li><a href="flatbuffers_support.html"><span>Platform&#160;/&#160;Language&#160;/&#160;Feature&#160;support</span></a></li>
-      <li><a href="flatbuffers_benchmarks.html"><span>Benchmarks</span></a></li>
-      <li><a href="flatbuffers_white_paper.html"><span>FlatBuffers&#160;white&#160;paper</span></a></li>
-      <li><a href="flatbuffers_internals.html"><span>FlatBuffers&#160;internals</span></a></li>
-      <li><a href="flatbuffers_grammar.html"><span>Grammar&#160;of&#160;the&#160;schema&#160;language</span></a></li>
-      <li><a href="usergroup2.html"><span>API&#160;Reference</span></a></li>
-      <li><a href="contributing.html"><span>Contributing</span></a></li>
-      <li>
-        <div id="MSearchBox" class="MSearchBoxInactive">
-        <span class="left">
-          <img id="MSearchSelect" src="search/mag_sel.png"
-               onmouseover="return searchBox.OnSearchSelectShow()"
-               onmouseout="return searchBox.OnSearchSelectHide()"
-               alt=""/>
-          <input type="text" id="MSearchField" value="Search" accesskey="S"
-               onfocus="searchBox.OnSearchFieldFocus(true)" 
-               onblur="searchBox.OnSearchFieldFocus(false)" 
-               onkeyup="searchBox.OnSearchFieldChange(event)"/>
-          </span><span class="right">
-            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
-          </span>
-        </div>
-      </li>
-    </ul>
-  </div>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -99,7 +77,7 @@ $(document).ready(function(){initNavTree('group__flatbuffers__cpp__api.html','')
      onmouseover="return searchBox.OnSearchSelectShow()"
      onmouseout="return searchBox.OnSearchSelectHide()"
      onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Properties</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+</div>
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
@@ -112,14 +90,10 @@ $(document).ready(function(){initNavTree('group__flatbuffers__cpp__api.html','')
   <div class="summary">
 <a href="#nested-classes">Classes</a>  </div>
   <div class="headertitle">
-<div class="title">C++ API</div>  </div>
+<div class="title">Flatbuffers_cpp_api</div>  </div>
 </div><!--header-->
 <div class="contents">
-
-<p>FlatBuffers API for C++.  
-<a href="#details">More...</a></p>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>FlatBuffers API for C++. </p>
 <table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
 Classes</h2></td></tr>
diff --git a/group__flatbuffers__cpp__api.js b/group__flatbuffers__cpp__api.js
index 21ad35cb37f9ba8f086a1d520ec62dc44a814ea0..ff43133e3faa4445a110f219c1866219ff5108fb 100644
--- a/group__flatbuffers__cpp__api.js
+++ b/group__flatbuffers__cpp__api.js
@@ -7,11 +7,11 @@ var group__flatbuffers__cpp__api =
       ] ],
       [ "StringOffsetCompare", "structflatbuffers_1_1_flat_buffer_builder_1_1_string_offset_compare.html", [
         [ "StringOffsetCompare", "structflatbuffers_1_1_flat_buffer_builder_1_1_string_offset_compare.html#a014debbfd9bde2a99f960a2123e54d33", null ],
-        [ "operator()", "structflatbuffers_1_1_flat_buffer_builder_1_1_string_offset_compare.html#a615f77ed71ea836aa9dc42d0b8722389", null ],
+        [ "operator()", "structflatbuffers_1_1_flat_buffer_builder_1_1_string_offset_compare.html#a7aa28a410c7eb4c1154702af8b773080", null ],
         [ "buf_", "structflatbuffers_1_1_flat_buffer_builder_1_1_string_offset_compare.html#ada9a5bf2a061d414f73b1c176168877b", null ]
       ] ],
       [ "StringOffsetMap", "classflatbuffers_1_1_flat_buffer_builder.html#a9190cb2d5a4324ab0c52263b834fff09", null ],
-      [ "FlatBufferBuilder", "classflatbuffers_1_1_flat_buffer_builder.html#ae4ab74f53187e6c3e6041d34e01904c4", null ],
+      [ "FlatBufferBuilder", "classflatbuffers_1_1_flat_buffer_builder.html#ab0173786ea4ec3e4ae10555639b2996c", null ],
       [ "~FlatBufferBuilder", "classflatbuffers_1_1_flat_buffer_builder.html#a01dabf5cdd6b1b2881337e1e84aa1683", null ],
       [ "FlatBufferBuilder", "classflatbuffers_1_1_flat_buffer_builder.html#ace4606286a25d3fedfb1532934d4cea1", null ],
       [ "Clear", "classflatbuffers_1_1_flat_buffer_builder.html#ae94b94ba71ea0aeb2d9a98c43b713412", null ],
@@ -21,6 +21,7 @@ var group__flatbuffers__cpp__api =
       [ "CreateSharedString", "classflatbuffers_1_1_flat_buffer_builder.html#a840b769fbb4148f97d3eed266e4690c3", null ],
       [ "CreateString", "classflatbuffers_1_1_flat_buffer_builder.html#aec6f9df2a0366b540b24822414d92cbe", null ],
       [ "CreateString", "classflatbuffers_1_1_flat_buffer_builder.html#aad93d113ac24e86ed04b5236b3f4c0c5", null ],
+      [ "CreateString", "classflatbuffers_1_1_flat_buffer_builder.html#ac51db9083ac815eb81420b6d51f42154", null ],
       [ "CreateString", "classflatbuffers_1_1_flat_buffer_builder.html#a8c3af55e64f5cda9aefa38ac5287ef9f", null ],
       [ "CreateString", "classflatbuffers_1_1_flat_buffer_builder.html#ac0b6a1c5d949f20ad84367fc0f9e1506", null ],
       [ "CreateString", "classflatbuffers_1_1_flat_buffer_builder.html#ab77d800e77fa76bc758a6c399fd37685", null ],
@@ -45,16 +46,16 @@ var group__flatbuffers__cpp__api =
       [ "CreateVectorOfStructs", "classflatbuffers_1_1_flat_buffer_builder.html#afede51fd9c32d146cbb1832f57c5e1b7", null ],
       [ "CreateVectorOfStructs", "classflatbuffers_1_1_flat_buffer_builder.html#a6e90ada59d9553636f72ce8e4a892f72", null ],
       [ "CreateVectorOfStructs", "classflatbuffers_1_1_flat_buffer_builder.html#a9cc09fa59ff9732e972877cfe911c8a5", null ],
-      [ "CreateVectorOfStructs", "classflatbuffers_1_1_flat_buffer_builder.html#a8704709a2e25ad04679212ee4126b1a1", null ],
+      [ "CreateVectorOfStructs", "classflatbuffers_1_1_flat_buffer_builder.html#a110c2a3298aebef1a9dfa3c44ee84f42", null ],
       [ "DedupVtables", "classflatbuffers_1_1_flat_buffer_builder.html#aa905b29dce19a1795c7bce375cf29961", null ],
       [ "Finish", "classflatbuffers_1_1_flat_buffer_builder.html#a0c9e507b373d598b51052fab4fa34912", null ],
       [ "Finish", "classflatbuffers_1_1_flat_buffer_builder.html#a2e4de5642bad6dcd01eb7e7eaf719c89", null ],
       [ "FinishSizePrefixed", "classflatbuffers_1_1_flat_buffer_builder.html#a7ba8462e408431054c99d25120326220", null ],
       [ "ForceDefaults", "classflatbuffers_1_1_flat_buffer_builder.html#a16a8fd46b34ad7727406c37b65b6b27a", null ],
       [ "GetBufferMinAlignment", "classflatbuffers_1_1_flat_buffer_builder.html#aa1ebce1f3f46832946a95952af1e9c2b", null ],
-      [ "GetBufferPointer", "classflatbuffers_1_1_flat_buffer_builder.html#a8dc35f792179df4ca850492c1796d8b8", null ],
-      [ "GetCurrentBufferPointer", "classflatbuffers_1_1_flat_buffer_builder.html#a3f4252e9bc005ba6c700469544fdccc9", null ],
-      [ "GetSize", "classflatbuffers_1_1_flat_buffer_builder.html#ac1bfd609f7f736e9a37cedae77448b63", null ],
+      [ "GetBufferPointer", "classflatbuffers_1_1_flat_buffer_builder.html#ab81ab8aa273c270b0942fd81489cad83", null ],
+      [ "GetCurrentBufferPointer", "classflatbuffers_1_1_flat_buffer_builder.html#a099810f03046139d1854d20a1c2a2e41", null ],
+      [ "GetSize", "classflatbuffers_1_1_flat_buffer_builder.html#a66c8fd33ab9b3b237954c9ea38648f7f", null ],
       [ "operator=", "classflatbuffers_1_1_flat_buffer_builder.html#a376bb6858e8b1baab9a437f3f9f0b334", null ],
       [ "Release", "classflatbuffers_1_1_flat_buffer_builder.html#a5e2c3a1e47f0ab4a3a3f07a07a52fb45", null ],
       [ "ReleaseBufferPointer", "classflatbuffers_1_1_flat_buffer_builder.html#a0e715d9019060b4b753c4e5228be56e8", null ],
@@ -67,8 +68,7 @@ var group__flatbuffers__cpp__api =
       [ "max_voffset_", "classflatbuffers_1_1_flat_buffer_builder.html#a5e604e3caf95fd0f0e74545af5a8420a", null ],
       [ "minalign_", "classflatbuffers_1_1_flat_buffer_builder.html#ab9942e76ff29eefc702b006b19ce02ba", null ],
       [ "nested", "classflatbuffers_1_1_flat_buffer_builder.html#add6d502accf426e35f91f2539baff6b2", null ],
-      [ "offsetbuf_", "classflatbuffers_1_1_flat_buffer_builder.html#adda5db5eceb1465e9a71ddc012d70839", null ],
-      [ "string_pool", "classflatbuffers_1_1_flat_buffer_builder.html#aa7e64b654cef62869c3dfd27def92e5d", null ],
-      [ "vtables_", "classflatbuffers_1_1_flat_buffer_builder.html#a17c05ea503f311eaf6e56a1be3ac1c49", null ]
+      [ "num_field_loc", "classflatbuffers_1_1_flat_buffer_builder.html#adb473c5fd1305213b91eecaa779ecafa", null ],
+      [ "string_pool", "classflatbuffers_1_1_flat_buffer_builder.html#aa7e64b654cef62869c3dfd27def92e5d", null ]
     ] ]
 ];
\ No newline at end of file
diff --git a/group__flatbuffers__csharp__api.html b/group__flatbuffers__csharp__api.html
index 05a9bdd512f399bf71b57cde7974a8c47033caa1..52a8f8264bd3c5c214004c2a8350338edfac9bb4 100644
--- a/group__flatbuffers__csharp__api.html
+++ b/group__flatbuffers__csharp__api.html
@@ -4,23 +4,21 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
-<title>FlatBuffers: C# API</title>
+<meta name="generator" content="Doxygen 1.8.13"/>
+<title>FlatBuffers: Flatbuffers_csharp_api</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
 <link href="navtree.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
 <script type="text/javascript" src="navtree.js"></script>
 <script type="text/javascript">
   $(document).ready(initResizable);
-  $(window).load(resizeHeight);
 </script>
 <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
 <script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
-  $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,500italic,700,700italic|Roboto+Mono:400,700" rel="stylesheet">
 <link href="style.css" rel="stylesheet" type="text/css"/>
@@ -46,39 +44,19 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.7 -->
+<!-- Generated by Doxygen 1.8.13 -->
 <script type="text/javascript">
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </script>
-  <div id="navrow1" class="tabs">
-    <ul class="tablist">
-      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
-      <li><a href="usergroup0.html"><span>Programmer's&#160;Guide</span></a></li>
-      <li><a href="flatbuffers_support.html"><span>Platform&#160;/&#160;Language&#160;/&#160;Feature&#160;support</span></a></li>
-      <li><a href="flatbuffers_benchmarks.html"><span>Benchmarks</span></a></li>
-      <li><a href="flatbuffers_white_paper.html"><span>FlatBuffers&#160;white&#160;paper</span></a></li>
-      <li><a href="flatbuffers_internals.html"><span>FlatBuffers&#160;internals</span></a></li>
-      <li><a href="flatbuffers_grammar.html"><span>Grammar&#160;of&#160;the&#160;schema&#160;language</span></a></li>
-      <li><a href="usergroup2.html"><span>API&#160;Reference</span></a></li>
-      <li><a href="contributing.html"><span>Contributing</span></a></li>
-      <li>
-        <div id="MSearchBox" class="MSearchBoxInactive">
-        <span class="left">
-          <img id="MSearchSelect" src="search/mag_sel.png"
-               onmouseover="return searchBox.OnSearchSelectShow()"
-               onmouseout="return searchBox.OnSearchSelectHide()"
-               alt=""/>
-          <input type="text" id="MSearchField" value="Search" accesskey="S"
-               onfocus="searchBox.OnSearchFieldFocus(true)" 
-               onblur="searchBox.OnSearchFieldFocus(false)" 
-               onkeyup="searchBox.OnSearchFieldChange(event)"/>
-          </span><span class="right">
-            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
-          </span>
-        </div>
-      </li>
-    </ul>
-  </div>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -99,7 +77,7 @@ $(document).ready(function(){initNavTree('group__flatbuffers__csharp__api.html',
      onmouseover="return searchBox.OnSearchSelectShow()"
      onmouseout="return searchBox.OnSearchSelectHide()"
      onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Properties</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+</div>
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
@@ -112,19 +90,13 @@ $(document).ready(function(){initNavTree('group__flatbuffers__csharp__api.html',
   <div class="summary">
 <a href="#namespaces">Namespaces</a>  </div>
   <div class="headertitle">
-<div class="title">C# API</div>  </div>
+<div class="title">Flatbuffers_csharp_api</div>  </div>
 </div><!--header-->
 <div class="contents">
-
-<p>FlatBuffers API for C#.  
-<a href="#details">More...</a></p>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>FlatBuffers API for C#. </p>
 <table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
 Namespaces</h2></td></tr>
-<tr class="memitem:namespace_flat_buffers"><td class="memItemLeft" align="right" valign="top">package &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespace_flat_buffers.html">FlatBuffers</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 </div><!-- contents -->
 </div><!-- doc-content -->
diff --git a/group__flatbuffers__go__api.html b/group__flatbuffers__go__api.html
index d1fbfc5ac9513132d83eb2dda1230da00e90f644..3a0c14a76ca1796ac3508e3d9b0c484d59cba229 100644
--- a/group__flatbuffers__go__api.html
+++ b/group__flatbuffers__go__api.html
@@ -4,23 +4,21 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
-<title>FlatBuffers: Go API</title>
+<meta name="generator" content="Doxygen 1.8.13"/>
+<title>FlatBuffers: Flatbuffers_go_api</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
 <link href="navtree.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
 <script type="text/javascript" src="navtree.js"></script>
 <script type="text/javascript">
   $(document).ready(initResizable);
-  $(window).load(resizeHeight);
 </script>
 <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
 <script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
-  $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,500italic,700,700italic|Roboto+Mono:400,700" rel="stylesheet">
 <link href="style.css" rel="stylesheet" type="text/css"/>
@@ -46,39 +44,19 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.7 -->
+<!-- Generated by Doxygen 1.8.13 -->
 <script type="text/javascript">
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </script>
-  <div id="navrow1" class="tabs">
-    <ul class="tablist">
-      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
-      <li><a href="usergroup0.html"><span>Programmer's&#160;Guide</span></a></li>
-      <li><a href="flatbuffers_support.html"><span>Platform&#160;/&#160;Language&#160;/&#160;Feature&#160;support</span></a></li>
-      <li><a href="flatbuffers_benchmarks.html"><span>Benchmarks</span></a></li>
-      <li><a href="flatbuffers_white_paper.html"><span>FlatBuffers&#160;white&#160;paper</span></a></li>
-      <li><a href="flatbuffers_internals.html"><span>FlatBuffers&#160;internals</span></a></li>
-      <li><a href="flatbuffers_grammar.html"><span>Grammar&#160;of&#160;the&#160;schema&#160;language</span></a></li>
-      <li><a href="usergroup2.html"><span>API&#160;Reference</span></a></li>
-      <li><a href="contributing.html"><span>Contributing</span></a></li>
-      <li>
-        <div id="MSearchBox" class="MSearchBoxInactive">
-        <span class="left">
-          <img id="MSearchSelect" src="search/mag_sel.png"
-               onmouseover="return searchBox.OnSearchSelectShow()"
-               onmouseout="return searchBox.OnSearchSelectHide()"
-               alt=""/>
-          <input type="text" id="MSearchField" value="Search" accesskey="S"
-               onfocus="searchBox.OnSearchFieldFocus(true)" 
-               onblur="searchBox.OnSearchFieldFocus(false)" 
-               onkeyup="searchBox.OnSearchFieldChange(event)"/>
-          </span><span class="right">
-            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
-          </span>
-        </div>
-      </li>
-    </ul>
-  </div>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -99,7 +77,7 @@ $(document).ready(function(){initNavTree('group__flatbuffers__go__api.html','');
      onmouseover="return searchBox.OnSearchSelectShow()"
      onmouseout="return searchBox.OnSearchSelectHide()"
      onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Properties</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+</div>
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
@@ -110,118 +88,10 @@ $(document).ready(function(){initNavTree('group__flatbuffers__go__api.html','');
 
 <div class="header">
   <div class="headertitle">
-<div class="title">Go API</div>  </div>
+<div class="title">Flatbuffers_go_api</div>  </div>
 </div><!--header-->
 <div class="contents">
-
-<p>FlatBuffers API for Go.  
-<a href="#details">More...</a></p>
-<p>FlatBuffers API for Go. </p>
-<div class="fragment"><div class="line">PACKAGE DOCUMENTATION</div>
-<div class="line"></div>
-<div class="line"><span class="keyword">package </span>flatbuffers</div>
-<div class="line">    Package flatbuffers provides facilities to read and write flatbuffers</div>
-<div class="line">    objects.</div>
-<div class="line"></div>
-<div class="line">TYPES</div>
-<div class="line"></div>
-<div class="line">type Builder struct {</div>
-<div class="line">    <span class="comment">// `Bytes` gives raw access to the buffer. Most users will want to use</span></div>
-<div class="line">    <span class="comment">// FinishedBytes() instead.</span></div>
-<div class="line">    Bytes []byte</div>
-<div class="line">}</div>
-<div class="line">    Builder is a state machine for creating FlatBuffer objects. Use a</div>
-<div class="line">    Builder to construct object(s) starting from leaf nodes.</div>
-<div class="line"></div>
-<div class="line">    A Builder constructs byte buffers in a last-first manner for simplicity</div>
-<div class="line">    and performance.</div>
-<div class="line"></div>
-<div class="line">FUNCTIONS</div>
-<div class="line"></div>
-<div class="line">func NewBuilder(initialSize int) *Builder</div>
-<div class="line">    NewBuilder initializes a Builder of size `initial_size`. The internal</div>
-<div class="line">    buffer is grown as needed.</div>
-<div class="line"></div>
-<div class="line">func (b *Builder) CreateByteString(s []byte) UOffsetT</div>
-<div class="line">    CreateByteString writes a byte slice as a string (null-terminated).</div>
-<div class="line"></div>
-<div class="line">func (b *Builder) CreateByteVector(v []byte) UOffsetT</div>
-<div class="line">    CreateByteVector writes a ubyte vector</div>
-<div class="line"></div>
-<div class="line">func (b *Builder) CreateString(s string) UOffsetT</div>
-<div class="line">    CreateString writes a null-terminated string as a vector.</div>
-<div class="line"></div>
-<div class="line">func (b *Builder) EndVector(vectorNumElems int) UOffsetT</div>
-<div class="line">    EndVector writes data necessary to finish vector construction.</div>
-<div class="line"></div>
-<div class="line">func (b *Builder) Finish(rootTable UOffsetT)</div>
-<div class="line">    Finish finalizes a buffer, pointing to the given `rootTable`.</div>
-<div class="line"></div>
-<div class="line">func (b *Builder) FinishedBytes() []byte</div>
-<div class="line">    FinishedBytes returns a pointer to the written data in the byte buffer.</div>
-<div class="line">    Panics if the builder is not in a finished state (which is caused by</div>
-<div class="line">    calling `Finish()`).</div>
-<div class="line"></div>
-<div class="line">func (b *Builder) Head() UOffsetT</div>
-<div class="line">    Head gives the start of useful data in the underlying byte buffer. Note:</div>
-<div class="line">    unlike other functions, this value is interpreted as from the left.</div>
-<div class="line"></div>
-<div class="line">func (b *Builder) PrependBool(x bool)</div>
-<div class="line">    PrependBool prepends a bool to the Builder buffer. Aligns and checks for</div>
-<div class="line">    space.</div>
-<div class="line"></div>
-<div class="line">func (b *Builder) PrependByte(x byte)</div>
-<div class="line">    PrependByte prepends a byte to the Builder buffer. Aligns and checks for</div>
-<div class="line">    space.</div>
-<div class="line"></div>
-<div class="line">func (b *Builder) PrependFloat32(x float32)</div>
-<div class="line">    PrependFloat32 prepends a float32 to the Builder buffer. Aligns and</div>
-<div class="line">    checks for space.</div>
-<div class="line"></div>
-<div class="line">func (b *Builder) PrependFloat64(x float64)</div>
-<div class="line">    PrependFloat64 prepends a float64 to the Builder buffer. Aligns and</div>
-<div class="line">    checks for space.</div>
-<div class="line"></div>
-<div class="line">func (b *Builder) PrependInt16(x int16)</div>
-<div class="line">    PrependInt16 prepends a int16 to the Builder buffer. Aligns and checks</div>
-<div class="line">    for space.</div>
-<div class="line"></div>
-<div class="line">func (b *Builder) PrependInt32(x int32)</div>
-<div class="line">    PrependInt32 prepends a int32 to the Builder buffer. Aligns and checks</div>
-<div class="line">    for space.</div>
-<div class="line"></div>
-<div class="line">func (b *Builder) PrependInt64(x int64)</div>
-<div class="line">    PrependInt64 prepends a int64 to the Builder buffer. Aligns and checks</div>
-<div class="line">    for space.</div>
-<div class="line"></div>
-<div class="line">func (b *Builder) PrependInt8(x int8)</div>
-<div class="line">    PrependInt8 prepends a int8 to the Builder buffer. Aligns and checks for</div>
-<div class="line">    space.</div>
-<div class="line"></div>
-<div class="line">func (b *Builder) PrependUOffsetT(off UOffsetT)</div>
-<div class="line">    PrependUOffsetT prepends an UOffsetT, relative to where it will be</div>
-<div class="line">    written.</div>
-<div class="line"></div>
-<div class="line">func (b *Builder) PrependUint16(x uint16)</div>
-<div class="line">    PrependUint16 prepends a uint16 to the Builder buffer. Aligns and checks</div>
-<div class="line">    for space.</div>
-<div class="line"></div>
-<div class="line">func (b *Builder) PrependUint32(x uint32)</div>
-<div class="line">    PrependUint32 prepends a uint32 to the Builder buffer. Aligns and checks</div>
-<div class="line">    for space.</div>
-<div class="line"></div>
-<div class="line">func (b *Builder) PrependUint64(x uint64)</div>
-<div class="line">    PrependUint64 prepends a uint64 to the Builder buffer. Aligns and checks</div>
-<div class="line">    for space.</div>
-<div class="line"></div>
-<div class="line">func (b *Builder) PrependUint8(x uint8)</div>
-<div class="line">    PrependUint8 prepends a uint8 to the Builder buffer. Aligns and checks</div>
-<div class="line">    for space.</div>
-<div class="line"></div>
-<div class="line">func (b *Builder) Reset()</div>
-<div class="line">    Reset truncates the underlying Builder buffer, facilitating alloc-free</div>
-<div class="line">    reuse of a Builder. It also resets bookkeeping data.</div>
-</div><!-- fragment --></div><!-- contents -->
+<div class="fragment"><div class="line">PACKAGE DOCUMENTATION</div><div class="line"></div><div class="line"><span class="keyword">package </span>flatbuffers</div><div class="line">    Package flatbuffers provides facilities to read and write flatbuffers</div><div class="line">    objects.</div><div class="line"></div><div class="line">TYPES</div><div class="line"></div><div class="line">type Builder struct {</div><div class="line">    <span class="comment">// `Bytes` gives raw access to the buffer. Most users will want to use</span></div><div class="line">    <span class="comment">// FinishedBytes() instead.</span></div><div class="line">    Bytes []byte</div><div class="line">}</div><div class="line">    Builder is a state machine for creating FlatBuffer objects. Use a</div><div class="line">    Builder to construct object(s) starting from leaf nodes.</div><div class="line"></div><div class="line">    A Builder constructs byte buffers in a last-first manner for simplicity</div><div class="line">    and performance.</div><div class="line"></div><div class="line">FUNCTIONS</div><div class="line"></div><div class="line">func NewBuilder(initialSize int) *Builder</div><div class="line">    NewBuilder initializes a Builder of size `initial_size`. The internal</div><div class="line">    buffer is grown as needed.</div><div class="line"></div><div class="line">func (b *Builder) CreateByteString(s []byte) UOffsetT</div><div class="line">    CreateByteString writes a byte slice as a string (null-terminated).</div><div class="line"></div><div class="line">func (b *Builder) CreateByteVector(v []byte) UOffsetT</div><div class="line">    CreateByteVector writes a ubyte vector</div><div class="line"></div><div class="line">func (b *Builder) CreateString(s string) UOffsetT</div><div class="line">    CreateString writes a null-terminated string as a vector.</div><div class="line"></div><div class="line">func (b *Builder) EndVector(vectorNumElems int) UOffsetT</div><div class="line">    EndVector writes data necessary to finish vector construction.</div><div class="line"></div><div class="line">func (b *Builder) Finish(rootTable UOffsetT)</div><div class="line">    Finish finalizes a buffer, pointing to the given `rootTable`.</div><div class="line"></div><div class="line">func (b *Builder) FinishedBytes() []byte</div><div class="line">    FinishedBytes returns a pointer to the written data in the byte buffer.</div><div class="line">    Panics if the builder is not in a finished state (which is caused by</div><div class="line">    calling `Finish()`).</div><div class="line"></div><div class="line">func (b *Builder) Head() UOffsetT</div><div class="line">    Head gives the start of useful data in the underlying byte buffer. Note:</div><div class="line">    unlike other functions, this value is interpreted as from the left.</div><div class="line"></div><div class="line">func (b *Builder) PrependBool(x bool)</div><div class="line">    PrependBool prepends a bool to the Builder buffer. Aligns and checks for</div><div class="line">    space.</div><div class="line"></div><div class="line">func (b *Builder) PrependByte(x byte)</div><div class="line">    PrependByte prepends a byte to the Builder buffer. Aligns and checks for</div><div class="line">    space.</div><div class="line"></div><div class="line">func (b *Builder) PrependFloat32(x float32)</div><div class="line">    PrependFloat32 prepends a float32 to the Builder buffer. Aligns and</div><div class="line">    checks for space.</div><div class="line"></div><div class="line">func (b *Builder) PrependFloat64(x float64)</div><div class="line">    PrependFloat64 prepends a float64 to the Builder buffer. Aligns and</div><div class="line">    checks for space.</div><div class="line"></div><div class="line">func (b *Builder) PrependInt16(x int16)</div><div class="line">    PrependInt16 prepends a int16 to the Builder buffer. Aligns and checks</div><div class="line">    for space.</div><div class="line"></div><div class="line">func (b *Builder) PrependInt32(x int32)</div><div class="line">    PrependInt32 prepends a int32 to the Builder buffer. Aligns and checks</div><div class="line">    for space.</div><div class="line"></div><div class="line">func (b *Builder) PrependInt64(x int64)</div><div class="line">    PrependInt64 prepends a int64 to the Builder buffer. Aligns and checks</div><div class="line">    for space.</div><div class="line"></div><div class="line">func (b *Builder) PrependInt8(x int8)</div><div class="line">    PrependInt8 prepends a int8 to the Builder buffer. Aligns and checks for</div><div class="line">    space.</div><div class="line"></div><div class="line">func (b *Builder) PrependUOffsetT(off UOffsetT)</div><div class="line">    PrependUOffsetT prepends an UOffsetT, relative to where it will be</div><div class="line">    written.</div><div class="line"></div><div class="line">func (b *Builder) PrependUint16(x uint16)</div><div class="line">    PrependUint16 prepends a uint16 to the Builder buffer. Aligns and checks</div><div class="line">    for space.</div><div class="line"></div><div class="line">func (b *Builder) PrependUint32(x uint32)</div><div class="line">    PrependUint32 prepends a uint32 to the Builder buffer. Aligns and checks</div><div class="line">    for space.</div><div class="line"></div><div class="line">func (b *Builder) PrependUint64(x uint64)</div><div class="line">    PrependUint64 prepends a uint64 to the Builder buffer. Aligns and checks</div><div class="line">    for space.</div><div class="line"></div><div class="line">func (b *Builder) PrependUint8(x uint8)</div><div class="line">    PrependUint8 prepends a uint8 to the Builder buffer. Aligns and checks</div><div class="line">    for space.</div><div class="line"></div><div class="line">func (b *Builder) Reset()</div><div class="line">    Reset truncates the underlying Builder buffer, facilitating alloc-free</div><div class="line">    reuse of a Builder. It also resets bookkeeping data.</div></div><!-- fragment --></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- Google Analytics -->
 <script>
diff --git a/group__flatbuffers__java__api.html b/group__flatbuffers__java__api.html
index 727900d410f63c1bd28d4740291aa9b84c452aba..67cf289641be2fbf6c50264dc3cb6e7e429d023e 100644
--- a/group__flatbuffers__java__api.html
+++ b/group__flatbuffers__java__api.html
@@ -4,23 +4,21 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
-<title>FlatBuffers: Java API</title>
+<meta name="generator" content="Doxygen 1.8.13"/>
+<title>FlatBuffers: Flatbuffers_java_api</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
 <link href="navtree.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
 <script type="text/javascript" src="navtree.js"></script>
 <script type="text/javascript">
   $(document).ready(initResizable);
-  $(window).load(resizeHeight);
 </script>
 <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
 <script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
-  $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,500italic,700,700italic|Roboto+Mono:400,700" rel="stylesheet">
 <link href="style.css" rel="stylesheet" type="text/css"/>
@@ -46,39 +44,19 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.7 -->
+<!-- Generated by Doxygen 1.8.13 -->
 <script type="text/javascript">
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </script>
-  <div id="navrow1" class="tabs">
-    <ul class="tablist">
-      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
-      <li><a href="usergroup0.html"><span>Programmer's&#160;Guide</span></a></li>
-      <li><a href="flatbuffers_support.html"><span>Platform&#160;/&#160;Language&#160;/&#160;Feature&#160;support</span></a></li>
-      <li><a href="flatbuffers_benchmarks.html"><span>Benchmarks</span></a></li>
-      <li><a href="flatbuffers_white_paper.html"><span>FlatBuffers&#160;white&#160;paper</span></a></li>
-      <li><a href="flatbuffers_internals.html"><span>FlatBuffers&#160;internals</span></a></li>
-      <li><a href="flatbuffers_grammar.html"><span>Grammar&#160;of&#160;the&#160;schema&#160;language</span></a></li>
-      <li><a href="usergroup2.html"><span>API&#160;Reference</span></a></li>
-      <li><a href="contributing.html"><span>Contributing</span></a></li>
-      <li>
-        <div id="MSearchBox" class="MSearchBoxInactive">
-        <span class="left">
-          <img id="MSearchSelect" src="search/mag_sel.png"
-               onmouseover="return searchBox.OnSearchSelectShow()"
-               onmouseout="return searchBox.OnSearchSelectHide()"
-               alt=""/>
-          <input type="text" id="MSearchField" value="Search" accesskey="S"
-               onfocus="searchBox.OnSearchFieldFocus(true)" 
-               onblur="searchBox.OnSearchFieldFocus(false)" 
-               onkeyup="searchBox.OnSearchFieldChange(event)"/>
-          </span><span class="right">
-            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
-          </span>
-        </div>
-      </li>
-    </ul>
-  </div>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -99,7 +77,7 @@ $(document).ready(function(){initNavTree('group__flatbuffers__java__api.html',''
      onmouseover="return searchBox.OnSearchSelectShow()"
      onmouseout="return searchBox.OnSearchSelectHide()"
      onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Properties</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+</div>
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
@@ -112,17 +90,16 @@ $(document).ready(function(){initNavTree('group__flatbuffers__java__api.html',''
   <div class="summary">
 <a href="#nested-classes">Classes</a>  </div>
   <div class="headertitle">
-<div class="title">Java API</div>  </div>
+<div class="title">Flatbuffers_java_api</div>  </div>
 </div><!--header-->
 <div class="contents">
-
-<p>FlatBuffers API for Java.  
-<a href="#details">More...</a></p>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>FlatBuffers API for Java. </p>
 <table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
 Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1google_1_1flatbuffers_1_1_byte_buffer_util.html">com.google.flatbuffers.ByteBufferUtil</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Class that collects utility functions around <code>ByteBuffer</code>.  <a href="classcom_1_1google_1_1flatbuffers_1_1_byte_buffer_util.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html">com.google.flatbuffers.FlatBufferBuilder</a></td></tr>
 <tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Class that helps you build a FlatBuffer.  <a href="classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#details">More...</a><br /></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
diff --git a/group__flatbuffers__java__api.js b/group__flatbuffers__java__api.js
index 3a7bb4e1ec7d3ac8926021863e5d51009abbaa66..049d96f3bce24baf0106536259210dac2ecba4df 100644
--- a/group__flatbuffers__java__api.js
+++ b/group__flatbuffers__java__api.js
@@ -1,5 +1,9 @@
 var group__flatbuffers__java__api =
 [
+    [ "ByteBufferUtil", "classcom_1_1google_1_1flatbuffers_1_1_byte_buffer_util.html", [
+      [ "getSizePrefix", "classcom_1_1google_1_1flatbuffers_1_1_byte_buffer_util.html#a4c87c63fa8d31e039b344bbaef00a3be", null ],
+      [ "removeSizePrefix", "classcom_1_1google_1_1flatbuffers_1_1_byte_buffer_util.html#a58d6c39c53a0c981a2f72a5eca7d992c", null ]
+    ] ],
     [ "FlatBufferBuilder", "classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html", [
       [ "ByteBufferFactory", "interfacecom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder_1_1_byte_buffer_factory.html", [
         [ "newByteBuffer", "interfacecom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder_1_1_byte_buffer_factory.html#a0db9a9033d232d584443a433d7576f4a", null ]
@@ -27,8 +31,12 @@ var group__flatbuffers__java__api =
       [ "createUnintializedVector", "classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#acc889115f91460ca89ce981cb02c2039", null ],
       [ "createVectorOfTables", "classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a24ea4649f508a7843e429737a4a9fad1", null ],
       [ "dataBuffer", "classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#abf0fd34f0d93a9d89f595fddf752feb7", null ],
+      [ "finish", "classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#af344604d66e9e8524fef826fc516d5b2", null ],
       [ "finish", "classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#aee9ed3214a7b35075773c506e3d95a14", null ],
+      [ "finish", "classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#afc31aba1a9523fde4be3558f8f19f49b", null ],
       [ "finish", "classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a189de474e0c39d663cc65fa21a63f071", null ],
+      [ "finishSizePrefixed", "classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#aa00c035b0f60abe32a5f1467ebd4ec54", null ],
+      [ "finishSizePrefixed", "classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#ab179d8aa4c4b782d83b3817a6b08ee35", null ],
       [ "forceDefaults", "classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#aaadff3772bfdff756b4f269afae5ac69", null ],
       [ "init", "classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#adf671e70a4d30c85f37393c47a7a7dd1", null ],
       [ "offset", "classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#ae3a3fbf645e64ce784a524f935a6e6f2", null ],
diff --git a/group__flatbuffers__php__api.html b/group__flatbuffers__php__api.html
index 705d89a445f1e5e4a0139ce2598c6b85e7a9ba2a..8e7ffc904bf2365c753c41c1e564d0a110edd2e3 100644
--- a/group__flatbuffers__php__api.html
+++ b/group__flatbuffers__php__api.html
@@ -4,23 +4,21 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
-<title>FlatBuffers: PHP API</title>
+<meta name="generator" content="Doxygen 1.8.13"/>
+<title>FlatBuffers: Flatbuffers_php_api</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
 <link href="navtree.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
 <script type="text/javascript" src="navtree.js"></script>
 <script type="text/javascript">
   $(document).ready(initResizable);
-  $(window).load(resizeHeight);
 </script>
 <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
 <script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
-  $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,500italic,700,700italic|Roboto+Mono:400,700" rel="stylesheet">
 <link href="style.css" rel="stylesheet" type="text/css"/>
@@ -46,39 +44,19 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.7 -->
+<!-- Generated by Doxygen 1.8.13 -->
 <script type="text/javascript">
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </script>
-  <div id="navrow1" class="tabs">
-    <ul class="tablist">
-      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
-      <li><a href="usergroup0.html"><span>Programmer's&#160;Guide</span></a></li>
-      <li><a href="flatbuffers_support.html"><span>Platform&#160;/&#160;Language&#160;/&#160;Feature&#160;support</span></a></li>
-      <li><a href="flatbuffers_benchmarks.html"><span>Benchmarks</span></a></li>
-      <li><a href="flatbuffers_white_paper.html"><span>FlatBuffers&#160;white&#160;paper</span></a></li>
-      <li><a href="flatbuffers_internals.html"><span>FlatBuffers&#160;internals</span></a></li>
-      <li><a href="flatbuffers_grammar.html"><span>Grammar&#160;of&#160;the&#160;schema&#160;language</span></a></li>
-      <li><a href="usergroup2.html"><span>API&#160;Reference</span></a></li>
-      <li><a href="contributing.html"><span>Contributing</span></a></li>
-      <li>
-        <div id="MSearchBox" class="MSearchBoxInactive">
-        <span class="left">
-          <img id="MSearchSelect" src="search/mag_sel.png"
-               onmouseover="return searchBox.OnSearchSelectShow()"
-               onmouseout="return searchBox.OnSearchSelectHide()"
-               alt=""/>
-          <input type="text" id="MSearchField" value="Search" accesskey="S"
-               onfocus="searchBox.OnSearchFieldFocus(true)" 
-               onblur="searchBox.OnSearchFieldFocus(false)" 
-               onkeyup="searchBox.OnSearchFieldChange(event)"/>
-          </span><span class="right">
-            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
-          </span>
-        </div>
-      </li>
-    </ul>
-  </div>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -99,7 +77,7 @@ $(document).ready(function(){initNavTree('group__flatbuffers__php__api.html','')
      onmouseover="return searchBox.OnSearchSelectShow()"
      onmouseout="return searchBox.OnSearchSelectHide()"
      onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Properties</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+</div>
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
@@ -112,14 +90,10 @@ $(document).ready(function(){initNavTree('group__flatbuffers__php__api.html','')
   <div class="summary">
 <a href="#nested-classes">Classes</a>  </div>
   <div class="headertitle">
-<div class="title">PHP API</div>  </div>
+<div class="title">Flatbuffers_php_api</div>  </div>
 </div><!--header-->
 <div class="contents">
-
-<p>FlatBuffers API for PHP.  
-<a href="#details">More...</a></p>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>FlatBuffers API for PHP. </p>
 <table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
 Classes</h2></td></tr>
diff --git a/hierarchy.html b/hierarchy.html
index ee353f186eb708a3fae43a99c35aa45ca41eddae..9b9a3741f406ce9f699e91e17d30a62a541a5ad6 100644
--- a/hierarchy.html
+++ b/hierarchy.html
@@ -4,23 +4,21 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <title>FlatBuffers: Class Hierarchy</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
 <link href="navtree.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
 <script type="text/javascript" src="navtree.js"></script>
 <script type="text/javascript">
   $(document).ready(initResizable);
-  $(window).load(resizeHeight);
 </script>
 <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
 <script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
-  $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,500italic,700,700italic|Roboto+Mono:400,700" rel="stylesheet">
 <link href="style.css" rel="stylesheet" type="text/css"/>
@@ -46,53 +44,19 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.7 -->
+<!-- Generated by Doxygen 1.8.13 -->
 <script type="text/javascript">
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </script>
-  <div id="navrow1" class="tabs">
-    <ul class="tablist">
-      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
-      <li><a href="usergroup0.html"><span>Programmer's&#160;Guide</span></a></li>
-      <li><a href="flatbuffers_support.html"><span>Platform&#160;/&#160;Language&#160;/&#160;Feature&#160;support</span></a></li>
-      <li><a href="flatbuffers_benchmarks.html"><span>Benchmarks</span></a></li>
-      <li><a href="flatbuffers_white_paper.html"><span>FlatBuffers&#160;white&#160;paper</span></a></li>
-      <li><a href="flatbuffers_internals.html"><span>FlatBuffers&#160;internals</span></a></li>
-      <li><a href="flatbuffers_grammar.html"><span>Grammar&#160;of&#160;the&#160;schema&#160;language</span></a></li>
-      <li class="current"><a href="usergroup2.html"><span>API&#160;Reference</span></a></li>
-      <li><a href="contributing.html"><span>Contributing</span></a></li>
-      <li>
-        <div id="MSearchBox" class="MSearchBoxInactive">
-        <span class="left">
-          <img id="MSearchSelect" src="search/mag_sel.png"
-               onmouseover="return searchBox.OnSearchSelectShow()"
-               onmouseout="return searchBox.OnSearchSelectHide()"
-               alt=""/>
-          <input type="text" id="MSearchField" value="Search" accesskey="S"
-               onfocus="searchBox.OnSearchFieldFocus(true)" 
-               onblur="searchBox.OnSearchFieldFocus(false)" 
-               onkeyup="searchBox.OnSearchFieldChange(event)"/>
-          </span><span class="right">
-            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
-          </span>
-        </div>
-      </li>
-    </ul>
-  </div>
-  <div id="navrow2" class="tabs2">
-    <ul class="tablist">
-      <li><a href="modules.html"><span>APIs</span></a></li>
-      <li class="current"><a href="annotated.html"><span>Class&#160;List</span></a></li>
-    </ul>
-  </div>
-  <div id="navrow2" class="tabs2">
-    <ul class="tablist">
-      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
-      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
-      <li class="current"><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
-      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
-    </ul>
-  </div>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -113,7 +77,7 @@ $(document).ready(function(){initNavTree('hierarchy.html','');});
      onmouseover="return searchBox.OnSearchSelectShow()"
      onmouseout="return searchBox.OnSearchSelectHide()"
      onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Properties</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+</div>
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
@@ -133,23 +97,24 @@ $(document).ready(function(){initNavTree('hierarchy.html','');});
 <tr id="row_0_0_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflatbuffers_1_1_default_allocator.html" target="_self">flatbuffers::DefaultAllocator</a></td><td class="desc"></td></tr>
 <tr id="row_1_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_1_" class="arrow" onclick="toggleFolder('1_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="interfacecom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder_1_1_byte_buffer_factory.html" target="_self">com.google.flatbuffers.FlatBufferBuilder.ByteBufferFactory</a></td><td class="desc">An interface that provides a user of the FlatBufferBuilder class the ability to specify the method in which the internal buffer gets allocated </td></tr>
 <tr id="row_1_0_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder_1_1_heap_byte_buffer_factory.html" target="_self">com.google.flatbuffers.FlatBufferBuilder.HeapByteBufferFactory</a></td><td class="desc">An implementation of the ByteBufferFactory interface that is used when one is not provided by the user </td></tr>
-<tr id="row_2_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflatbuffers_1_1_detached_buffer.html" target="_self">flatbuffers::DetachedBuffer</a></td><td class="desc"></td></tr>
-<tr id="row_3_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structflatbuffers_1_1_flat_buffer_builder_1_1_field_loc.html" target="_self">flatbuffers::FlatBufferBuilder::FieldLoc</a></td><td class="desc"></td></tr>
-<tr id="row_4_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html" target="_self">com.google.flatbuffers.FlatBufferBuilder</a></td><td class="desc">Class that helps you build a FlatBuffer </td></tr>
-<tr id="row_5_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html" target="_self">flatbuffers::FlatBufferBuilder</a></td><td class="desc">Helper class to hold data needed in creation of a FlatBuffer </td></tr>
-<tr id="row_6_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html" target="_self">Google\FlatBuffers\FlatbufferBuilder</a></td><td class="desc"></td></tr>
-<tr id="row_7_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_flat_buffers_1_1_flat_buffer_builder.html" target="_self">FlatBuffers.FlatBufferBuilder</a></td><td class="desc">Responsible for building up and accessing a FlatBuffer formatted byte array (via ByteBuffer) </td></tr>
-<tr id="row_8_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structflatbuffers_1_1_indirect_helper.html" target="_self">flatbuffers::IndirectHelper&lt; T &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_9_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structflatbuffers_1_1_indirect_helper_3_01const_01_t_01_5_01_4.html" target="_self">flatbuffers::IndirectHelper&lt; const T * &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_10_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structflatbuffers_1_1_indirect_helper_3_01_offset_3_01_t_01_4_01_4.html" target="_self">flatbuffers::IndirectHelper&lt; Offset&lt; T &gt; &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_11_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structflatbuffers_1_1_offset.html" target="_self">flatbuffers::Offset&lt; T &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_12_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structflatbuffers_1_1_flat_buffer_builder_1_1_string_offset_compare.html" target="_self">flatbuffers::FlatBufferBuilder::StringOffsetCompare</a></td><td class="desc"></td></tr>
-<tr id="row_13_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflatbuffers_1_1_vector.html" target="_self">flatbuffers::Vector&lt; T &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_14_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_14_" class="arrow" onclick="toggleFolder('14_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflatbuffers_1_1_vector.html" target="_self">flatbuffers::Vector&lt; char &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_14_0_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structflatbuffers_1_1_string.html" target="_self">flatbuffers::String</a></td><td class="desc"></td></tr>
-<tr id="row_15_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflatbuffers_1_1vector__downward.html" target="_self">flatbuffers::vector_downward</a></td><td class="desc"></td></tr>
-<tr id="row_16_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structflatbuffers_1_1_vector_iterator.html" target="_self">flatbuffers::VectorIterator&lt; T, IT &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_17_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflatbuffers_1_1_vector_of_any.html" target="_self">flatbuffers::VectorOfAny</a></td><td class="desc"></td></tr>
+<tr id="row_2_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classcom_1_1google_1_1flatbuffers_1_1_byte_buffer_util.html" target="_self">com.google.flatbuffers.ByteBufferUtil</a></td><td class="desc">Class that collects utility functions around <code>ByteBuffer</code> </td></tr>
+<tr id="row_3_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflatbuffers_1_1_detached_buffer.html" target="_self">flatbuffers::DetachedBuffer</a></td><td class="desc"></td></tr>
+<tr id="row_4_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structflatbuffers_1_1_flat_buffer_builder_1_1_field_loc.html" target="_self">flatbuffers::FlatBufferBuilder::FieldLoc</a></td><td class="desc"></td></tr>
+<tr id="row_5_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html" target="_self">com.google.flatbuffers.FlatBufferBuilder</a></td><td class="desc">Class that helps you build a FlatBuffer </td></tr>
+<tr id="row_6_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflatbuffers_1_1_flat_buffer_builder.html" target="_self">flatbuffers::FlatBufferBuilder</a></td><td class="desc">Helper class to hold data needed in creation of a FlatBuffer </td></tr>
+<tr id="row_7_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html" target="_self">Google\FlatBuffers\FlatbufferBuilder</a></td><td class="desc"></td></tr>
+<tr id="row_8_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_flat_buffers_1_1_flat_buffer_builder.html" target="_self">FlatBuffers.FlatBufferBuilder</a></td><td class="desc">Responsible for building up and accessing a FlatBuffer formatted byte array (via ByteBuffer) </td></tr>
+<tr id="row_9_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structflatbuffers_1_1_indirect_helper.html" target="_self">flatbuffers::IndirectHelper&lt; T &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_10_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structflatbuffers_1_1_indirect_helper_3_01const_01_t_01_5_01_4.html" target="_self">flatbuffers::IndirectHelper&lt; const T * &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_11_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structflatbuffers_1_1_indirect_helper_3_01_offset_3_01_t_01_4_01_4.html" target="_self">flatbuffers::IndirectHelper&lt; Offset&lt; T &gt; &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_12_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structflatbuffers_1_1_offset.html" target="_self">flatbuffers::Offset&lt; T &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_13_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structflatbuffers_1_1_flat_buffer_builder_1_1_string_offset_compare.html" target="_self">flatbuffers::FlatBufferBuilder::StringOffsetCompare</a></td><td class="desc"></td></tr>
+<tr id="row_14_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflatbuffers_1_1_vector.html" target="_self">flatbuffers::Vector&lt; T &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_15_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_15_" class="arrow" onclick="toggleFolder('15_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflatbuffers_1_1_vector.html" target="_self">flatbuffers::Vector&lt; char &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_15_0_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structflatbuffers_1_1_string.html" target="_self">flatbuffers::String</a></td><td class="desc"></td></tr>
+<tr id="row_16_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflatbuffers_1_1vector__downward.html" target="_self">flatbuffers::vector_downward</a></td><td class="desc"></td></tr>
+<tr id="row_17_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structflatbuffers_1_1_vector_iterator.html" target="_self">flatbuffers::VectorIterator&lt; T, IT &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_18_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflatbuffers_1_1_vector_of_any.html" target="_self">flatbuffers::VectorOfAny</a></td><td class="desc"></td></tr>
 </table>
 </div><!-- directory -->
 </div><!-- contents -->
diff --git a/hierarchy.js b/hierarchy.js
index 6f9a62a6f78ad291743a3ea0dc8a2e8e726ff36a..191fac4a7cf829f9065ad4ddc88e2a611c2d24e9 100644
--- a/hierarchy.js
+++ b/hierarchy.js
@@ -6,6 +6,7 @@ var hierarchy =
     [ "com.google.flatbuffers.FlatBufferBuilder.ByteBufferFactory", "interfacecom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder_1_1_byte_buffer_factory.html", [
       [ "com.google.flatbuffers.FlatBufferBuilder.HeapByteBufferFactory", "classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder_1_1_heap_byte_buffer_factory.html", null ]
     ] ],
+    [ "com.google.flatbuffers.ByteBufferUtil", "classcom_1_1google_1_1flatbuffers_1_1_byte_buffer_util.html", null ],
     [ "flatbuffers::DetachedBuffer", "classflatbuffers_1_1_detached_buffer.html", null ],
     [ "flatbuffers::FlatBufferBuilder::FieldLoc", "structflatbuffers_1_1_flat_buffer_builder_1_1_field_loc.html", null ],
     [ "com.google.flatbuffers.FlatBufferBuilder", "classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html", null ],
diff --git a/index.html b/index.html
index c2c92226abcf2181fb95b4707b5c36b317598529..61ae451ce4ff5d1bb16044e410619b31546116e5 100644
--- a/index.html
+++ b/index.html
@@ -4,23 +4,21 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
-<title>FlatBuffers: Main Page</title>
+<meta name="generator" content="Doxygen 1.8.13"/>
+<title>FlatBuffers: FlatBuffers</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
 <link href="navtree.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
 <script type="text/javascript" src="navtree.js"></script>
 <script type="text/javascript">
   $(document).ready(initResizable);
-  $(window).load(resizeHeight);
 </script>
 <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
 <script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
-  $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,500italic,700,700italic|Roboto+Mono:400,700" rel="stylesheet">
 <link href="style.css" rel="stylesheet" type="text/css"/>
@@ -46,39 +44,19 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.7 -->
+<!-- Generated by Doxygen 1.8.13 -->
 <script type="text/javascript">
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </script>
-  <div id="navrow1" class="tabs">
-    <ul class="tablist">
-      <li class="current"><a href="index.html"><span>Main&#160;Page</span></a></li>
-      <li><a href="usergroup0.html"><span>Programmer's&#160;Guide</span></a></li>
-      <li><a href="flatbuffers_support.html"><span>Platform&#160;/&#160;Language&#160;/&#160;Feature&#160;support</span></a></li>
-      <li><a href="flatbuffers_benchmarks.html"><span>Benchmarks</span></a></li>
-      <li><a href="flatbuffers_white_paper.html"><span>FlatBuffers&#160;white&#160;paper</span></a></li>
-      <li><a href="flatbuffers_internals.html"><span>FlatBuffers&#160;internals</span></a></li>
-      <li><a href="flatbuffers_grammar.html"><span>Grammar&#160;of&#160;the&#160;schema&#160;language</span></a></li>
-      <li><a href="usergroup2.html"><span>API&#160;Reference</span></a></li>
-      <li><a href="contributing.html"><span>Contributing</span></a></li>
-      <li>
-        <div id="MSearchBox" class="MSearchBoxInactive">
-        <span class="left">
-          <img id="MSearchSelect" src="search/mag_sel.png"
-               onmouseover="return searchBox.OnSearchSelectShow()"
-               onmouseout="return searchBox.OnSearchSelectHide()"
-               alt=""/>
-          <input type="text" id="MSearchField" value="Search" accesskey="S"
-               onfocus="searchBox.OnSearchFieldFocus(true)" 
-               onblur="searchBox.OnSearchFieldFocus(false)" 
-               onkeyup="searchBox.OnSearchFieldChange(event)"/>
-          </span><span class="right">
-            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
-          </span>
-        </div>
-      </li>
-    </ul>
-  </div>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -99,7 +77,7 @@ $(document).ready(function(){initNavTree('index.html','');});
      onmouseover="return searchBox.OnSearchSelectShow()"
      onmouseout="return searchBox.OnSearchSelectHide()"
      onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Properties</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+</div>
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
@@ -110,12 +88,12 @@ $(document).ready(function(){initNavTree('index.html','');});
 
 <div class="header">
   <div class="headertitle">
-<div class="title">FlatBuffers Documentation</div>  </div>
+<div class="title">FlatBuffers </div>  </div>
 </div><!--header-->
 <div class="contents">
 <div class="textblock"><h1><a class="anchor" id="flatbuffers_overview"></a>
 Overview</h1>
-<p><a class="el" href="index.html#flatbuffers_overview">FlatBuffers</a> is an efficient cross platform serialization library for C++, C#, C, Go, Java, JavaScript, PHP, and Python. It was originally created at Google for game development and other performance-critical applications.</p>
+<p><a class="el" href="index.html#flatbuffers_overview">FlatBuffers</a> is an efficient cross platform serialization library for C++, C#, C, Go, Java, JavaScript, TypeScript, PHP, and Python. It was originally created at Google for game development and other performance-critical applications.</p>
 <p>It is available as Open Source on <a href="http://github.com/google/flatbuffers">GitHub</a> under the Apache license, v2 (see LICENSE.txt).</p>
 <h2>Why use FlatBuffers?</h2>
 <ul>
diff --git a/interfacecom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder_1_1_byte_buffer_factory-members.html b/interfacecom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder_1_1_byte_buffer_factory-members.html
index 562aced2bc6d597e198fade36c367f3b827ad16e..7ece4271e4ca80631d3a337f8b6ac079ec77e63d 100644
--- a/interfacecom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder_1_1_byte_buffer_factory-members.html
+++ b/interfacecom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder_1_1_byte_buffer_factory-members.html
@@ -4,23 +4,21 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <title>FlatBuffers: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
 <link href="navtree.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
 <script type="text/javascript" src="navtree.js"></script>
 <script type="text/javascript">
   $(document).ready(initResizable);
-  $(window).load(resizeHeight);
 </script>
 <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
 <script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
-  $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,500italic,700,700italic|Roboto+Mono:400,700" rel="stylesheet">
 <link href="style.css" rel="stylesheet" type="text/css"/>
@@ -46,53 +44,19 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.7 -->
+<!-- Generated by Doxygen 1.8.13 -->
 <script type="text/javascript">
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </script>
-  <div id="navrow1" class="tabs">
-    <ul class="tablist">
-      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
-      <li><a href="usergroup0.html"><span>Programmer's&#160;Guide</span></a></li>
-      <li><a href="flatbuffers_support.html"><span>Platform&#160;/&#160;Language&#160;/&#160;Feature&#160;support</span></a></li>
-      <li><a href="flatbuffers_benchmarks.html"><span>Benchmarks</span></a></li>
-      <li><a href="flatbuffers_white_paper.html"><span>FlatBuffers&#160;white&#160;paper</span></a></li>
-      <li><a href="flatbuffers_internals.html"><span>FlatBuffers&#160;internals</span></a></li>
-      <li><a href="flatbuffers_grammar.html"><span>Grammar&#160;of&#160;the&#160;schema&#160;language</span></a></li>
-      <li class="current"><a href="usergroup2.html"><span>API&#160;Reference</span></a></li>
-      <li><a href="contributing.html"><span>Contributing</span></a></li>
-      <li>
-        <div id="MSearchBox" class="MSearchBoxInactive">
-        <span class="left">
-          <img id="MSearchSelect" src="search/mag_sel.png"
-               onmouseover="return searchBox.OnSearchSelectShow()"
-               onmouseout="return searchBox.OnSearchSelectHide()"
-               alt=""/>
-          <input type="text" id="MSearchField" value="Search" accesskey="S"
-               onfocus="searchBox.OnSearchFieldFocus(true)" 
-               onblur="searchBox.OnSearchFieldFocus(false)" 
-               onkeyup="searchBox.OnSearchFieldChange(event)"/>
-          </span><span class="right">
-            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
-          </span>
-        </div>
-      </li>
-    </ul>
-  </div>
-  <div id="navrow2" class="tabs2">
-    <ul class="tablist">
-      <li><a href="modules.html"><span>APIs</span></a></li>
-      <li class="current"><a href="annotated.html"><span>Class&#160;List</span></a></li>
-    </ul>
-  </div>
-  <div id="navrow2" class="tabs2">
-    <ul class="tablist">
-      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
-      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
-      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
-      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
-    </ul>
-  </div>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -113,7 +77,7 @@ $(document).ready(function(){initNavTree('interfacecom_1_1google_1_1flatbuffers_
      onmouseover="return searchBox.OnSearchSelectShow()"
      onmouseout="return searchBox.OnSearchSelectHide()"
      onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Properties</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+</div>
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
diff --git a/interfacecom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder_1_1_byte_buffer_factory.html b/interfacecom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder_1_1_byte_buffer_factory.html
index 109819529ecae90fbd37a3e1bed2f3b7c1f5634b..57407ea59eec03970e9d85bd70a888bdaac3e30d 100644
--- a/interfacecom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder_1_1_byte_buffer_factory.html
+++ b/interfacecom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder_1_1_byte_buffer_factory.html
@@ -4,23 +4,21 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <title>FlatBuffers: com.google.flatbuffers.FlatBufferBuilder.ByteBufferFactory Interface Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
 <link href="navtree.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
 <script type="text/javascript" src="navtree.js"></script>
 <script type="text/javascript">
   $(document).ready(initResizable);
-  $(window).load(resizeHeight);
 </script>
 <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
 <script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
-  $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,500italic,700,700italic|Roboto+Mono:400,700" rel="stylesheet">
 <link href="style.css" rel="stylesheet" type="text/css"/>
@@ -46,53 +44,19 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.7 -->
+<!-- Generated by Doxygen 1.8.13 -->
 <script type="text/javascript">
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </script>
-  <div id="navrow1" class="tabs">
-    <ul class="tablist">
-      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
-      <li><a href="usergroup0.html"><span>Programmer's&#160;Guide</span></a></li>
-      <li><a href="flatbuffers_support.html"><span>Platform&#160;/&#160;Language&#160;/&#160;Feature&#160;support</span></a></li>
-      <li><a href="flatbuffers_benchmarks.html"><span>Benchmarks</span></a></li>
-      <li><a href="flatbuffers_white_paper.html"><span>FlatBuffers&#160;white&#160;paper</span></a></li>
-      <li><a href="flatbuffers_internals.html"><span>FlatBuffers&#160;internals</span></a></li>
-      <li><a href="flatbuffers_grammar.html"><span>Grammar&#160;of&#160;the&#160;schema&#160;language</span></a></li>
-      <li class="current"><a href="usergroup2.html"><span>API&#160;Reference</span></a></li>
-      <li><a href="contributing.html"><span>Contributing</span></a></li>
-      <li>
-        <div id="MSearchBox" class="MSearchBoxInactive">
-        <span class="left">
-          <img id="MSearchSelect" src="search/mag_sel.png"
-               onmouseover="return searchBox.OnSearchSelectShow()"
-               onmouseout="return searchBox.OnSearchSelectHide()"
-               alt=""/>
-          <input type="text" id="MSearchField" value="Search" accesskey="S"
-               onfocus="searchBox.OnSearchFieldFocus(true)" 
-               onblur="searchBox.OnSearchFieldFocus(false)" 
-               onkeyup="searchBox.OnSearchFieldChange(event)"/>
-          </span><span class="right">
-            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
-          </span>
-        </div>
-      </li>
-    </ul>
-  </div>
-  <div id="navrow2" class="tabs2">
-    <ul class="tablist">
-      <li><a href="modules.html"><span>APIs</span></a></li>
-      <li class="current"><a href="annotated.html"><span>Class&#160;List</span></a></li>
-    </ul>
-  </div>
-  <div id="navrow2" class="tabs2">
-    <ul class="tablist">
-      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
-      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
-      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
-      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
-    </ul>
-  </div>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -113,7 +77,7 @@ $(document).ready(function(){initNavTree('interfacecom_1_1google_1_1flatbuffers_
      onmouseover="return searchBox.OnSearchSelectShow()"
      onmouseout="return searchBox.OnSearchSelectHide()"
      onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Properties</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+</div>
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
@@ -154,7 +118,9 @@ Public Member Functions</h2></td></tr>
 <tr class="separator:a0db9a9033d232d584443a433d7576f4a"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <h2 class="groupheader">Member Function Documentation</h2>
-<a class="anchor" id="a0db9a9033d232d584443a433d7576f4a"></a>
+<a id="a0db9a9033d232d584443a433d7576f4a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a0db9a9033d232d584443a433d7576f4a">&#9670;&nbsp;</a></span>newByteBuffer()</h2>
+
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
diff --git a/jquery.js b/jquery.js
index 3db33e62d35eb0bafddfe1411cc6ded6d1ed958b..3f1abfb2d764f93a16992fc636b5f05d1c0cce49 100644
--- a/jquery.js
+++ b/jquery.js
@@ -1,4 +1,4 @@
-/*!
+/*
  * jQuery JavaScript Library v1.7.1
  * http://jquery.com/
  *
@@ -13,23 +13,14 @@
  *
  * Date: Mon Nov 21 21:11:03 2011 -0500
  */
-(function(bb,L){var av=bb.document,bu=bb.navigator,bl=bb.location;var b=(function(){var bF=function(b0,b1){return new bF.fn.init(b0,b1,bD)},bU=bb.jQuery,bH=bb.$,bD,bY=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,bM=/\S/,bI=/^\s+/,bE=/\s+$/,bA=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,bN=/^[\],:{}\s]*$/,bW=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,bP=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,bJ=/(?:^|:|,)(?:\s*\[)+/g,by=/(webkit)[ \/]([\w.]+)/,bR=/(opera)(?:.*version)?[ \/]([\w.]+)/,bQ=/(msie) ([\w.]+)/,bS=/(mozilla)(?:.*? rv:([\w.]+))?/,bB=/-([a-z]|[0-9])/ig,bZ=/^-ms-/,bT=function(b0,b1){return(b1+"").toUpperCase()},bX=bu.userAgent,bV,bC,e,bL=Object.prototype.toString,bG=Object.prototype.hasOwnProperty,bz=Array.prototype.push,bK=Array.prototype.slice,bO=String.prototype.trim,bv=Array.prototype.indexOf,bx={};bF.fn=bF.prototype={constructor:bF,init:function(b0,b4,b3){var b2,b5,b1,b6;if(!b0){return this}if(b0.nodeType){this.context=this[0]=b0;this.length=1;return this}if(b0==="body"&&!b4&&av.body){this.context=av;this[0]=av.body;this.selector=b0;this.length=1;return this}if(typeof b0==="string"){if(b0.charAt(0)==="<"&&b0.charAt(b0.length-1)===">"&&b0.length>=3){b2=[null,b0,null]}else{b2=bY.exec(b0)}if(b2&&(b2[1]||!b4)){if(b2[1]){b4=b4 instanceof bF?b4[0]:b4;b6=(b4?b4.ownerDocument||b4:av);b1=bA.exec(b0);if(b1){if(bF.isPlainObject(b4)){b0=[av.createElement(b1[1])];bF.fn.attr.call(b0,b4,true)}else{b0=[b6.createElement(b1[1])]}}else{b1=bF.buildFragment([b2[1]],[b6]);b0=(b1.cacheable?bF.clone(b1.fragment):b1.fragment).childNodes}return bF.merge(this,b0)}else{b5=av.getElementById(b2[2]);if(b5&&b5.parentNode){if(b5.id!==b2[2]){return b3.find(b0)}this.length=1;this[0]=b5}this.context=av;this.selector=b0;return this}}else{if(!b4||b4.jquery){return(b4||b3).find(b0)}else{return this.constructor(b4).find(b0)}}}else{if(bF.isFunction(b0)){return b3.ready(b0)}}if(b0.selector!==L){this.selector=b0.selector;this.context=b0.context}return bF.makeArray(b0,this)},selector:"",jquery:"1.7.1",length:0,size:function(){return this.length},toArray:function(){return bK.call(this,0)},get:function(b0){return b0==null?this.toArray():(b0<0?this[this.length+b0]:this[b0])},pushStack:function(b1,b3,b0){var b2=this.constructor();if(bF.isArray(b1)){bz.apply(b2,b1)}else{bF.merge(b2,b1)}b2.prevObject=this;b2.context=this.context;if(b3==="find"){b2.selector=this.selector+(this.selector?" ":"")+b0}else{if(b3){b2.selector=this.selector+"."+b3+"("+b0+")"}}return b2},each:function(b1,b0){return bF.each(this,b1,b0)},ready:function(b0){bF.bindReady();bC.add(b0);return this},eq:function(b0){b0=+b0;return b0===-1?this.slice(b0):this.slice(b0,b0+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(bK.apply(this,arguments),"slice",bK.call(arguments).join(","))},map:function(b0){return this.pushStack(bF.map(this,function(b2,b1){return b0.call(b2,b1,b2)}))},end:function(){return this.prevObject||this.constructor(null)},push:bz,sort:[].sort,splice:[].splice};bF.fn.init.prototype=bF.fn;bF.extend=bF.fn.extend=function(){var b9,b2,b0,b1,b6,b7,b5=arguments[0]||{},b4=1,b3=arguments.length,b8=false;if(typeof b5==="boolean"){b8=b5;b5=arguments[1]||{};b4=2}if(typeof b5!=="object"&&!bF.isFunction(b5)){b5={}}if(b3===b4){b5=this;--b4}for(;b4<b3;b4++){if((b9=arguments[b4])!=null){for(b2 in b9){b0=b5[b2];b1=b9[b2];if(b5===b1){continue}if(b8&&b1&&(bF.isPlainObject(b1)||(b6=bF.isArray(b1)))){if(b6){b6=false;b7=b0&&bF.isArray(b0)?b0:[]}else{b7=b0&&bF.isPlainObject(b0)?b0:{}}b5[b2]=bF.extend(b8,b7,b1)}else{if(b1!==L){b5[b2]=b1}}}}}return b5};bF.extend({noConflict:function(b0){if(bb.$===bF){bb.$=bH}if(b0&&bb.jQuery===bF){bb.jQuery=bU}return bF},isReady:false,readyWait:1,holdReady:function(b0){if(b0){bF.readyWait++}else{bF.ready(true)}},ready:function(b0){if((b0===true&&!--bF.readyWait)||(b0!==true&&!bF.isReady)){if(!av.body){return setTimeout(bF.ready,1)}bF.isReady=true;if(b0!==true&&--bF.readyWait>0){return}bC.fireWith(av,[bF]);if(bF.fn.trigger){bF(av).trigger("ready").off("ready")}}},bindReady:function(){if(bC){return}bC=bF.Callbacks("once memory");if(av.readyState==="complete"){return setTimeout(bF.ready,1)}if(av.addEventListener){av.addEventListener("DOMContentLoaded",e,false);bb.addEventListener("load",bF.ready,false)}else{if(av.attachEvent){av.attachEvent("onreadystatechange",e);bb.attachEvent("onload",bF.ready);var b0=false;try{b0=bb.frameElement==null}catch(b1){}if(av.documentElement.doScroll&&b0){bw()}}}},isFunction:function(b0){return bF.type(b0)==="function"},isArray:Array.isArray||function(b0){return bF.type(b0)==="array"},isWindow:function(b0){return b0&&typeof b0==="object"&&"setInterval" in b0},isNumeric:function(b0){return !isNaN(parseFloat(b0))&&isFinite(b0)},type:function(b0){return b0==null?String(b0):bx[bL.call(b0)]||"object"},isPlainObject:function(b2){if(!b2||bF.type(b2)!=="object"||b2.nodeType||bF.isWindow(b2)){return false}try{if(b2.constructor&&!bG.call(b2,"constructor")&&!bG.call(b2.constructor.prototype,"isPrototypeOf")){return false}}catch(b1){return false}var b0;for(b0 in b2){}return b0===L||bG.call(b2,b0)},isEmptyObject:function(b1){for(var b0 in b1){return false}return true},error:function(b0){throw new Error(b0)},parseJSON:function(b0){if(typeof b0!=="string"||!b0){return null}b0=bF.trim(b0);if(bb.JSON&&bb.JSON.parse){return bb.JSON.parse(b0)}if(bN.test(b0.replace(bW,"@").replace(bP,"]").replace(bJ,""))){return(new Function("return "+b0))()}bF.error("Invalid JSON: "+b0)},parseXML:function(b2){var b0,b1;try{if(bb.DOMParser){b1=new DOMParser();b0=b1.parseFromString(b2,"text/xml")}else{b0=new ActiveXObject("Microsoft.XMLDOM");b0.async="false";b0.loadXML(b2)}}catch(b3){b0=L}if(!b0||!b0.documentElement||b0.getElementsByTagName("parsererror").length){bF.error("Invalid XML: "+b2)}return b0},noop:function(){},globalEval:function(b0){if(b0&&bM.test(b0)){(bb.execScript||function(b1){bb["eval"].call(bb,b1)})(b0)}},camelCase:function(b0){return b0.replace(bZ,"ms-").replace(bB,bT)},nodeName:function(b1,b0){return b1.nodeName&&b1.nodeName.toUpperCase()===b0.toUpperCase()},each:function(b3,b6,b2){var b1,b4=0,b5=b3.length,b0=b5===L||bF.isFunction(b3);if(b2){if(b0){for(b1 in b3){if(b6.apply(b3[b1],b2)===false){break}}}else{for(;b4<b5;){if(b6.apply(b3[b4++],b2)===false){break}}}}else{if(b0){for(b1 in b3){if(b6.call(b3[b1],b1,b3[b1])===false){break}}}else{for(;b4<b5;){if(b6.call(b3[b4],b4,b3[b4++])===false){break}}}}return b3},trim:bO?function(b0){return b0==null?"":bO.call(b0)}:function(b0){return b0==null?"":b0.toString().replace(bI,"").replace(bE,"")},makeArray:function(b3,b1){var b0=b1||[];if(b3!=null){var b2=bF.type(b3);if(b3.length==null||b2==="string"||b2==="function"||b2==="regexp"||bF.isWindow(b3)){bz.call(b0,b3)}else{bF.merge(b0,b3)}}return b0},inArray:function(b2,b3,b1){var b0;if(b3){if(bv){return bv.call(b3,b2,b1)}b0=b3.length;b1=b1?b1<0?Math.max(0,b0+b1):b1:0;for(;b1<b0;b1++){if(b1 in b3&&b3[b1]===b2){return b1}}}return -1},merge:function(b4,b2){var b3=b4.length,b1=0;if(typeof b2.length==="number"){for(var b0=b2.length;b1<b0;b1++){b4[b3++]=b2[b1]}}else{while(b2[b1]!==L){b4[b3++]=b2[b1++]}}b4.length=b3;return b4},grep:function(b1,b6,b0){var b2=[],b5;b0=!!b0;for(var b3=0,b4=b1.length;b3<b4;b3++){b5=!!b6(b1[b3],b3);if(b0!==b5){b2.push(b1[b3])}}return b2},map:function(b0,b7,b8){var b5,b6,b4=[],b2=0,b1=b0.length,b3=b0 instanceof bF||b1!==L&&typeof b1==="number"&&((b1>0&&b0[0]&&b0[b1-1])||b1===0||bF.isArray(b0));if(b3){for(;b2<b1;b2++){b5=b7(b0[b2],b2,b8);if(b5!=null){b4[b4.length]=b5}}}else{for(b6 in b0){b5=b7(b0[b6],b6,b8);if(b5!=null){b4[b4.length]=b5}}}return b4.concat.apply([],b4)},guid:1,proxy:function(b4,b3){if(typeof b3==="string"){var b2=b4[b3];b3=b4;b4=b2}if(!bF.isFunction(b4)){return L}var b0=bK.call(arguments,2),b1=function(){return b4.apply(b3,b0.concat(bK.call(arguments)))};b1.guid=b4.guid=b4.guid||b1.guid||bF.guid++;return b1},access:function(b0,b8,b6,b2,b5,b7){var b1=b0.length;if(typeof b8==="object"){for(var b3 in b8){bF.access(b0,b3,b8[b3],b2,b5,b6)}return b0}if(b6!==L){b2=!b7&&b2&&bF.isFunction(b6);for(var b4=0;b4<b1;b4++){b5(b0[b4],b8,b2?b6.call(b0[b4],b4,b5(b0[b4],b8)):b6,b7)}return b0}return b1?b5(b0[0],b8):L},now:function(){return(new Date()).getTime()},uaMatch:function(b1){b1=b1.toLowerCase();var b0=by.exec(b1)||bR.exec(b1)||bQ.exec(b1)||b1.indexOf("compatible")<0&&bS.exec(b1)||[];return{browser:b0[1]||"",version:b0[2]||"0"}},sub:function(){function b0(b3,b4){return new b0.fn.init(b3,b4)}bF.extend(true,b0,this);b0.superclass=this;b0.fn=b0.prototype=this();b0.fn.constructor=b0;b0.sub=this.sub;b0.fn.init=function b2(b3,b4){if(b4&&b4 instanceof bF&&!(b4 instanceof b0)){b4=b0(b4)}return bF.fn.init.call(this,b3,b4,b1)};b0.fn.init.prototype=b0.fn;var b1=b0(av);return b0},browser:{}});bF.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(b1,b0){bx["[object "+b0+"]"]=b0.toLowerCase()});bV=bF.uaMatch(bX);if(bV.browser){bF.browser[bV.browser]=true;bF.browser.version=bV.version}if(bF.browser.webkit){bF.browser.safari=true}if(bM.test("\xA0")){bI=/^[\s\xA0]+/;bE=/[\s\xA0]+$/}bD=bF(av);if(av.addEventListener){e=function(){av.removeEventListener("DOMContentLoaded",e,false);bF.ready()}}else{if(av.attachEvent){e=function(){if(av.readyState==="complete"){av.detachEvent("onreadystatechange",e);bF.ready()}}}}function bw(){if(bF.isReady){return}try{av.documentElement.doScroll("left")}catch(b0){setTimeout(bw,1);return}bF.ready()}return bF})();var a2={};function X(e){var bv=a2[e]={},bw,bx;e=e.split(/\s+/);for(bw=0,bx=e.length;bw<bx;bw++){bv[e[bw]]=true}return bv}b.Callbacks=function(bw){bw=bw?(a2[bw]||X(bw)):{};var bB=[],bC=[],bx,by,bv,bz,bA,bE=function(bF){var bG,bJ,bI,bH,bK;for(bG=0,bJ=bF.length;bG<bJ;bG++){bI=bF[bG];bH=b.type(bI);if(bH==="array"){bE(bI)}else{if(bH==="function"){if(!bw.unique||!bD.has(bI)){bB.push(bI)}}}}},e=function(bG,bF){bF=bF||[];bx=!bw.memory||[bG,bF];by=true;bA=bv||0;bv=0;bz=bB.length;for(;bB&&bA<bz;bA++){if(bB[bA].apply(bG,bF)===false&&bw.stopOnFalse){bx=true;break}}by=false;if(bB){if(!bw.once){if(bC&&bC.length){bx=bC.shift();bD.fireWith(bx[0],bx[1])}}else{if(bx===true){bD.disable()}else{bB=[]}}}},bD={add:function(){if(bB){var bF=bB.length;bE(arguments);if(by){bz=bB.length}else{if(bx&&bx!==true){bv=bF;e(bx[0],bx[1])}}}return this},remove:function(){if(bB){var bF=arguments,bH=0,bI=bF.length;for(;bH<bI;bH++){for(var bG=0;bG<bB.length;bG++){if(bF[bH]===bB[bG]){if(by){if(bG<=bz){bz--;if(bG<=bA){bA--}}}bB.splice(bG--,1);if(bw.unique){break}}}}}return this},has:function(bG){if(bB){var bF=0,bH=bB.length;for(;bF<bH;bF++){if(bG===bB[bF]){return true}}}return false},empty:function(){bB=[];return this},disable:function(){bB=bC=bx=L;return this},disabled:function(){return !bB},lock:function(){bC=L;if(!bx||bx===true){bD.disable()}return this},locked:function(){return !bC},fireWith:function(bG,bF){if(bC){if(by){if(!bw.once){bC.push([bG,bF])}}else{if(!(bw.once&&bx)){e(bG,bF)}}}return this},fire:function(){bD.fireWith(this,arguments);return this},fired:function(){return !!bx}};return bD};var aJ=[].slice;b.extend({Deferred:function(by){var bx=b.Callbacks("once memory"),bw=b.Callbacks("once memory"),bv=b.Callbacks("memory"),e="pending",bA={resolve:bx,reject:bw,notify:bv},bC={done:bx.add,fail:bw.add,progress:bv.add,state:function(){return e},isResolved:bx.fired,isRejected:bw.fired,then:function(bE,bD,bF){bB.done(bE).fail(bD).progress(bF);return this},always:function(){bB.done.apply(bB,arguments).fail.apply(bB,arguments);return this},pipe:function(bF,bE,bD){return b.Deferred(function(bG){b.each({done:[bF,"resolve"],fail:[bE,"reject"],progress:[bD,"notify"]},function(bI,bL){var bH=bL[0],bK=bL[1],bJ;if(b.isFunction(bH)){bB[bI](function(){bJ=bH.apply(this,arguments);if(bJ&&b.isFunction(bJ.promise)){bJ.promise().then(bG.resolve,bG.reject,bG.notify)}else{bG[bK+"With"](this===bB?bG:this,[bJ])}})}else{bB[bI](bG[bK])}})}).promise()},promise:function(bE){if(bE==null){bE=bC}else{for(var bD in bC){bE[bD]=bC[bD]}}return bE}},bB=bC.promise({}),bz;for(bz in bA){bB[bz]=bA[bz].fire;bB[bz+"With"]=bA[bz].fireWith}bB.done(function(){e="resolved"},bw.disable,bv.lock).fail(function(){e="rejected"},bx.disable,bv.lock);if(by){by.call(bB,bB)}return bB},when:function(bA){var bx=aJ.call(arguments,0),bv=0,e=bx.length,bB=new Array(e),bw=e,by=e,bC=e<=1&&bA&&b.isFunction(bA.promise)?bA:b.Deferred(),bE=bC.promise();function bD(bF){return function(bG){bx[bF]=arguments.length>1?aJ.call(arguments,0):bG;if(!(--bw)){bC.resolveWith(bC,bx)}}}function bz(bF){return function(bG){bB[bF]=arguments.length>1?aJ.call(arguments,0):bG;bC.notifyWith(bE,bB)}}if(e>1){for(;bv<e;bv++){if(bx[bv]&&bx[bv].promise&&b.isFunction(bx[bv].promise)){bx[bv].promise().then(bD(bv),bC.reject,bz(bv))
-}else{--bw}}if(!bw){bC.resolveWith(bC,bx)}}else{if(bC!==bA){bC.resolveWith(bC,e?[bA]:[])}}return bE}});b.support=(function(){var bJ,bI,bF,bG,bx,bE,bA,bD,bz,bK,bB,by,bw,bv=av.createElement("div"),bH=av.documentElement;bv.setAttribute("className","t");bv.innerHTML="   <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>";bI=bv.getElementsByTagName("*");bF=bv.getElementsByTagName("a")[0];if(!bI||!bI.length||!bF){return{}}bG=av.createElement("select");bx=bG.appendChild(av.createElement("option"));bE=bv.getElementsByTagName("input")[0];bJ={leadingWhitespace:(bv.firstChild.nodeType===3),tbody:!bv.getElementsByTagName("tbody").length,htmlSerialize:!!bv.getElementsByTagName("link").length,style:/top/.test(bF.getAttribute("style")),hrefNormalized:(bF.getAttribute("href")==="/a"),opacity:/^0.55/.test(bF.style.opacity),cssFloat:!!bF.style.cssFloat,checkOn:(bE.value==="on"),optSelected:bx.selected,getSetAttribute:bv.className!=="t",enctype:!!av.createElement("form").enctype,html5Clone:av.createElement("nav").cloneNode(true).outerHTML!=="<:nav></:nav>",submitBubbles:true,changeBubbles:true,focusinBubbles:false,deleteExpando:true,noCloneEvent:true,inlineBlockNeedsLayout:false,shrinkWrapBlocks:false,reliableMarginRight:true};bE.checked=true;bJ.noCloneChecked=bE.cloneNode(true).checked;bG.disabled=true;bJ.optDisabled=!bx.disabled;try{delete bv.test}catch(bC){bJ.deleteExpando=false}if(!bv.addEventListener&&bv.attachEvent&&bv.fireEvent){bv.attachEvent("onclick",function(){bJ.noCloneEvent=false});bv.cloneNode(true).fireEvent("onclick")}bE=av.createElement("input");bE.value="t";bE.setAttribute("type","radio");bJ.radioValue=bE.value==="t";bE.setAttribute("checked","checked");bv.appendChild(bE);bD=av.createDocumentFragment();bD.appendChild(bv.lastChild);bJ.checkClone=bD.cloneNode(true).cloneNode(true).lastChild.checked;bJ.appendChecked=bE.checked;bD.removeChild(bE);bD.appendChild(bv);bv.innerHTML="";if(bb.getComputedStyle){bA=av.createElement("div");bA.style.width="0";bA.style.marginRight="0";bv.style.width="2px";bv.appendChild(bA);bJ.reliableMarginRight=(parseInt((bb.getComputedStyle(bA,null)||{marginRight:0}).marginRight,10)||0)===0}if(bv.attachEvent){for(by in {submit:1,change:1,focusin:1}){bB="on"+by;bw=(bB in bv);if(!bw){bv.setAttribute(bB,"return;");bw=(typeof bv[bB]==="function")}bJ[by+"Bubbles"]=bw}}bD.removeChild(bv);bD=bG=bx=bA=bv=bE=null;b(function(){var bM,bU,bV,bT,bN,bO,bL,bS,bR,e,bP,bQ=av.getElementsByTagName("body")[0];if(!bQ){return}bL=1;bS="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;";bR="visibility:hidden;border:0;";e="style='"+bS+"border:5px solid #000;padding:0;'";bP="<div "+e+"><div></div></div><table "+e+" cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";bM=av.createElement("div");bM.style.cssText=bR+"width:0;height:0;position:static;top:0;margin-top:"+bL+"px";bQ.insertBefore(bM,bQ.firstChild);bv=av.createElement("div");bM.appendChild(bv);bv.innerHTML="<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>";bz=bv.getElementsByTagName("td");bw=(bz[0].offsetHeight===0);bz[0].style.display="";bz[1].style.display="none";bJ.reliableHiddenOffsets=bw&&(bz[0].offsetHeight===0);bv.innerHTML="";bv.style.width=bv.style.paddingLeft="1px";b.boxModel=bJ.boxModel=bv.offsetWidth===2;if(typeof bv.style.zoom!=="undefined"){bv.style.display="inline";bv.style.zoom=1;bJ.inlineBlockNeedsLayout=(bv.offsetWidth===2);bv.style.display="";bv.innerHTML="<div style='width:4px;'></div>";bJ.shrinkWrapBlocks=(bv.offsetWidth!==2)}bv.style.cssText=bS+bR;bv.innerHTML=bP;bU=bv.firstChild;bV=bU.firstChild;bN=bU.nextSibling.firstChild.firstChild;bO={doesNotAddBorder:(bV.offsetTop!==5),doesAddBorderForTableAndCells:(bN.offsetTop===5)};bV.style.position="fixed";bV.style.top="20px";bO.fixedPosition=(bV.offsetTop===20||bV.offsetTop===15);bV.style.position=bV.style.top="";bU.style.overflow="hidden";bU.style.position="relative";bO.subtractsBorderForOverflowNotVisible=(bV.offsetTop===-5);bO.doesNotIncludeMarginInBodyOffset=(bQ.offsetTop!==bL);bQ.removeChild(bM);bv=bM=null;b.extend(bJ,bO)});return bJ})();var aS=/^(?:\{.*\}|\[.*\])$/,aA=/([A-Z])/g;b.extend({cache:{},uuid:0,expando:"jQuery"+(b.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:true,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:true},hasData:function(e){e=e.nodeType?b.cache[e[b.expando]]:e[b.expando];return !!e&&!S(e)},data:function(bx,bv,bz,by){if(!b.acceptData(bx)){return}var bG,bA,bD,bE=b.expando,bC=typeof bv==="string",bF=bx.nodeType,e=bF?b.cache:bx,bw=bF?bx[bE]:bx[bE]&&bE,bB=bv==="events";if((!bw||!e[bw]||(!bB&&!by&&!e[bw].data))&&bC&&bz===L){return}if(!bw){if(bF){bx[bE]=bw=++b.uuid}else{bw=bE}}if(!e[bw]){e[bw]={};if(!bF){e[bw].toJSON=b.noop}}if(typeof bv==="object"||typeof bv==="function"){if(by){e[bw]=b.extend(e[bw],bv)}else{e[bw].data=b.extend(e[bw].data,bv)}}bG=bA=e[bw];if(!by){if(!bA.data){bA.data={}}bA=bA.data}if(bz!==L){bA[b.camelCase(bv)]=bz}if(bB&&!bA[bv]){return bG.events}if(bC){bD=bA[bv];if(bD==null){bD=bA[b.camelCase(bv)]}}else{bD=bA}return bD},removeData:function(bx,bv,by){if(!b.acceptData(bx)){return}var bB,bA,bz,bC=b.expando,bD=bx.nodeType,e=bD?b.cache:bx,bw=bD?bx[bC]:bC;if(!e[bw]){return}if(bv){bB=by?e[bw]:e[bw].data;if(bB){if(!b.isArray(bv)){if(bv in bB){bv=[bv]}else{bv=b.camelCase(bv);if(bv in bB){bv=[bv]}else{bv=bv.split(" ")}}}for(bA=0,bz=bv.length;bA<bz;bA++){delete bB[bv[bA]]}if(!(by?S:b.isEmptyObject)(bB)){return}}}if(!by){delete e[bw].data;if(!S(e[bw])){return}}if(b.support.deleteExpando||!e.setInterval){delete e[bw]}else{e[bw]=null}if(bD){if(b.support.deleteExpando){delete bx[bC]}else{if(bx.removeAttribute){bx.removeAttribute(bC)}else{bx[bC]=null}}}},_data:function(bv,e,bw){return b.data(bv,e,bw,true)},acceptData:function(bv){if(bv.nodeName){var e=b.noData[bv.nodeName.toLowerCase()];if(e){return !(e===true||bv.getAttribute("classid")!==e)}}return true}});b.fn.extend({data:function(by,bA){var bB,e,bw,bz=null;if(typeof by==="undefined"){if(this.length){bz=b.data(this[0]);if(this[0].nodeType===1&&!b._data(this[0],"parsedAttrs")){e=this[0].attributes;for(var bx=0,bv=e.length;bx<bv;bx++){bw=e[bx].name;if(bw.indexOf("data-")===0){bw=b.camelCase(bw.substring(5));a5(this[0],bw,bz[bw])}}b._data(this[0],"parsedAttrs",true)}}return bz}else{if(typeof by==="object"){return this.each(function(){b.data(this,by)})}}bB=by.split(".");bB[1]=bB[1]?"."+bB[1]:"";if(bA===L){bz=this.triggerHandler("getData"+bB[1]+"!",[bB[0]]);if(bz===L&&this.length){bz=b.data(this[0],by);bz=a5(this[0],by,bz)}return bz===L&&bB[1]?this.data(bB[0]):bz}else{return this.each(function(){var bC=b(this),bD=[bB[0],bA];bC.triggerHandler("setData"+bB[1]+"!",bD);b.data(this,by,bA);bC.triggerHandler("changeData"+bB[1]+"!",bD)})}},removeData:function(e){return this.each(function(){b.removeData(this,e)})}});function a5(bx,bw,by){if(by===L&&bx.nodeType===1){var bv="data-"+bw.replace(aA,"-$1").toLowerCase();by=bx.getAttribute(bv);if(typeof by==="string"){try{by=by==="true"?true:by==="false"?false:by==="null"?null:b.isNumeric(by)?parseFloat(by):aS.test(by)?b.parseJSON(by):by}catch(bz){}b.data(bx,bw,by)}else{by=L}}return by}function S(bv){for(var e in bv){if(e==="data"&&b.isEmptyObject(bv[e])){continue}if(e!=="toJSON"){return false}}return true}function bi(by,bx,bA){var bw=bx+"defer",bv=bx+"queue",e=bx+"mark",bz=b._data(by,bw);if(bz&&(bA==="queue"||!b._data(by,bv))&&(bA==="mark"||!b._data(by,e))){setTimeout(function(){if(!b._data(by,bv)&&!b._data(by,e)){b.removeData(by,bw,true);bz.fire()}},0)}}b.extend({_mark:function(bv,e){if(bv){e=(e||"fx")+"mark";b._data(bv,e,(b._data(bv,e)||0)+1)}},_unmark:function(by,bx,bv){if(by!==true){bv=bx;bx=by;by=false}if(bx){bv=bv||"fx";var e=bv+"mark",bw=by?0:((b._data(bx,e)||1)-1);if(bw){b._data(bx,e,bw)}else{b.removeData(bx,e,true);bi(bx,bv,"mark")}}},queue:function(bv,e,bx){var bw;if(bv){e=(e||"fx")+"queue";bw=b._data(bv,e);if(bx){if(!bw||b.isArray(bx)){bw=b._data(bv,e,b.makeArray(bx))}else{bw.push(bx)}}return bw||[]}},dequeue:function(by,bx){bx=bx||"fx";var bv=b.queue(by,bx),bw=bv.shift(),e={};if(bw==="inprogress"){bw=bv.shift()}if(bw){if(bx==="fx"){bv.unshift("inprogress")}b._data(by,bx+".run",e);bw.call(by,function(){b.dequeue(by,bx)},e)}if(!bv.length){b.removeData(by,bx+"queue "+bx+".run",true);bi(by,bx,"queue")}}});b.fn.extend({queue:function(e,bv){if(typeof e!=="string"){bv=e;e="fx"}if(bv===L){return b.queue(this[0],e)}return this.each(function(){var bw=b.queue(this,e,bv);if(e==="fx"&&bw[0]!=="inprogress"){b.dequeue(this,e)}})},dequeue:function(e){return this.each(function(){b.dequeue(this,e)})},delay:function(bv,e){bv=b.fx?b.fx.speeds[bv]||bv:bv;e=e||"fx";return this.queue(e,function(bx,bw){var by=setTimeout(bx,bv);bw.stop=function(){clearTimeout(by)}})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(bD,bw){if(typeof bD!=="string"){bw=bD;bD=L}bD=bD||"fx";var e=b.Deferred(),bv=this,by=bv.length,bB=1,bz=bD+"defer",bA=bD+"queue",bC=bD+"mark",bx;function bE(){if(!(--bB)){e.resolveWith(bv,[bv])}}while(by--){if((bx=b.data(bv[by],bz,L,true)||(b.data(bv[by],bA,L,true)||b.data(bv[by],bC,L,true))&&b.data(bv[by],bz,b.Callbacks("once memory"),true))){bB++;bx.add(bE)}}bE();return e.promise()}});var aP=/[\n\t\r]/g,af=/\s+/,aU=/\r/g,g=/^(?:button|input)$/i,D=/^(?:button|input|object|select|textarea)$/i,l=/^a(?:rea)?$/i,ao=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,F=b.support.getSetAttribute,be,aY,aF;b.fn.extend({attr:function(e,bv){return b.access(this,e,bv,true,b.attr)},removeAttr:function(e){return this.each(function(){b.removeAttr(this,e)})},prop:function(e,bv){return b.access(this,e,bv,true,b.prop)},removeProp:function(e){e=b.propFix[e]||e;return this.each(function(){try{this[e]=L;delete this[e]}catch(bv){}})},addClass:function(by){var bA,bw,bv,bx,bz,bB,e;if(b.isFunction(by)){return this.each(function(bC){b(this).addClass(by.call(this,bC,this.className))})}if(by&&typeof by==="string"){bA=by.split(af);for(bw=0,bv=this.length;bw<bv;bw++){bx=this[bw];if(bx.nodeType===1){if(!bx.className&&bA.length===1){bx.className=by}else{bz=" "+bx.className+" ";for(bB=0,e=bA.length;bB<e;bB++){if(!~bz.indexOf(" "+bA[bB]+" ")){bz+=bA[bB]+" "}}bx.className=b.trim(bz)}}}}return this},removeClass:function(bz){var bA,bw,bv,by,bx,bB,e;if(b.isFunction(bz)){return this.each(function(bC){b(this).removeClass(bz.call(this,bC,this.className))})}if((bz&&typeof bz==="string")||bz===L){bA=(bz||"").split(af);for(bw=0,bv=this.length;bw<bv;bw++){by=this[bw];if(by.nodeType===1&&by.className){if(bz){bx=(" "+by.className+" ").replace(aP," ");for(bB=0,e=bA.length;bB<e;bB++){bx=bx.replace(" "+bA[bB]+" "," ")}by.className=b.trim(bx)}else{by.className=""}}}}return this},toggleClass:function(bx,bv){var bw=typeof bx,e=typeof bv==="boolean";if(b.isFunction(bx)){return this.each(function(by){b(this).toggleClass(bx.call(this,by,this.className,bv),bv)})}return this.each(function(){if(bw==="string"){var bA,bz=0,by=b(this),bB=bv,bC=bx.split(af);while((bA=bC[bz++])){bB=e?bB:!by.hasClass(bA);by[bB?"addClass":"removeClass"](bA)}}else{if(bw==="undefined"||bw==="boolean"){if(this.className){b._data(this,"__className__",this.className)}this.className=this.className||bx===false?"":b._data(this,"__className__")||""}}})},hasClass:function(e){var bx=" "+e+" ",bw=0,bv=this.length;for(;bw<bv;bw++){if(this[bw].nodeType===1&&(" "+this[bw].className+" ").replace(aP," ").indexOf(bx)>-1){return true}}return false},val:function(bx){var e,bv,by,bw=this[0];if(!arguments.length){if(bw){e=b.valHooks[bw.nodeName.toLowerCase()]||b.valHooks[bw.type];if(e&&"get" in e&&(bv=e.get(bw,"value"))!==L){return bv}bv=bw.value;return typeof bv==="string"?bv.replace(aU,""):bv==null?"":bv}return}by=b.isFunction(bx);return this.each(function(bA){var bz=b(this),bB;if(this.nodeType!==1){return}if(by){bB=bx.call(this,bA,bz.val())}else{bB=bx}if(bB==null){bB=""}else{if(typeof bB==="number"){bB+=""}else{if(b.isArray(bB)){bB=b.map(bB,function(bC){return bC==null?"":bC+""})}}}e=b.valHooks[this.nodeName.toLowerCase()]||b.valHooks[this.type];if(!e||!("set" in e)||e.set(this,bB,"value")===L){this.value=bB}})}});b.extend({valHooks:{option:{get:function(e){var bv=e.attributes.value;return !bv||bv.specified?e.value:e.text}},select:{get:function(e){var bA,bv,bz,bx,by=e.selectedIndex,bB=[],bC=e.options,bw=e.type==="select-one";if(by<0){return null}bv=bw?by:0;bz=bw?by+1:bC.length;for(;bv<bz;bv++){bx=bC[bv];if(bx.selected&&(b.support.optDisabled?!bx.disabled:bx.getAttribute("disabled")===null)&&(!bx.parentNode.disabled||!b.nodeName(bx.parentNode,"optgroup"))){bA=b(bx).val();if(bw){return bA}bB.push(bA)}}if(bw&&!bB.length&&bC.length){return b(bC[by]).val()}return bB},set:function(bv,bw){var e=b.makeArray(bw);b(bv).find("option").each(function(){this.selected=b.inArray(b(this).val(),e)>=0});if(!e.length){bv.selectedIndex=-1}return e}}},attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(bA,bx,bB,bz){var bw,e,by,bv=bA.nodeType;
-if(!bA||bv===3||bv===8||bv===2){return}if(bz&&bx in b.attrFn){return b(bA)[bx](bB)}if(typeof bA.getAttribute==="undefined"){return b.prop(bA,bx,bB)}by=bv!==1||!b.isXMLDoc(bA);if(by){bx=bx.toLowerCase();e=b.attrHooks[bx]||(ao.test(bx)?aY:be)}if(bB!==L){if(bB===null){b.removeAttr(bA,bx);return}else{if(e&&"set" in e&&by&&(bw=e.set(bA,bB,bx))!==L){return bw}else{bA.setAttribute(bx,""+bB);return bB}}}else{if(e&&"get" in e&&by&&(bw=e.get(bA,bx))!==null){return bw}else{bw=bA.getAttribute(bx);return bw===null?L:bw}}},removeAttr:function(bx,bz){var by,bA,bv,e,bw=0;if(bz&&bx.nodeType===1){bA=bz.toLowerCase().split(af);e=bA.length;for(;bw<e;bw++){bv=bA[bw];if(bv){by=b.propFix[bv]||bv;b.attr(bx,bv,"");bx.removeAttribute(F?bv:by);if(ao.test(bv)&&by in bx){bx[by]=false}}}}},attrHooks:{type:{set:function(e,bv){if(g.test(e.nodeName)&&e.parentNode){b.error("type property can't be changed")}else{if(!b.support.radioValue&&bv==="radio"&&b.nodeName(e,"input")){var bw=e.value;e.setAttribute("type",bv);if(bw){e.value=bw}return bv}}}},value:{get:function(bv,e){if(be&&b.nodeName(bv,"button")){return be.get(bv,e)}return e in bv?bv.value:null},set:function(bv,bw,e){if(be&&b.nodeName(bv,"button")){return be.set(bv,bw,e)}bv.value=bw}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(bz,bx,bA){var bw,e,by,bv=bz.nodeType;if(!bz||bv===3||bv===8||bv===2){return}by=bv!==1||!b.isXMLDoc(bz);if(by){bx=b.propFix[bx]||bx;e=b.propHooks[bx]}if(bA!==L){if(e&&"set" in e&&(bw=e.set(bz,bA,bx))!==L){return bw}else{return(bz[bx]=bA)}}else{if(e&&"get" in e&&(bw=e.get(bz,bx))!==null){return bw}else{return bz[bx]}}},propHooks:{tabIndex:{get:function(bv){var e=bv.getAttributeNode("tabindex");return e&&e.specified?parseInt(e.value,10):D.test(bv.nodeName)||l.test(bv.nodeName)&&bv.href?0:L}}}});b.attrHooks.tabindex=b.propHooks.tabIndex;aY={get:function(bv,e){var bx,bw=b.prop(bv,e);return bw===true||typeof bw!=="boolean"&&(bx=bv.getAttributeNode(e))&&bx.nodeValue!==false?e.toLowerCase():L},set:function(bv,bx,e){var bw;if(bx===false){b.removeAttr(bv,e)}else{bw=b.propFix[e]||e;if(bw in bv){bv[bw]=true}bv.setAttribute(e,e.toLowerCase())}return e}};if(!F){aF={name:true,id:true};be=b.valHooks.button={get:function(bw,bv){var e;e=bw.getAttributeNode(bv);return e&&(aF[bv]?e.nodeValue!=="":e.specified)?e.nodeValue:L},set:function(bw,bx,bv){var e=bw.getAttributeNode(bv);if(!e){e=av.createAttribute(bv);bw.setAttributeNode(e)}return(e.nodeValue=bx+"")}};b.attrHooks.tabindex.set=be.set;b.each(["width","height"],function(bv,e){b.attrHooks[e]=b.extend(b.attrHooks[e],{set:function(bw,bx){if(bx===""){bw.setAttribute(e,"auto");return bx}}})});b.attrHooks.contenteditable={get:be.get,set:function(bv,bw,e){if(bw===""){bw="false"}be.set(bv,bw,e)}}}if(!b.support.hrefNormalized){b.each(["href","src","width","height"],function(bv,e){b.attrHooks[e]=b.extend(b.attrHooks[e],{get:function(bx){var bw=bx.getAttribute(e,2);return bw===null?L:bw}})})}if(!b.support.style){b.attrHooks.style={get:function(e){return e.style.cssText.toLowerCase()||L},set:function(e,bv){return(e.style.cssText=""+bv)}}}if(!b.support.optSelected){b.propHooks.selected=b.extend(b.propHooks.selected,{get:function(bv){var e=bv.parentNode;if(e){e.selectedIndex;if(e.parentNode){e.parentNode.selectedIndex}}return null}})}if(!b.support.enctype){b.propFix.enctype="encoding"}if(!b.support.checkOn){b.each(["radio","checkbox"],function(){b.valHooks[this]={get:function(e){return e.getAttribute("value")===null?"on":e.value}}})}b.each(["radio","checkbox"],function(){b.valHooks[this]=b.extend(b.valHooks[this],{set:function(e,bv){if(b.isArray(bv)){return(e.checked=b.inArray(b(e).val(),bv)>=0)}}})});var bd=/^(?:textarea|input|select)$/i,n=/^([^\.]*)?(?:\.(.+))?$/,J=/\bhover(\.\S+)?\b/,aO=/^key/,bf=/^(?:mouse|contextmenu)|click/,T=/^(?:focusinfocus|focusoutblur)$/,U=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,Y=function(e){var bv=U.exec(e);if(bv){bv[1]=(bv[1]||"").toLowerCase();bv[3]=bv[3]&&new RegExp("(?:^|\\s)"+bv[3]+"(?:\\s|$)")}return bv},j=function(bw,e){var bv=bw.attributes||{};return((!e[1]||bw.nodeName.toLowerCase()===e[1])&&(!e[2]||(bv.id||{}).value===e[2])&&(!e[3]||e[3].test((bv["class"]||{}).value)))},bt=function(e){return b.event.special.hover?e:e.replace(J,"mouseenter$1 mouseleave$1")};b.event={add:function(bx,bC,bJ,bA,by){var bD,bB,bK,bI,bH,bF,e,bG,bv,bz,bw,bE;if(bx.nodeType===3||bx.nodeType===8||!bC||!bJ||!(bD=b._data(bx))){return}if(bJ.handler){bv=bJ;bJ=bv.handler}if(!bJ.guid){bJ.guid=b.guid++}bK=bD.events;if(!bK){bD.events=bK={}}bB=bD.handle;if(!bB){bD.handle=bB=function(bL){return typeof b!=="undefined"&&(!bL||b.event.triggered!==bL.type)?b.event.dispatch.apply(bB.elem,arguments):L};bB.elem=bx}bC=b.trim(bt(bC)).split(" ");for(bI=0;bI<bC.length;bI++){bH=n.exec(bC[bI])||[];bF=bH[1];e=(bH[2]||"").split(".").sort();bE=b.event.special[bF]||{};bF=(by?bE.delegateType:bE.bindType)||bF;bE=b.event.special[bF]||{};bG=b.extend({type:bF,origType:bH[1],data:bA,handler:bJ,guid:bJ.guid,selector:by,quick:Y(by),namespace:e.join(".")},bv);bw=bK[bF];if(!bw){bw=bK[bF]=[];bw.delegateCount=0;if(!bE.setup||bE.setup.call(bx,bA,e,bB)===false){if(bx.addEventListener){bx.addEventListener(bF,bB,false)}else{if(bx.attachEvent){bx.attachEvent("on"+bF,bB)}}}}if(bE.add){bE.add.call(bx,bG);if(!bG.handler.guid){bG.handler.guid=bJ.guid}}if(by){bw.splice(bw.delegateCount++,0,bG)}else{bw.push(bG)}b.event.global[bF]=true}bx=null},global:{},remove:function(bJ,bE,bv,bH,bB){var bI=b.hasData(bJ)&&b._data(bJ),bF,bx,bz,bL,bC,bA,bG,bw,by,bK,bD,e;if(!bI||!(bw=bI.events)){return}bE=b.trim(bt(bE||"")).split(" ");for(bF=0;bF<bE.length;bF++){bx=n.exec(bE[bF])||[];bz=bL=bx[1];bC=bx[2];if(!bz){for(bz in bw){b.event.remove(bJ,bz+bE[bF],bv,bH,true)}continue}by=b.event.special[bz]||{};bz=(bH?by.delegateType:by.bindType)||bz;bD=bw[bz]||[];bA=bD.length;bC=bC?new RegExp("(^|\\.)"+bC.split(".").sort().join("\\.(?:.*\\.)?")+"(\\.|$)"):null;for(bG=0;bG<bD.length;bG++){e=bD[bG];if((bB||bL===e.origType)&&(!bv||bv.guid===e.guid)&&(!bC||bC.test(e.namespace))&&(!bH||bH===e.selector||bH==="**"&&e.selector)){bD.splice(bG--,1);if(e.selector){bD.delegateCount--}if(by.remove){by.remove.call(bJ,e)}}}if(bD.length===0&&bA!==bD.length){if(!by.teardown||by.teardown.call(bJ,bC)===false){b.removeEvent(bJ,bz,bI.handle)}delete bw[bz]}}if(b.isEmptyObject(bw)){bK=bI.handle;if(bK){bK.elem=null}b.removeData(bJ,["events","handle"],true)}},customEvent:{getData:true,setData:true,changeData:true},trigger:function(bv,bD,bA,bJ){if(bA&&(bA.nodeType===3||bA.nodeType===8)){return}var bG=bv.type||bv,bx=[],e,bw,bC,bH,bz,by,bF,bE,bB,bI;if(T.test(bG+b.event.triggered)){return}if(bG.indexOf("!")>=0){bG=bG.slice(0,-1);bw=true}if(bG.indexOf(".")>=0){bx=bG.split(".");bG=bx.shift();bx.sort()}if((!bA||b.event.customEvent[bG])&&!b.event.global[bG]){return}bv=typeof bv==="object"?bv[b.expando]?bv:new b.Event(bG,bv):new b.Event(bG);bv.type=bG;bv.isTrigger=true;bv.exclusive=bw;bv.namespace=bx.join(".");bv.namespace_re=bv.namespace?new RegExp("(^|\\.)"+bx.join("\\.(?:.*\\.)?")+"(\\.|$)"):null;by=bG.indexOf(":")<0?"on"+bG:"";if(!bA){e=b.cache;for(bC in e){if(e[bC].events&&e[bC].events[bG]){b.event.trigger(bv,bD,e[bC].handle.elem,true)}}return}bv.result=L;if(!bv.target){bv.target=bA}bD=bD!=null?b.makeArray(bD):[];bD.unshift(bv);bF=b.event.special[bG]||{};if(bF.trigger&&bF.trigger.apply(bA,bD)===false){return}bB=[[bA,bF.bindType||bG]];if(!bJ&&!bF.noBubble&&!b.isWindow(bA)){bI=bF.delegateType||bG;bH=T.test(bI+bG)?bA:bA.parentNode;bz=null;for(;bH;bH=bH.parentNode){bB.push([bH,bI]);bz=bH}if(bz&&bz===bA.ownerDocument){bB.push([bz.defaultView||bz.parentWindow||bb,bI])}}for(bC=0;bC<bB.length&&!bv.isPropagationStopped();bC++){bH=bB[bC][0];bv.type=bB[bC][1];bE=(b._data(bH,"events")||{})[bv.type]&&b._data(bH,"handle");if(bE){bE.apply(bH,bD)}bE=by&&bH[by];if(bE&&b.acceptData(bH)&&bE.apply(bH,bD)===false){bv.preventDefault()}}bv.type=bG;if(!bJ&&!bv.isDefaultPrevented()){if((!bF._default||bF._default.apply(bA.ownerDocument,bD)===false)&&!(bG==="click"&&b.nodeName(bA,"a"))&&b.acceptData(bA)){if(by&&bA[bG]&&((bG!=="focus"&&bG!=="blur")||bv.target.offsetWidth!==0)&&!b.isWindow(bA)){bz=bA[by];if(bz){bA[by]=null}b.event.triggered=bG;bA[bG]();b.event.triggered=L;if(bz){bA[by]=bz}}}}return bv.result},dispatch:function(e){e=b.event.fix(e||bb.event);var bz=((b._data(this,"events")||{})[e.type]||[]),bA=bz.delegateCount,bG=[].slice.call(arguments,0),by=!e.exclusive&&!e.namespace,bH=[],bC,bB,bK,bx,bF,bE,bv,bD,bI,bw,bJ;bG[0]=e;e.delegateTarget=this;if(bA&&!e.target.disabled&&!(e.button&&e.type==="click")){bx=b(this);bx.context=this.ownerDocument||this;for(bK=e.target;bK!=this;bK=bK.parentNode||this){bE={};bD=[];bx[0]=bK;for(bC=0;bC<bA;bC++){bI=bz[bC];bw=bI.selector;if(bE[bw]===L){bE[bw]=(bI.quick?j(bK,bI.quick):bx.is(bw))}if(bE[bw]){bD.push(bI)}}if(bD.length){bH.push({elem:bK,matches:bD})}}}if(bz.length>bA){bH.push({elem:this,matches:bz.slice(bA)})}for(bC=0;bC<bH.length&&!e.isPropagationStopped();bC++){bv=bH[bC];e.currentTarget=bv.elem;for(bB=0;bB<bv.matches.length&&!e.isImmediatePropagationStopped();bB++){bI=bv.matches[bB];if(by||(!e.namespace&&!bI.namespace)||e.namespace_re&&e.namespace_re.test(bI.namespace)){e.data=bI.data;e.handleObj=bI;bF=((b.event.special[bI.origType]||{}).handle||bI.handler).apply(bv.elem,bG);if(bF!==L){e.result=bF;if(bF===false){e.preventDefault();e.stopPropagation()}}}}}return e.result},props:"attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(bv,e){if(bv.which==null){bv.which=e.charCode!=null?e.charCode:e.keyCode}return bv}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(bx,bw){var by,bz,e,bv=bw.button,bA=bw.fromElement;if(bx.pageX==null&&bw.clientX!=null){by=bx.target.ownerDocument||av;bz=by.documentElement;e=by.body;bx.pageX=bw.clientX+(bz&&bz.scrollLeft||e&&e.scrollLeft||0)-(bz&&bz.clientLeft||e&&e.clientLeft||0);bx.pageY=bw.clientY+(bz&&bz.scrollTop||e&&e.scrollTop||0)-(bz&&bz.clientTop||e&&e.clientTop||0)}if(!bx.relatedTarget&&bA){bx.relatedTarget=bA===bx.target?bw.toElement:bA}if(!bx.which&&bv!==L){bx.which=(bv&1?1:(bv&2?3:(bv&4?2:0)))}return bx}},fix:function(bw){if(bw[b.expando]){return bw}var bv,bz,e=bw,bx=b.event.fixHooks[bw.type]||{},by=bx.props?this.props.concat(bx.props):this.props;bw=b.Event(e);for(bv=by.length;bv;){bz=by[--bv];bw[bz]=e[bz]}if(!bw.target){bw.target=e.srcElement||av}if(bw.target.nodeType===3){bw.target=bw.target.parentNode}if(bw.metaKey===L){bw.metaKey=bw.ctrlKey}return bx.filter?bx.filter(bw,e):bw},special:{ready:{setup:b.bindReady},load:{noBubble:true},focus:{delegateType:"focusin"},blur:{delegateType:"focusout"},beforeunload:{setup:function(bw,bv,e){if(b.isWindow(this)){this.onbeforeunload=e}},teardown:function(bv,e){if(this.onbeforeunload===e){this.onbeforeunload=null}}}},simulate:function(bw,by,bx,bv){var bz=b.extend(new b.Event(),bx,{type:bw,isSimulated:true,originalEvent:{}});if(bv){b.event.trigger(bz,null,by)}else{b.event.dispatch.call(by,bz)}if(bz.isDefaultPrevented()){bx.preventDefault()}}};b.event.handle=b.event.dispatch;b.removeEvent=av.removeEventListener?function(bv,e,bw){if(bv.removeEventListener){bv.removeEventListener(e,bw,false)}}:function(bv,e,bw){if(bv.detachEvent){bv.detachEvent("on"+e,bw)}};b.Event=function(bv,e){if(!(this instanceof b.Event)){return new b.Event(bv,e)}if(bv&&bv.type){this.originalEvent=bv;this.type=bv.type;this.isDefaultPrevented=(bv.defaultPrevented||bv.returnValue===false||bv.getPreventDefault&&bv.getPreventDefault())?i:bk}else{this.type=bv}if(e){b.extend(this,e)}this.timeStamp=bv&&bv.timeStamp||b.now();this[b.expando]=true};function bk(){return false}function i(){return true}b.Event.prototype={preventDefault:function(){this.isDefaultPrevented=i;var bv=this.originalEvent;if(!bv){return}if(bv.preventDefault){bv.preventDefault()}else{bv.returnValue=false}},stopPropagation:function(){this.isPropagationStopped=i;var bv=this.originalEvent;if(!bv){return}if(bv.stopPropagation){bv.stopPropagation()}bv.cancelBubble=true},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=i;this.stopPropagation()},isDefaultPrevented:bk,isPropagationStopped:bk,isImmediatePropagationStopped:bk};b.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(bv,e){b.event.special[bv]={delegateType:e,bindType:e,handle:function(bz){var bB=this,bA=bz.relatedTarget,by=bz.handleObj,bw=by.selector,bx;if(!bA||(bA!==bB&&!b.contains(bB,bA))){bz.type=by.origType;bx=by.handler.apply(this,arguments);bz.type=e}return bx}}});if(!b.support.submitBubbles){b.event.special.submit={setup:function(){if(b.nodeName(this,"form")){return false
-}b.event.add(this,"click._submit keypress._submit",function(bx){var bw=bx.target,bv=b.nodeName(bw,"input")||b.nodeName(bw,"button")?bw.form:L;if(bv&&!bv._submit_attached){b.event.add(bv,"submit._submit",function(e){if(this.parentNode&&!e.isTrigger){b.event.simulate("submit",this.parentNode,e,true)}});bv._submit_attached=true}})},teardown:function(){if(b.nodeName(this,"form")){return false}b.event.remove(this,"._submit")}}}if(!b.support.changeBubbles){b.event.special.change={setup:function(){if(bd.test(this.nodeName)){if(this.type==="checkbox"||this.type==="radio"){b.event.add(this,"propertychange._change",function(e){if(e.originalEvent.propertyName==="checked"){this._just_changed=true}});b.event.add(this,"click._change",function(e){if(this._just_changed&&!e.isTrigger){this._just_changed=false;b.event.simulate("change",this,e,true)}})}return false}b.event.add(this,"beforeactivate._change",function(bw){var bv=bw.target;if(bd.test(bv.nodeName)&&!bv._change_attached){b.event.add(bv,"change._change",function(e){if(this.parentNode&&!e.isSimulated&&!e.isTrigger){b.event.simulate("change",this.parentNode,e,true)}});bv._change_attached=true}})},handle:function(bv){var e=bv.target;if(this!==e||bv.isSimulated||bv.isTrigger||(e.type!=="radio"&&e.type!=="checkbox")){return bv.handleObj.handler.apply(this,arguments)}},teardown:function(){b.event.remove(this,"._change");return bd.test(this.nodeName)}}}if(!b.support.focusinBubbles){b.each({focus:"focusin",blur:"focusout"},function(bx,e){var bv=0,bw=function(by){b.event.simulate(e,by.target,b.event.fix(by),true)};b.event.special[e]={setup:function(){if(bv++===0){av.addEventListener(bx,bw,true)}},teardown:function(){if(--bv===0){av.removeEventListener(bx,bw,true)}}}})}b.fn.extend({on:function(bw,e,bz,by,bv){var bA,bx;if(typeof bw==="object"){if(typeof e!=="string"){bz=e;e=L}for(bx in bw){this.on(bx,e,bz,bw[bx],bv)}return this}if(bz==null&&by==null){by=e;bz=e=L}else{if(by==null){if(typeof e==="string"){by=bz;bz=L}else{by=bz;bz=e;e=L}}}if(by===false){by=bk}else{if(!by){return this}}if(bv===1){bA=by;by=function(bB){b().off(bB);return bA.apply(this,arguments)};by.guid=bA.guid||(bA.guid=b.guid++)}return this.each(function(){b.event.add(this,bw,by,bz,e)})},one:function(bv,e,bx,bw){return this.on.call(this,bv,e,bx,bw,1)},off:function(bw,e,by){if(bw&&bw.preventDefault&&bw.handleObj){var bv=bw.handleObj;b(bw.delegateTarget).off(bv.namespace?bv.type+"."+bv.namespace:bv.type,bv.selector,bv.handler);return this}if(typeof bw==="object"){for(var bx in bw){this.off(bx,e,bw[bx])}return this}if(e===false||typeof e==="function"){by=e;e=L}if(by===false){by=bk}return this.each(function(){b.event.remove(this,bw,by,e)})},bind:function(e,bw,bv){return this.on(e,null,bw,bv)},unbind:function(e,bv){return this.off(e,null,bv)},live:function(e,bw,bv){b(this.context).on(e,this.selector,bw,bv);return this},die:function(e,bv){b(this.context).off(e,this.selector||"**",bv);return this},delegate:function(e,bv,bx,bw){return this.on(bv,e,bx,bw)},undelegate:function(e,bv,bw){return arguments.length==1?this.off(e,"**"):this.off(bv,e,bw)},trigger:function(e,bv){return this.each(function(){b.event.trigger(e,bv,this)})},triggerHandler:function(e,bv){if(this[0]){return b.event.trigger(e,bv,this[0],true)}},toggle:function(bx){var bv=arguments,e=bx.guid||b.guid++,bw=0,by=function(bz){var bA=(b._data(this,"lastToggle"+bx.guid)||0)%bw;b._data(this,"lastToggle"+bx.guid,bA+1);bz.preventDefault();return bv[bA].apply(this,arguments)||false};by.guid=e;while(bw<bv.length){bv[bw++].guid=e}return this.click(by)},hover:function(e,bv){return this.mouseenter(e).mouseleave(bv||e)}});b.each(("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu").split(" "),function(bv,e){b.fn[e]=function(bx,bw){if(bw==null){bw=bx;bx=null}return arguments.length>0?this.on(e,null,bx,bw):this.trigger(e)};if(b.attrFn){b.attrFn[e]=true}if(aO.test(e)){b.event.fixHooks[e]=b.event.keyHooks}if(bf.test(e)){b.event.fixHooks[e]=b.event.mouseHooks}});
-/*!
+(function(bb,L){var av=bb.document,bu=bb.navigator,bl=bb.location;var b=(function(){var bF=function(b0,b1){return new bF.fn.init(b0,b1,bD)},bU=bb.jQuery,bH=bb.$,bD,bY=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,bM=/\S/,bI=/^\s+/,bE=/\s+$/,bA=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,bN=/^[\],:{}\s]*$/,bW=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,bP=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,bJ=/(?:^|:|,)(?:\s*\[)+/g,by=/(webkit)[ \/]([\w.]+)/,bR=/(opera)(?:.*version)?[ \/]([\w.]+)/,bQ=/(msie) ([\w.]+)/,bS=/(mozilla)(?:.*? rv:([\w.]+))?/,bB=/-([a-z]|[0-9])/ig,bZ=/^-ms-/,bT=function(b0,b1){return(b1+"").toUpperCase()},bX=bu.userAgent,bV,bC,e,bL=Object.prototype.toString,bG=Object.prototype.hasOwnProperty,bz=Array.prototype.push,bK=Array.prototype.slice,bO=String.prototype.trim,bv=Array.prototype.indexOf,bx={};bF.fn=bF.prototype={constructor:bF,init:function(b0,b4,b3){var b2,b5,b1,b6;if(!b0){return this}if(b0.nodeType){this.context=this[0]=b0;this.length=1;return this}if(b0==="body"&&!b4&&av.body){this.context=av;this[0]=av.body;this.selector=b0;this.length=1;return this}if(typeof b0==="string"){if(b0.charAt(0)==="<"&&b0.charAt(b0.length-1)===">"&&b0.length>=3){b2=[null,b0,null]}else{b2=bY.exec(b0)}if(b2&&(b2[1]||!b4)){if(b2[1]){b4=b4 instanceof bF?b4[0]:b4;b6=(b4?b4.ownerDocument||b4:av);b1=bA.exec(b0);if(b1){if(bF.isPlainObject(b4)){b0=[av.createElement(b1[1])];bF.fn.attr.call(b0,b4,true)}else{b0=[b6.createElement(b1[1])]}}else{b1=bF.buildFragment([b2[1]],[b6]);b0=(b1.cacheable?bF.clone(b1.fragment):b1.fragment).childNodes}return bF.merge(this,b0)}else{b5=av.getElementById(b2[2]);if(b5&&b5.parentNode){if(b5.id!==b2[2]){return b3.find(b0)}this.length=1;this[0]=b5}this.context=av;this.selector=b0;return this}}else{if(!b4||b4.jquery){return(b4||b3).find(b0)}else{return this.constructor(b4).find(b0)}}}else{if(bF.isFunction(b0)){return b3.ready(b0)}}if(b0.selector!==L){this.selector=b0.selector;this.context=b0.context}return bF.makeArray(b0,this)},selector:"",jquery:"1.7.1",length:0,size:function(){return this.length},toArray:function(){return bK.call(this,0)},get:function(b0){return b0==null?this.toArray():(b0<0?this[this.length+b0]:this[b0])},pushStack:function(b1,b3,b0){var b2=this.constructor();if(bF.isArray(b1)){bz.apply(b2,b1)}else{bF.merge(b2,b1)}b2.prevObject=this;b2.context=this.context;if(b3==="find"){b2.selector=this.selector+(this.selector?" ":"")+b0}else{if(b3){b2.selector=this.selector+"."+b3+"("+b0+")"}}return b2},each:function(b1,b0){return bF.each(this,b1,b0)},ready:function(b0){bF.bindReady();bC.add(b0);return this},eq:function(b0){b0=+b0;return b0===-1?this.slice(b0):this.slice(b0,b0+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(bK.apply(this,arguments),"slice",bK.call(arguments).join(","))},map:function(b0){return this.pushStack(bF.map(this,function(b2,b1){return b0.call(b2,b1,b2)}))},end:function(){return this.prevObject||this.constructor(null)},push:bz,sort:[].sort,splice:[].splice};bF.fn.init.prototype=bF.fn;bF.extend=bF.fn.extend=function(){var b9,b2,b0,b1,b6,b7,b5=arguments[0]||{},b4=1,b3=arguments.length,b8=false;if(typeof b5==="boolean"){b8=b5;b5=arguments[1]||{};b4=2}if(typeof b5!=="object"&&!bF.isFunction(b5)){b5={}}if(b3===b4){b5=this;--b4}for(;b4<b3;b4++){if((b9=arguments[b4])!=null){for(b2 in b9){b0=b5[b2];b1=b9[b2];if(b5===b1){continue}if(b8&&b1&&(bF.isPlainObject(b1)||(b6=bF.isArray(b1)))){if(b6){b6=false;b7=b0&&bF.isArray(b0)?b0:[]}else{b7=b0&&bF.isPlainObject(b0)?b0:{}}b5[b2]=bF.extend(b8,b7,b1)}else{if(b1!==L){b5[b2]=b1}}}}}return b5};bF.extend({noConflict:function(b0){if(bb.$===bF){bb.$=bH}if(b0&&bb.jQuery===bF){bb.jQuery=bU}return bF},isReady:false,readyWait:1,holdReady:function(b0){if(b0){bF.readyWait++}else{bF.ready(true)}},ready:function(b0){if((b0===true&&!--bF.readyWait)||(b0!==true&&!bF.isReady)){if(!av.body){return setTimeout(bF.ready,1)}bF.isReady=true;if(b0!==true&&--bF.readyWait>0){return}bC.fireWith(av,[bF]);if(bF.fn.trigger){bF(av).trigger("ready").off("ready")}}},bindReady:function(){if(bC){return}bC=bF.Callbacks("once memory");if(av.readyState==="complete"){return setTimeout(bF.ready,1)}if(av.addEventListener){av.addEventListener("DOMContentLoaded",e,false);bb.addEventListener("load",bF.ready,false)}else{if(av.attachEvent){av.attachEvent("onreadystatechange",e);bb.attachEvent("onload",bF.ready);var b0=false;try{b0=bb.frameElement==null}catch(b1){}if(av.documentElement.doScroll&&b0){bw()}}}},isFunction:function(b0){return bF.type(b0)==="function"},isArray:Array.isArray||function(b0){return bF.type(b0)==="array"},isWindow:function(b0){return b0&&typeof b0==="object"&&"setInterval" in b0},isNumeric:function(b0){return !isNaN(parseFloat(b0))&&isFinite(b0)},type:function(b0){return b0==null?String(b0):bx[bL.call(b0)]||"object"},isPlainObject:function(b2){if(!b2||bF.type(b2)!=="object"||b2.nodeType||bF.isWindow(b2)){return false}try{if(b2.constructor&&!bG.call(b2,"constructor")&&!bG.call(b2.constructor.prototype,"isPrototypeOf")){return false}}catch(b1){return false}var b0;for(b0 in b2){}return b0===L||bG.call(b2,b0)},isEmptyObject:function(b1){for(var b0 in b1){return false}return true},error:function(b0){throw new Error(b0)},parseJSON:function(b0){if(typeof b0!=="string"||!b0){return null}b0=bF.trim(b0);if(bb.JSON&&bb.JSON.parse){return bb.JSON.parse(b0)}if(bN.test(b0.replace(bW,"@").replace(bP,"]").replace(bJ,""))){return(new Function("return "+b0))()}bF.error("Invalid JSON: "+b0)},parseXML:function(b2){var b0,b1;try{if(bb.DOMParser){b1=new DOMParser();b0=b1.parseFromString(b2,"text/xml")}else{b0=new ActiveXObject("Microsoft.XMLDOM");b0.async="false";b0.loadXML(b2)}}catch(b3){b0=L}if(!b0||!b0.documentElement||b0.getElementsByTagName("parsererror").length){bF.error("Invalid XML: "+b2)}return b0},noop:function(){},globalEval:function(b0){if(b0&&bM.test(b0)){(bb.execScript||function(b1){bb["eval"].call(bb,b1)})(b0)}},camelCase:function(b0){return b0.replace(bZ,"ms-").replace(bB,bT)},nodeName:function(b1,b0){return b1.nodeName&&b1.nodeName.toUpperCase()===b0.toUpperCase()},each:function(b3,b6,b2){var b1,b4=0,b5=b3.length,b0=b5===L||bF.isFunction(b3);if(b2){if(b0){for(b1 in b3){if(b6.apply(b3[b1],b2)===false){break}}}else{for(;b4<b5;){if(b6.apply(b3[b4++],b2)===false){break}}}}else{if(b0){for(b1 in b3){if(b6.call(b3[b1],b1,b3[b1])===false){break}}}else{for(;b4<b5;){if(b6.call(b3[b4],b4,b3[b4++])===false){break}}}}return b3},trim:bO?function(b0){return b0==null?"":bO.call(b0)}:function(b0){return b0==null?"":b0.toString().replace(bI,"").replace(bE,"")},makeArray:function(b3,b1){var b0=b1||[];if(b3!=null){var b2=bF.type(b3);if(b3.length==null||b2==="string"||b2==="function"||b2==="regexp"||bF.isWindow(b3)){bz.call(b0,b3)}else{bF.merge(b0,b3)}}return b0},inArray:function(b2,b3,b1){var b0;if(b3){if(bv){return bv.call(b3,b2,b1)}b0=b3.length;b1=b1?b1<0?Math.max(0,b0+b1):b1:0;for(;b1<b0;b1++){if(b1 in b3&&b3[b1]===b2){return b1}}}return -1},merge:function(b4,b2){var b3=b4.length,b1=0;if(typeof b2.length==="number"){for(var b0=b2.length;b1<b0;b1++){b4[b3++]=b2[b1]}}else{while(b2[b1]!==L){b4[b3++]=b2[b1++]}}b4.length=b3;return b4},grep:function(b1,b6,b0){var b2=[],b5;b0=!!b0;for(var b3=0,b4=b1.length;b3<b4;b3++){b5=!!b6(b1[b3],b3);if(b0!==b5){b2.push(b1[b3])}}return b2},map:function(b0,b7,b8){var b5,b6,b4=[],b2=0,b1=b0.length,b3=b0 instanceof bF||b1!==L&&typeof b1==="number"&&((b1>0&&b0[0]&&b0[b1-1])||b1===0||bF.isArray(b0));if(b3){for(;b2<b1;b2++){b5=b7(b0[b2],b2,b8);if(b5!=null){b4[b4.length]=b5}}}else{for(b6 in b0){b5=b7(b0[b6],b6,b8);if(b5!=null){b4[b4.length]=b5}}}return b4.concat.apply([],b4)},guid:1,proxy:function(b4,b3){if(typeof b3==="string"){var b2=b4[b3];b3=b4;b4=b2}if(!bF.isFunction(b4)){return L}var b0=bK.call(arguments,2),b1=function(){return b4.apply(b3,b0.concat(bK.call(arguments)))};b1.guid=b4.guid=b4.guid||b1.guid||bF.guid++;return b1},access:function(b0,b8,b6,b2,b5,b7){var b1=b0.length;if(typeof b8==="object"){for(var b3 in b8){bF.access(b0,b3,b8[b3],b2,b5,b6)}return b0}if(b6!==L){b2=!b7&&b2&&bF.isFunction(b6);for(var b4=0;b4<b1;b4++){b5(b0[b4],b8,b2?b6.call(b0[b4],b4,b5(b0[b4],b8)):b6,b7)}return b0}return b1?b5(b0[0],b8):L},now:function(){return(new Date()).getTime()},uaMatch:function(b1){b1=b1.toLowerCase();var b0=by.exec(b1)||bR.exec(b1)||bQ.exec(b1)||b1.indexOf("compatible")<0&&bS.exec(b1)||[];return{browser:b0[1]||"",version:b0[2]||"0"}},sub:function(){function b0(b3,b4){return new b0.fn.init(b3,b4)}bF.extend(true,b0,this);b0.superclass=this;b0.fn=b0.prototype=this();b0.fn.constructor=b0;b0.sub=this.sub;b0.fn.init=function b2(b3,b4){if(b4&&b4 instanceof bF&&!(b4 instanceof b0)){b4=b0(b4)}return bF.fn.init.call(this,b3,b4,b1)};b0.fn.init.prototype=b0.fn;var b1=b0(av);return b0},browser:{}});bF.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(b1,b0){bx["[object "+b0+"]"]=b0.toLowerCase()});bV=bF.uaMatch(bX);if(bV.browser){bF.browser[bV.browser]=true;bF.browser.version=bV.version}if(bF.browser.webkit){bF.browser.safari=true}if(bM.test("\xA0")){bI=/^[\s\xA0]+/;bE=/[\s\xA0]+$/}bD=bF(av);if(av.addEventListener){e=function(){av.removeEventListener("DOMContentLoaded",e,false);bF.ready()}}else{if(av.attachEvent){e=function(){if(av.readyState==="complete"){av.detachEvent("onreadystatechange",e);bF.ready()}}}}function bw(){if(bF.isReady){return}try{av.documentElement.doScroll("left")}catch(b0){setTimeout(bw,1);return}bF.ready()}return bF})();var a2={};function X(e){var bv=a2[e]={},bw,bx;e=e.split(/\s+/);for(bw=0,bx=e.length;bw<bx;bw++){bv[e[bw]]=true}return bv}b.Callbacks=function(bw){bw=bw?(a2[bw]||X(bw)):{};var bB=[],bC=[],bx,by,bv,bz,bA,bE=function(bF){var bG,bJ,bI,bH,bK;for(bG=0,bJ=bF.length;bG<bJ;bG++){bI=bF[bG];bH=b.type(bI);if(bH==="array"){bE(bI)}else{if(bH==="function"){if(!bw.unique||!bD.has(bI)){bB.push(bI)}}}}},e=function(bG,bF){bF=bF||[];bx=!bw.memory||[bG,bF];by=true;bA=bv||0;bv=0;bz=bB.length;for(;bB&&bA<bz;bA++){if(bB[bA].apply(bG,bF)===false&&bw.stopOnFalse){bx=true;break}}by=false;if(bB){if(!bw.once){if(bC&&bC.length){bx=bC.shift();bD.fireWith(bx[0],bx[1])}}else{if(bx===true){bD.disable()}else{bB=[]}}}},bD={add:function(){if(bB){var bF=bB.length;bE(arguments);if(by){bz=bB.length}else{if(bx&&bx!==true){bv=bF;e(bx[0],bx[1])}}}return this},remove:function(){if(bB){var bF=arguments,bH=0,bI=bF.length;for(;bH<bI;bH++){for(var bG=0;bG<bB.length;bG++){if(bF[bH]===bB[bG]){if(by){if(bG<=bz){bz--;if(bG<=bA){bA--}}}bB.splice(bG--,1);if(bw.unique){break}}}}}return this},has:function(bG){if(bB){var bF=0,bH=bB.length;for(;bF<bH;bF++){if(bG===bB[bF]){return true}}}return false},empty:function(){bB=[];return this},disable:function(){bB=bC=bx=L;return this},disabled:function(){return !bB},lock:function(){bC=L;if(!bx||bx===true){bD.disable()}return this},locked:function(){return !bC},fireWith:function(bG,bF){if(bC){if(by){if(!bw.once){bC.push([bG,bF])}}else{if(!(bw.once&&bx)){e(bG,bF)}}}return this},fire:function(){bD.fireWith(this,arguments);return this},fired:function(){return !!bx}};return bD};var aJ=[].slice;b.extend({Deferred:function(by){var bx=b.Callbacks("once memory"),bw=b.Callbacks("once memory"),bv=b.Callbacks("memory"),e="pending",bA={resolve:bx,reject:bw,notify:bv},bC={done:bx.add,fail:bw.add,progress:bv.add,state:function(){return e},isResolved:bx.fired,isRejected:bw.fired,then:function(bE,bD,bF){bB.done(bE).fail(bD).progress(bF);return this},always:function(){bB.done.apply(bB,arguments).fail.apply(bB,arguments);return this},pipe:function(bF,bE,bD){return b.Deferred(function(bG){b.each({done:[bF,"resolve"],fail:[bE,"reject"],progress:[bD,"notify"]},function(bI,bL){var bH=bL[0],bK=bL[1],bJ;if(b.isFunction(bH)){bB[bI](function(){bJ=bH.apply(this,arguments);if(bJ&&b.isFunction(bJ.promise)){bJ.promise().then(bG.resolve,bG.reject,bG.notify)}else{bG[bK+"With"](this===bB?bG:this,[bJ])}})}else{bB[bI](bG[bK])}})}).promise()},promise:function(bE){if(bE==null){bE=bC}else{for(var bD in bC){bE[bD]=bC[bD]}}return bE}},bB=bC.promise({}),bz;for(bz in bA){bB[bz]=bA[bz].fire;bB[bz+"With"]=bA[bz].fireWith}bB.done(function(){e="resolved"},bw.disable,bv.lock).fail(function(){e="rejected"},bx.disable,bv.lock);if(by){by.call(bB,bB)}return bB},when:function(bA){var bx=aJ.call(arguments,0),bv=0,e=bx.length,bB=new Array(e),bw=e,by=e,bC=e<=1&&bA&&b.isFunction(bA.promise)?bA:b.Deferred(),bE=bC.promise();function bD(bF){return function(bG){bx[bF]=arguments.length>1?aJ.call(arguments,0):bG;if(!(--bw)){bC.resolveWith(bC,bx)}}}function bz(bF){return function(bG){bB[bF]=arguments.length>1?aJ.call(arguments,0):bG;bC.notifyWith(bE,bB)}}if(e>1){for(;bv<e;bv++){if(bx[bv]&&bx[bv].promise&&b.isFunction(bx[bv].promise)){bx[bv].promise().then(bD(bv),bC.reject,bz(bv))}else{--bw}}if(!bw){bC.resolveWith(bC,bx)}}else{if(bC!==bA){bC.resolveWith(bC,e?[bA]:[])}}return bE}});b.support=(function(){var bJ,bI,bF,bG,bx,bE,bA,bD,bz,bK,bB,by,bw,bv=av.createElement("div"),bH=av.documentElement;bv.setAttribute("className","t");bv.innerHTML="   <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>";bI=bv.getElementsByTagName("*");bF=bv.getElementsByTagName("a")[0];if(!bI||!bI.length||!bF){return{}}bG=av.createElement("select");bx=bG.appendChild(av.createElement("option"));bE=bv.getElementsByTagName("input")[0];bJ={leadingWhitespace:(bv.firstChild.nodeType===3),tbody:!bv.getElementsByTagName("tbody").length,htmlSerialize:!!bv.getElementsByTagName("link").length,style:/top/.test(bF.getAttribute("style")),hrefNormalized:(bF.getAttribute("href")==="/a"),opacity:/^0.55/.test(bF.style.opacity),cssFloat:!!bF.style.cssFloat,checkOn:(bE.value==="on"),optSelected:bx.selected,getSetAttribute:bv.className!=="t",enctype:!!av.createElement("form").enctype,html5Clone:av.createElement("nav").cloneNode(true).outerHTML!=="<:nav></:nav>",submitBubbles:true,changeBubbles:true,focusinBubbles:false,deleteExpando:true,noCloneEvent:true,inlineBlockNeedsLayout:false,shrinkWrapBlocks:false,reliableMarginRight:true};bE.checked=true;bJ.noCloneChecked=bE.cloneNode(true).checked;bG.disabled=true;bJ.optDisabled=!bx.disabled;try{delete bv.test}catch(bC){bJ.deleteExpando=false}if(!bv.addEventListener&&bv.attachEvent&&bv.fireEvent){bv.attachEvent("onclick",function(){bJ.noCloneEvent=false});bv.cloneNode(true).fireEvent("onclick")}bE=av.createElement("input");bE.value="t";bE.setAttribute("type","radio");bJ.radioValue=bE.value==="t";bE.setAttribute("checked","checked");bv.appendChild(bE);bD=av.createDocumentFragment();bD.appendChild(bv.lastChild);bJ.checkClone=bD.cloneNode(true).cloneNode(true).lastChild.checked;bJ.appendChecked=bE.checked;bD.removeChild(bE);bD.appendChild(bv);bv.innerHTML="";if(bb.getComputedStyle){bA=av.createElement("div");bA.style.width="0";bA.style.marginRight="0";bv.style.width="2px";bv.appendChild(bA);bJ.reliableMarginRight=(parseInt((bb.getComputedStyle(bA,null)||{marginRight:0}).marginRight,10)||0)===0}if(bv.attachEvent){for(by in {submit:1,change:1,focusin:1}){bB="on"+by;bw=(bB in bv);if(!bw){bv.setAttribute(bB,"return;");bw=(typeof bv[bB]==="function")}bJ[by+"Bubbles"]=bw}}bD.removeChild(bv);bD=bG=bx=bA=bv=bE=null;b(function(){var bM,bU,bV,bT,bN,bO,bL,bS,bR,e,bP,bQ=av.getElementsByTagName("body")[0];if(!bQ){return}bL=1;bS="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;";bR="visibility:hidden;border:0;";e="style='"+bS+"border:5px solid #000;padding:0;'";bP="<div "+e+"><div></div></div><table "+e+" cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";bM=av.createElement("div");bM.style.cssText=bR+"width:0;height:0;position:static;top:0;margin-top:"+bL+"px";bQ.insertBefore(bM,bQ.firstChild);bv=av.createElement("div");bM.appendChild(bv);bv.innerHTML="<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>";bz=bv.getElementsByTagName("td");bw=(bz[0].offsetHeight===0);bz[0].style.display="";bz[1].style.display="none";bJ.reliableHiddenOffsets=bw&&(bz[0].offsetHeight===0);bv.innerHTML="";bv.style.width=bv.style.paddingLeft="1px";b.boxModel=bJ.boxModel=bv.offsetWidth===2;if(typeof bv.style.zoom!=="undefined"){bv.style.display="inline";bv.style.zoom=1;bJ.inlineBlockNeedsLayout=(bv.offsetWidth===2);bv.style.display="";bv.innerHTML="<div style='width:4px;'></div>";bJ.shrinkWrapBlocks=(bv.offsetWidth!==2)}bv.style.cssText=bS+bR;bv.innerHTML=bP;bU=bv.firstChild;bV=bU.firstChild;bN=bU.nextSibling.firstChild.firstChild;bO={doesNotAddBorder:(bV.offsetTop!==5),doesAddBorderForTableAndCells:(bN.offsetTop===5)};bV.style.position="fixed";bV.style.top="20px";bO.fixedPosition=(bV.offsetTop===20||bV.offsetTop===15);bV.style.position=bV.style.top="";bU.style.overflow="hidden";bU.style.position="relative";bO.subtractsBorderForOverflowNotVisible=(bV.offsetTop===-5);bO.doesNotIncludeMarginInBodyOffset=(bQ.offsetTop!==bL);bQ.removeChild(bM);bv=bM=null;b.extend(bJ,bO)});return bJ})();var aS=/^(?:\{.*\}|\[.*\])$/,aA=/([A-Z])/g;b.extend({cache:{},uuid:0,expando:"jQuery"+(b.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:true,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:true},hasData:function(e){e=e.nodeType?b.cache[e[b.expando]]:e[b.expando];return !!e&&!S(e)},data:function(bx,bv,bz,by){if(!b.acceptData(bx)){return}var bG,bA,bD,bE=b.expando,bC=typeof bv==="string",bF=bx.nodeType,e=bF?b.cache:bx,bw=bF?bx[bE]:bx[bE]&&bE,bB=bv==="events";if((!bw||!e[bw]||(!bB&&!by&&!e[bw].data))&&bC&&bz===L){return}if(!bw){if(bF){bx[bE]=bw=++b.uuid}else{bw=bE}}if(!e[bw]){e[bw]={};if(!bF){e[bw].toJSON=b.noop}}if(typeof bv==="object"||typeof bv==="function"){if(by){e[bw]=b.extend(e[bw],bv)}else{e[bw].data=b.extend(e[bw].data,bv)}}bG=bA=e[bw];if(!by){if(!bA.data){bA.data={}}bA=bA.data}if(bz!==L){bA[b.camelCase(bv)]=bz}if(bB&&!bA[bv]){return bG.events}if(bC){bD=bA[bv];if(bD==null){bD=bA[b.camelCase(bv)]}}else{bD=bA}return bD},removeData:function(bx,bv,by){if(!b.acceptData(bx)){return}var bB,bA,bz,bC=b.expando,bD=bx.nodeType,e=bD?b.cache:bx,bw=bD?bx[bC]:bC;if(!e[bw]){return}if(bv){bB=by?e[bw]:e[bw].data;if(bB){if(!b.isArray(bv)){if(bv in bB){bv=[bv]}else{bv=b.camelCase(bv);if(bv in bB){bv=[bv]}else{bv=bv.split(" ")}}}for(bA=0,bz=bv.length;bA<bz;bA++){delete bB[bv[bA]]}if(!(by?S:b.isEmptyObject)(bB)){return}}}if(!by){delete e[bw].data;if(!S(e[bw])){return}}if(b.support.deleteExpando||!e.setInterval){delete e[bw]}else{e[bw]=null}if(bD){if(b.support.deleteExpando){delete bx[bC]}else{if(bx.removeAttribute){bx.removeAttribute(bC)}else{bx[bC]=null}}}},_data:function(bv,e,bw){return b.data(bv,e,bw,true)},acceptData:function(bv){if(bv.nodeName){var e=b.noData[bv.nodeName.toLowerCase()];if(e){return !(e===true||bv.getAttribute("classid")!==e)}}return true}});b.fn.extend({data:function(by,bA){var bB,e,bw,bz=null;if(typeof by==="undefined"){if(this.length){bz=b.data(this[0]);if(this[0].nodeType===1&&!b._data(this[0],"parsedAttrs")){e=this[0].attributes;for(var bx=0,bv=e.length;bx<bv;bx++){bw=e[bx].name;if(bw.indexOf("data-")===0){bw=b.camelCase(bw.substring(5));a5(this[0],bw,bz[bw])}}b._data(this[0],"parsedAttrs",true)}}return bz}else{if(typeof by==="object"){return this.each(function(){b.data(this,by)})}}bB=by.split(".");bB[1]=bB[1]?"."+bB[1]:"";if(bA===L){bz=this.triggerHandler("getData"+bB[1]+"!",[bB[0]]);if(bz===L&&this.length){bz=b.data(this[0],by);bz=a5(this[0],by,bz)}return bz===L&&bB[1]?this.data(bB[0]):bz}else{return this.each(function(){var bC=b(this),bD=[bB[0],bA];bC.triggerHandler("setData"+bB[1]+"!",bD);b.data(this,by,bA);bC.triggerHandler("changeData"+bB[1]+"!",bD)})}},removeData:function(e){return this.each(function(){b.removeData(this,e)})}});function a5(bx,bw,by){if(by===L&&bx.nodeType===1){var bv="data-"+bw.replace(aA,"-$1").toLowerCase();by=bx.getAttribute(bv);if(typeof by==="string"){try{by=by==="true"?true:by==="false"?false:by==="null"?null:b.isNumeric(by)?parseFloat(by):aS.test(by)?b.parseJSON(by):by}catch(bz){}b.data(bx,bw,by)}else{by=L}}return by}function S(bv){for(var e in bv){if(e==="data"&&b.isEmptyObject(bv[e])){continue}if(e!=="toJSON"){return false}}return true}function bi(by,bx,bA){var bw=bx+"defer",bv=bx+"queue",e=bx+"mark",bz=b._data(by,bw);if(bz&&(bA==="queue"||!b._data(by,bv))&&(bA==="mark"||!b._data(by,e))){setTimeout(function(){if(!b._data(by,bv)&&!b._data(by,e)){b.removeData(by,bw,true);bz.fire()}},0)}}b.extend({_mark:function(bv,e){if(bv){e=(e||"fx")+"mark";b._data(bv,e,(b._data(bv,e)||0)+1)}},_unmark:function(by,bx,bv){if(by!==true){bv=bx;bx=by;by=false}if(bx){bv=bv||"fx";var e=bv+"mark",bw=by?0:((b._data(bx,e)||1)-1);if(bw){b._data(bx,e,bw)}else{b.removeData(bx,e,true);bi(bx,bv,"mark")}}},queue:function(bv,e,bx){var bw;if(bv){e=(e||"fx")+"queue";bw=b._data(bv,e);if(bx){if(!bw||b.isArray(bx)){bw=b._data(bv,e,b.makeArray(bx))}else{bw.push(bx)}}return bw||[]}},dequeue:function(by,bx){bx=bx||"fx";var bv=b.queue(by,bx),bw=bv.shift(),e={};if(bw==="inprogress"){bw=bv.shift()}if(bw){if(bx==="fx"){bv.unshift("inprogress")}b._data(by,bx+".run",e);bw.call(by,function(){b.dequeue(by,bx)},e)}if(!bv.length){b.removeData(by,bx+"queue "+bx+".run",true);bi(by,bx,"queue")}}});b.fn.extend({queue:function(e,bv){if(typeof e!=="string"){bv=e;e="fx"}if(bv===L){return b.queue(this[0],e)}return this.each(function(){var bw=b.queue(this,e,bv);if(e==="fx"&&bw[0]!=="inprogress"){b.dequeue(this,e)}})},dequeue:function(e){return this.each(function(){b.dequeue(this,e)})},delay:function(bv,e){bv=b.fx?b.fx.speeds[bv]||bv:bv;e=e||"fx";return this.queue(e,function(bx,bw){var by=setTimeout(bx,bv);bw.stop=function(){clearTimeout(by)}})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(bD,bw){if(typeof bD!=="string"){bw=bD;bD=L}bD=bD||"fx";var e=b.Deferred(),bv=this,by=bv.length,bB=1,bz=bD+"defer",bA=bD+"queue",bC=bD+"mark",bx;function bE(){if(!(--bB)){e.resolveWith(bv,[bv])}}while(by--){if((bx=b.data(bv[by],bz,L,true)||(b.data(bv[by],bA,L,true)||b.data(bv[by],bC,L,true))&&b.data(bv[by],bz,b.Callbacks("once memory"),true))){bB++;bx.add(bE)}}bE();return e.promise()}});var aP=/[\n\t\r]/g,af=/\s+/,aU=/\r/g,g=/^(?:button|input)$/i,D=/^(?:button|input|object|select|textarea)$/i,l=/^a(?:rea)?$/i,ao=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,F=b.support.getSetAttribute,be,aY,aF;b.fn.extend({attr:function(e,bv){return b.access(this,e,bv,true,b.attr)},removeAttr:function(e){return this.each(function(){b.removeAttr(this,e)})},prop:function(e,bv){return b.access(this,e,bv,true,b.prop)},removeProp:function(e){e=b.propFix[e]||e;return this.each(function(){try{this[e]=L;delete this[e]}catch(bv){}})},addClass:function(by){var bA,bw,bv,bx,bz,bB,e;if(b.isFunction(by)){return this.each(function(bC){b(this).addClass(by.call(this,bC,this.className))})}if(by&&typeof by==="string"){bA=by.split(af);for(bw=0,bv=this.length;bw<bv;bw++){bx=this[bw];if(bx.nodeType===1){if(!bx.className&&bA.length===1){bx.className=by}else{bz=" "+bx.className+" ";for(bB=0,e=bA.length;bB<e;bB++){if(!~bz.indexOf(" "+bA[bB]+" ")){bz+=bA[bB]+" "}}bx.className=b.trim(bz)}}}}return this},removeClass:function(bz){var bA,bw,bv,by,bx,bB,e;if(b.isFunction(bz)){return this.each(function(bC){b(this).removeClass(bz.call(this,bC,this.className))})}if((bz&&typeof bz==="string")||bz===L){bA=(bz||"").split(af);for(bw=0,bv=this.length;bw<bv;bw++){by=this[bw];if(by.nodeType===1&&by.className){if(bz){bx=(" "+by.className+" ").replace(aP," ");for(bB=0,e=bA.length;bB<e;bB++){bx=bx.replace(" "+bA[bB]+" "," ")}by.className=b.trim(bx)}else{by.className=""}}}}return this},toggleClass:function(bx,bv){var bw=typeof bx,e=typeof bv==="boolean";if(b.isFunction(bx)){return this.each(function(by){b(this).toggleClass(bx.call(this,by,this.className,bv),bv)})}return this.each(function(){if(bw==="string"){var bA,bz=0,by=b(this),bB=bv,bC=bx.split(af);while((bA=bC[bz++])){bB=e?bB:!by.hasClass(bA);by[bB?"addClass":"removeClass"](bA)}}else{if(bw==="undefined"||bw==="boolean"){if(this.className){b._data(this,"__className__",this.className)}this.className=this.className||bx===false?"":b._data(this,"__className__")||""}}})},hasClass:function(e){var bx=" "+e+" ",bw=0,bv=this.length;for(;bw<bv;bw++){if(this[bw].nodeType===1&&(" "+this[bw].className+" ").replace(aP," ").indexOf(bx)>-1){return true}}return false},val:function(bx){var e,bv,by,bw=this[0];if(!arguments.length){if(bw){e=b.valHooks[bw.nodeName.toLowerCase()]||b.valHooks[bw.type];if(e&&"get" in e&&(bv=e.get(bw,"value"))!==L){return bv}bv=bw.value;return typeof bv==="string"?bv.replace(aU,""):bv==null?"":bv}return}by=b.isFunction(bx);return this.each(function(bA){var bz=b(this),bB;if(this.nodeType!==1){return}if(by){bB=bx.call(this,bA,bz.val())}else{bB=bx}if(bB==null){bB=""}else{if(typeof bB==="number"){bB+=""}else{if(b.isArray(bB)){bB=b.map(bB,function(bC){return bC==null?"":bC+""})}}}e=b.valHooks[this.nodeName.toLowerCase()]||b.valHooks[this.type];if(!e||!("set" in e)||e.set(this,bB,"value")===L){this.value=bB}})}});b.extend({valHooks:{option:{get:function(e){var bv=e.attributes.value;return !bv||bv.specified?e.value:e.text}},select:{get:function(e){var bA,bv,bz,bx,by=e.selectedIndex,bB=[],bC=e.options,bw=e.type==="select-one";if(by<0){return null}bv=bw?by:0;bz=bw?by+1:bC.length;for(;bv<bz;bv++){bx=bC[bv];if(bx.selected&&(b.support.optDisabled?!bx.disabled:bx.getAttribute("disabled")===null)&&(!bx.parentNode.disabled||!b.nodeName(bx.parentNode,"optgroup"))){bA=b(bx).val();if(bw){return bA}bB.push(bA)}}if(bw&&!bB.length&&bC.length){return b(bC[by]).val()}return bB},set:function(bv,bw){var e=b.makeArray(bw);b(bv).find("option").each(function(){this.selected=b.inArray(b(this).val(),e)>=0});if(!e.length){bv.selectedIndex=-1}return e}}},attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(bA,bx,bB,bz){var bw,e,by,bv=bA.nodeType;if(!bA||bv===3||bv===8||bv===2){return}if(bz&&bx in b.attrFn){return b(bA)[bx](bB)}if(typeof bA.getAttribute==="undefined"){return b.prop(bA,bx,bB)}by=bv!==1||!b.isXMLDoc(bA);if(by){bx=bx.toLowerCase();e=b.attrHooks[bx]||(ao.test(bx)?aY:be)}if(bB!==L){if(bB===null){b.removeAttr(bA,bx);return}else{if(e&&"set" in e&&by&&(bw=e.set(bA,bB,bx))!==L){return bw}else{bA.setAttribute(bx,""+bB);return bB}}}else{if(e&&"get" in e&&by&&(bw=e.get(bA,bx))!==null){return bw}else{bw=bA.getAttribute(bx);return bw===null?L:bw}}},removeAttr:function(bx,bz){var by,bA,bv,e,bw=0;if(bz&&bx.nodeType===1){bA=bz.toLowerCase().split(af);e=bA.length;for(;bw<e;bw++){bv=bA[bw];if(bv){by=b.propFix[bv]||bv;b.attr(bx,bv,"");bx.removeAttribute(F?bv:by);if(ao.test(bv)&&by in bx){bx[by]=false}}}}},attrHooks:{type:{set:function(e,bv){if(g.test(e.nodeName)&&e.parentNode){b.error("type property can't be changed")}else{if(!b.support.radioValue&&bv==="radio"&&b.nodeName(e,"input")){var bw=e.value;e.setAttribute("type",bv);if(bw){e.value=bw}return bv}}}},value:{get:function(bv,e){if(be&&b.nodeName(bv,"button")){return be.get(bv,e)}return e in bv?bv.value:null},set:function(bv,bw,e){if(be&&b.nodeName(bv,"button")){return be.set(bv,bw,e)}bv.value=bw}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(bz,bx,bA){var bw,e,by,bv=bz.nodeType;if(!bz||bv===3||bv===8||bv===2){return}by=bv!==1||!b.isXMLDoc(bz);if(by){bx=b.propFix[bx]||bx;e=b.propHooks[bx]}if(bA!==L){if(e&&"set" in e&&(bw=e.set(bz,bA,bx))!==L){return bw}else{return(bz[bx]=bA)}}else{if(e&&"get" in e&&(bw=e.get(bz,bx))!==null){return bw}else{return bz[bx]}}},propHooks:{tabIndex:{get:function(bv){var e=bv.getAttributeNode("tabindex");return e&&e.specified?parseInt(e.value,10):D.test(bv.nodeName)||l.test(bv.nodeName)&&bv.href?0:L}}}});b.attrHooks.tabindex=b.propHooks.tabIndex;aY={get:function(bv,e){var bx,bw=b.prop(bv,e);return bw===true||typeof bw!=="boolean"&&(bx=bv.getAttributeNode(e))&&bx.nodeValue!==false?e.toLowerCase():L},set:function(bv,bx,e){var bw;if(bx===false){b.removeAttr(bv,e)}else{bw=b.propFix[e]||e;if(bw in bv){bv[bw]=true}bv.setAttribute(e,e.toLowerCase())}return e}};if(!F){aF={name:true,id:true};be=b.valHooks.button={get:function(bw,bv){var e;e=bw.getAttributeNode(bv);return e&&(aF[bv]?e.nodeValue!=="":e.specified)?e.nodeValue:L},set:function(bw,bx,bv){var e=bw.getAttributeNode(bv);if(!e){e=av.createAttribute(bv);bw.setAttributeNode(e)}return(e.nodeValue=bx+"")}};b.attrHooks.tabindex.set=be.set;b.each(["width","height"],function(bv,e){b.attrHooks[e]=b.extend(b.attrHooks[e],{set:function(bw,bx){if(bx===""){bw.setAttribute(e,"auto");return bx}}})});b.attrHooks.contenteditable={get:be.get,set:function(bv,bw,e){if(bw===""){bw="false"}be.set(bv,bw,e)}}}if(!b.support.hrefNormalized){b.each(["href","src","width","height"],function(bv,e){b.attrHooks[e]=b.extend(b.attrHooks[e],{get:function(bx){var bw=bx.getAttribute(e,2);return bw===null?L:bw}})})}if(!b.support.style){b.attrHooks.style={get:function(e){return e.style.cssText.toLowerCase()||L},set:function(e,bv){return(e.style.cssText=""+bv)}}}if(!b.support.optSelected){b.propHooks.selected=b.extend(b.propHooks.selected,{get:function(bv){var e=bv.parentNode;if(e){e.selectedIndex;if(e.parentNode){e.parentNode.selectedIndex}}return null}})}if(!b.support.enctype){b.propFix.enctype="encoding"}if(!b.support.checkOn){b.each(["radio","checkbox"],function(){b.valHooks[this]={get:function(e){return e.getAttribute("value")===null?"on":e.value}}})}b.each(["radio","checkbox"],function(){b.valHooks[this]=b.extend(b.valHooks[this],{set:function(e,bv){if(b.isArray(bv)){return(e.checked=b.inArray(b(e).val(),bv)>=0)}}})});var bd=/^(?:textarea|input|select)$/i,n=/^([^\.]*)?(?:\.(.+))?$/,J=/\bhover(\.\S+)?\b/,aO=/^key/,bf=/^(?:mouse|contextmenu)|click/,T=/^(?:focusinfocus|focusoutblur)$/,U=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,Y=function(e){var bv=U.exec(e);if(bv){bv[1]=(bv[1]||"").toLowerCase();bv[3]=bv[3]&&new RegExp("(?:^|\\s)"+bv[3]+"(?:\\s|$)")}return bv},j=function(bw,e){var bv=bw.attributes||{};return((!e[1]||bw.nodeName.toLowerCase()===e[1])&&(!e[2]||(bv.id||{}).value===e[2])&&(!e[3]||e[3].test((bv["class"]||{}).value)))},bt=function(e){return b.event.special.hover?e:e.replace(J,"mouseenter$1 mouseleave$1")};b.event={add:function(bx,bC,bJ,bA,by){var bD,bB,bK,bI,bH,bF,e,bG,bv,bz,bw,bE;if(bx.nodeType===3||bx.nodeType===8||!bC||!bJ||!(bD=b._data(bx))){return}if(bJ.handler){bv=bJ;bJ=bv.handler}if(!bJ.guid){bJ.guid=b.guid++}bK=bD.events;if(!bK){bD.events=bK={}}bB=bD.handle;if(!bB){bD.handle=bB=function(bL){return typeof b!=="undefined"&&(!bL||b.event.triggered!==bL.type)?b.event.dispatch.apply(bB.elem,arguments):L};bB.elem=bx}bC=b.trim(bt(bC)).split(" ");for(bI=0;bI<bC.length;bI++){bH=n.exec(bC[bI])||[];bF=bH[1];e=(bH[2]||"").split(".").sort();bE=b.event.special[bF]||{};bF=(by?bE.delegateType:bE.bindType)||bF;bE=b.event.special[bF]||{};bG=b.extend({type:bF,origType:bH[1],data:bA,handler:bJ,guid:bJ.guid,selector:by,quick:Y(by),namespace:e.join(".")},bv);bw=bK[bF];if(!bw){bw=bK[bF]=[];bw.delegateCount=0;if(!bE.setup||bE.setup.call(bx,bA,e,bB)===false){if(bx.addEventListener){bx.addEventListener(bF,bB,false)}else{if(bx.attachEvent){bx.attachEvent("on"+bF,bB)}}}}if(bE.add){bE.add.call(bx,bG);if(!bG.handler.guid){bG.handler.guid=bJ.guid}}if(by){bw.splice(bw.delegateCount++,0,bG)}else{bw.push(bG)}b.event.global[bF]=true}bx=null},global:{},remove:function(bJ,bE,bv,bH,bB){var bI=b.hasData(bJ)&&b._data(bJ),bF,bx,bz,bL,bC,bA,bG,bw,by,bK,bD,e;if(!bI||!(bw=bI.events)){return}bE=b.trim(bt(bE||"")).split(" ");for(bF=0;bF<bE.length;bF++){bx=n.exec(bE[bF])||[];bz=bL=bx[1];bC=bx[2];if(!bz){for(bz in bw){b.event.remove(bJ,bz+bE[bF],bv,bH,true)}continue}by=b.event.special[bz]||{};bz=(bH?by.delegateType:by.bindType)||bz;bD=bw[bz]||[];bA=bD.length;bC=bC?new RegExp("(^|\\.)"+bC.split(".").sort().join("\\.(?:.*\\.)?")+"(\\.|$)"):null;for(bG=0;bG<bD.length;bG++){e=bD[bG];if((bB||bL===e.origType)&&(!bv||bv.guid===e.guid)&&(!bC||bC.test(e.namespace))&&(!bH||bH===e.selector||bH==="**"&&e.selector)){bD.splice(bG--,1);if(e.selector){bD.delegateCount--}if(by.remove){by.remove.call(bJ,e)}}}if(bD.length===0&&bA!==bD.length){if(!by.teardown||by.teardown.call(bJ,bC)===false){b.removeEvent(bJ,bz,bI.handle)}delete bw[bz]}}if(b.isEmptyObject(bw)){bK=bI.handle;if(bK){bK.elem=null}b.removeData(bJ,["events","handle"],true)}},customEvent:{getData:true,setData:true,changeData:true},trigger:function(bv,bD,bA,bJ){if(bA&&(bA.nodeType===3||bA.nodeType===8)){return}var bG=bv.type||bv,bx=[],e,bw,bC,bH,bz,by,bF,bE,bB,bI;if(T.test(bG+b.event.triggered)){return}if(bG.indexOf("!")>=0){bG=bG.slice(0,-1);bw=true}if(bG.indexOf(".")>=0){bx=bG.split(".");bG=bx.shift();bx.sort()}if((!bA||b.event.customEvent[bG])&&!b.event.global[bG]){return}bv=typeof bv==="object"?bv[b.expando]?bv:new b.Event(bG,bv):new b.Event(bG);bv.type=bG;bv.isTrigger=true;bv.exclusive=bw;bv.namespace=bx.join(".");bv.namespace_re=bv.namespace?new RegExp("(^|\\.)"+bx.join("\\.(?:.*\\.)?")+"(\\.|$)"):null;by=bG.indexOf(":")<0?"on"+bG:"";if(!bA){e=b.cache;for(bC in e){if(e[bC].events&&e[bC].events[bG]){b.event.trigger(bv,bD,e[bC].handle.elem,true)}}return}bv.result=L;if(!bv.target){bv.target=bA}bD=bD!=null?b.makeArray(bD):[];bD.unshift(bv);bF=b.event.special[bG]||{};if(bF.trigger&&bF.trigger.apply(bA,bD)===false){return}bB=[[bA,bF.bindType||bG]];if(!bJ&&!bF.noBubble&&!b.isWindow(bA)){bI=bF.delegateType||bG;bH=T.test(bI+bG)?bA:bA.parentNode;bz=null;for(;bH;bH=bH.parentNode){bB.push([bH,bI]);bz=bH}if(bz&&bz===bA.ownerDocument){bB.push([bz.defaultView||bz.parentWindow||bb,bI])}}for(bC=0;bC<bB.length&&!bv.isPropagationStopped();bC++){bH=bB[bC][0];bv.type=bB[bC][1];bE=(b._data(bH,"events")||{})[bv.type]&&b._data(bH,"handle");if(bE){bE.apply(bH,bD)}bE=by&&bH[by];if(bE&&b.acceptData(bH)&&bE.apply(bH,bD)===false){bv.preventDefault()}}bv.type=bG;if(!bJ&&!bv.isDefaultPrevented()){if((!bF._default||bF._default.apply(bA.ownerDocument,bD)===false)&&!(bG==="click"&&b.nodeName(bA,"a"))&&b.acceptData(bA)){if(by&&bA[bG]&&((bG!=="focus"&&bG!=="blur")||bv.target.offsetWidth!==0)&&!b.isWindow(bA)){bz=bA[by];if(bz){bA[by]=null}b.event.triggered=bG;bA[bG]();b.event.triggered=L;if(bz){bA[by]=bz}}}}return bv.result},dispatch:function(e){e=b.event.fix(e||bb.event);var bz=((b._data(this,"events")||{})[e.type]||[]),bA=bz.delegateCount,bG=[].slice.call(arguments,0),by=!e.exclusive&&!e.namespace,bH=[],bC,bB,bK,bx,bF,bE,bv,bD,bI,bw,bJ;bG[0]=e;e.delegateTarget=this;if(bA&&!e.target.disabled&&!(e.button&&e.type==="click")){bx=b(this);bx.context=this.ownerDocument||this;for(bK=e.target;bK!=this;bK=bK.parentNode||this){bE={};bD=[];bx[0]=bK;for(bC=0;bC<bA;bC++){bI=bz[bC];bw=bI.selector;if(bE[bw]===L){bE[bw]=(bI.quick?j(bK,bI.quick):bx.is(bw))}if(bE[bw]){bD.push(bI)}}if(bD.length){bH.push({elem:bK,matches:bD})}}}if(bz.length>bA){bH.push({elem:this,matches:bz.slice(bA)})}for(bC=0;bC<bH.length&&!e.isPropagationStopped();bC++){bv=bH[bC];e.currentTarget=bv.elem;for(bB=0;bB<bv.matches.length&&!e.isImmediatePropagationStopped();bB++){bI=bv.matches[bB];if(by||(!e.namespace&&!bI.namespace)||e.namespace_re&&e.namespace_re.test(bI.namespace)){e.data=bI.data;e.handleObj=bI;bF=((b.event.special[bI.origType]||{}).handle||bI.handler).apply(bv.elem,bG);if(bF!==L){e.result=bF;if(bF===false){e.preventDefault();e.stopPropagation()}}}}}return e.result},props:"attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(bv,e){if(bv.which==null){bv.which=e.charCode!=null?e.charCode:e.keyCode}return bv}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(bx,bw){var by,bz,e,bv=bw.button,bA=bw.fromElement;if(bx.pageX==null&&bw.clientX!=null){by=bx.target.ownerDocument||av;bz=by.documentElement;e=by.body;bx.pageX=bw.clientX+(bz&&bz.scrollLeft||e&&e.scrollLeft||0)-(bz&&bz.clientLeft||e&&e.clientLeft||0);bx.pageY=bw.clientY+(bz&&bz.scrollTop||e&&e.scrollTop||0)-(bz&&bz.clientTop||e&&e.clientTop||0)}if(!bx.relatedTarget&&bA){bx.relatedTarget=bA===bx.target?bw.toElement:bA}if(!bx.which&&bv!==L){bx.which=(bv&1?1:(bv&2?3:(bv&4?2:0)))}return bx}},fix:function(bw){if(bw[b.expando]){return bw}var bv,bz,e=bw,bx=b.event.fixHooks[bw.type]||{},by=bx.props?this.props.concat(bx.props):this.props;bw=b.Event(e);for(bv=by.length;bv;){bz=by[--bv];bw[bz]=e[bz]}if(!bw.target){bw.target=e.srcElement||av}if(bw.target.nodeType===3){bw.target=bw.target.parentNode}if(bw.metaKey===L){bw.metaKey=bw.ctrlKey}return bx.filter?bx.filter(bw,e):bw},special:{ready:{setup:b.bindReady},load:{noBubble:true},focus:{delegateType:"focusin"},blur:{delegateType:"focusout"},beforeunload:{setup:function(bw,bv,e){if(b.isWindow(this)){this.onbeforeunload=e}},teardown:function(bv,e){if(this.onbeforeunload===e){this.onbeforeunload=null}}}},simulate:function(bw,by,bx,bv){var bz=b.extend(new b.Event(),bx,{type:bw,isSimulated:true,originalEvent:{}});if(bv){b.event.trigger(bz,null,by)}else{b.event.dispatch.call(by,bz)}if(bz.isDefaultPrevented()){bx.preventDefault()}}};b.event.handle=b.event.dispatch;b.removeEvent=av.removeEventListener?function(bv,e,bw){if(bv.removeEventListener){bv.removeEventListener(e,bw,false)}}:function(bv,e,bw){if(bv.detachEvent){bv.detachEvent("on"+e,bw)}};b.Event=function(bv,e){if(!(this instanceof b.Event)){return new b.Event(bv,e)}if(bv&&bv.type){this.originalEvent=bv;this.type=bv.type;this.isDefaultPrevented=(bv.defaultPrevented||bv.returnValue===false||bv.getPreventDefault&&bv.getPreventDefault())?i:bk}else{this.type=bv}if(e){b.extend(this,e)}this.timeStamp=bv&&bv.timeStamp||b.now();this[b.expando]=true};function bk(){return false}function i(){return true}b.Event.prototype={preventDefault:function(){this.isDefaultPrevented=i;var bv=this.originalEvent;if(!bv){return}if(bv.preventDefault){bv.preventDefault()}else{bv.returnValue=false}},stopPropagation:function(){this.isPropagationStopped=i;var bv=this.originalEvent;if(!bv){return}if(bv.stopPropagation){bv.stopPropagation()}bv.cancelBubble=true},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=i;this.stopPropagation()},isDefaultPrevented:bk,isPropagationStopped:bk,isImmediatePropagationStopped:bk};b.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(bv,e){b.event.special[bv]={delegateType:e,bindType:e,handle:function(bz){var bB=this,bA=bz.relatedTarget,by=bz.handleObj,bw=by.selector,bx;if(!bA||(bA!==bB&&!b.contains(bB,bA))){bz.type=by.origType;bx=by.handler.apply(this,arguments);bz.type=e}return bx}}});if(!b.support.submitBubbles){b.event.special.submit={setup:function(){if(b.nodeName(this,"form")){return false}b.event.add(this,"click._submit keypress._submit",function(bx){var bw=bx.target,bv=b.nodeName(bw,"input")||b.nodeName(bw,"button")?bw.form:L;if(bv&&!bv._submit_attached){b.event.add(bv,"submit._submit",function(e){if(this.parentNode&&!e.isTrigger){b.event.simulate("submit",this.parentNode,e,true)}});bv._submit_attached=true}})},teardown:function(){if(b.nodeName(this,"form")){return false}b.event.remove(this,"._submit")}}}if(!b.support.changeBubbles){b.event.special.change={setup:function(){if(bd.test(this.nodeName)){if(this.type==="checkbox"||this.type==="radio"){b.event.add(this,"propertychange._change",function(e){if(e.originalEvent.propertyName==="checked"){this._just_changed=true}});b.event.add(this,"click._change",function(e){if(this._just_changed&&!e.isTrigger){this._just_changed=false;b.event.simulate("change",this,e,true)}})}return false}b.event.add(this,"beforeactivate._change",function(bw){var bv=bw.target;if(bd.test(bv.nodeName)&&!bv._change_attached){b.event.add(bv,"change._change",function(e){if(this.parentNode&&!e.isSimulated&&!e.isTrigger){b.event.simulate("change",this.parentNode,e,true)}});bv._change_attached=true}})},handle:function(bv){var e=bv.target;if(this!==e||bv.isSimulated||bv.isTrigger||(e.type!=="radio"&&e.type!=="checkbox")){return bv.handleObj.handler.apply(this,arguments)}},teardown:function(){b.event.remove(this,"._change");return bd.test(this.nodeName)}}}if(!b.support.focusinBubbles){b.each({focus:"focusin",blur:"focusout"},function(bx,e){var bv=0,bw=function(by){b.event.simulate(e,by.target,b.event.fix(by),true)};b.event.special[e]={setup:function(){if(bv++===0){av.addEventListener(bx,bw,true)}},teardown:function(){if(--bv===0){av.removeEventListener(bx,bw,true)}}}})}b.fn.extend({on:function(bw,e,bz,by,bv){var bA,bx;if(typeof bw==="object"){if(typeof e!=="string"){bz=e;e=L}for(bx in bw){this.on(bx,e,bz,bw[bx],bv)}return this}if(bz==null&&by==null){by=e;bz=e=L}else{if(by==null){if(typeof e==="string"){by=bz;bz=L}else{by=bz;bz=e;e=L}}}if(by===false){by=bk}else{if(!by){return this}}if(bv===1){bA=by;by=function(bB){b().off(bB);return bA.apply(this,arguments)};by.guid=bA.guid||(bA.guid=b.guid++)}return this.each(function(){b.event.add(this,bw,by,bz,e)})},one:function(bv,e,bx,bw){return this.on.call(this,bv,e,bx,bw,1)},off:function(bw,e,by){if(bw&&bw.preventDefault&&bw.handleObj){var bv=bw.handleObj;b(bw.delegateTarget).off(bv.namespace?bv.type+"."+bv.namespace:bv.type,bv.selector,bv.handler);return this}if(typeof bw==="object"){for(var bx in bw){this.off(bx,e,bw[bx])}return this}if(e===false||typeof e==="function"){by=e;e=L}if(by===false){by=bk}return this.each(function(){b.event.remove(this,bw,by,e)})},bind:function(e,bw,bv){return this.on(e,null,bw,bv)},unbind:function(e,bv){return this.off(e,null,bv)},live:function(e,bw,bv){b(this.context).on(e,this.selector,bw,bv);return this},die:function(e,bv){b(this.context).off(e,this.selector||"**",bv);return this},delegate:function(e,bv,bx,bw){return this.on(bv,e,bx,bw)},undelegate:function(e,bv,bw){return arguments.length==1?this.off(e,"**"):this.off(bv,e,bw)},trigger:function(e,bv){return this.each(function(){b.event.trigger(e,bv,this)})},triggerHandler:function(e,bv){if(this[0]){return b.event.trigger(e,bv,this[0],true)}},toggle:function(bx){var bv=arguments,e=bx.guid||b.guid++,bw=0,by=function(bz){var bA=(b._data(this,"lastToggle"+bx.guid)||0)%bw;b._data(this,"lastToggle"+bx.guid,bA+1);bz.preventDefault();return bv[bA].apply(this,arguments)||false};by.guid=e;while(bw<bv.length){bv[bw++].guid=e}return this.click(by)},hover:function(e,bv){return this.mouseenter(e).mouseleave(bv||e)}});b.each(("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu").split(" "),function(bv,e){b.fn[e]=function(bx,bw){if(bw==null){bw=bx;bx=null}return arguments.length>0?this.on(e,null,bx,bw):this.trigger(e)};if(b.attrFn){b.attrFn[e]=true}if(aO.test(e)){b.event.fixHooks[e]=b.event.keyHooks}if(bf.test(e)){b.event.fixHooks[e]=b.event.mouseHooks}});
+/*
  * Sizzle CSS Selector Engine
  *  Copyright 2011, The Dojo Foundation
  *  Released under the MIT, BSD, and GPL Licenses.
  *  More information: http://sizzlejs.com/
  */
-(function(){var bH=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,bC="sizcache"+(Math.random()+"").replace(".",""),bI=0,bL=Object.prototype.toString,bB=false,bA=true,bK=/\\/g,bO=/\r\n/g,bQ=/\W/;[0,0].sort(function(){bA=false;return 0});var by=function(bV,e,bY,bZ){bY=bY||[];e=e||av;var b1=e;if(e.nodeType!==1&&e.nodeType!==9){return[]}if(!bV||typeof bV!=="string"){return bY}var bS,b3,b6,bR,b2,b5,b4,bX,bU=true,bT=by.isXML(e),bW=[],b0=bV;do{bH.exec("");bS=bH.exec(b0);if(bS){b0=bS[3];bW.push(bS[1]);if(bS[2]){bR=bS[3];break}}}while(bS);if(bW.length>1&&bD.exec(bV)){if(bW.length===2&&bE.relative[bW[0]]){b3=bM(bW[0]+bW[1],e,bZ)}else{b3=bE.relative[bW[0]]?[e]:by(bW.shift(),e);while(bW.length){bV=bW.shift();if(bE.relative[bV]){bV+=bW.shift()}b3=bM(bV,b3,bZ)}}}else{if(!bZ&&bW.length>1&&e.nodeType===9&&!bT&&bE.match.ID.test(bW[0])&&!bE.match.ID.test(bW[bW.length-1])){b2=by.find(bW.shift(),e,bT);e=b2.expr?by.filter(b2.expr,b2.set)[0]:b2.set[0]}if(e){b2=bZ?{expr:bW.pop(),set:bF(bZ)}:by.find(bW.pop(),bW.length===1&&(bW[0]==="~"||bW[0]==="+")&&e.parentNode?e.parentNode:e,bT);b3=b2.expr?by.filter(b2.expr,b2.set):b2.set;if(bW.length>0){b6=bF(b3)}else{bU=false}while(bW.length){b5=bW.pop();b4=b5;if(!bE.relative[b5]){b5=""}else{b4=bW.pop()}if(b4==null){b4=e}bE.relative[b5](b6,b4,bT)}}else{b6=bW=[]}}if(!b6){b6=b3}if(!b6){by.error(b5||bV)}if(bL.call(b6)==="[object Array]"){if(!bU){bY.push.apply(bY,b6)}else{if(e&&e.nodeType===1){for(bX=0;b6[bX]!=null;bX++){if(b6[bX]&&(b6[bX]===true||b6[bX].nodeType===1&&by.contains(e,b6[bX]))){bY.push(b3[bX])}}}else{for(bX=0;b6[bX]!=null;bX++){if(b6[bX]&&b6[bX].nodeType===1){bY.push(b3[bX])}}}}}else{bF(b6,bY)}if(bR){by(bR,b1,bY,bZ);by.uniqueSort(bY)}return bY};by.uniqueSort=function(bR){if(bJ){bB=bA;bR.sort(bJ);if(bB){for(var e=1;e<bR.length;e++){if(bR[e]===bR[e-1]){bR.splice(e--,1)}}}}return bR};by.matches=function(e,bR){return by(e,null,null,bR)};by.matchesSelector=function(e,bR){return by(bR,null,null,[e]).length>0};by.find=function(bX,e,bY){var bW,bS,bU,bT,bV,bR;if(!bX){return[]}for(bS=0,bU=bE.order.length;bS<bU;bS++){bV=bE.order[bS];if((bT=bE.leftMatch[bV].exec(bX))){bR=bT[1];bT.splice(1,1);if(bR.substr(bR.length-1)!=="\\"){bT[1]=(bT[1]||"").replace(bK,"");bW=bE.find[bV](bT,e,bY);if(bW!=null){bX=bX.replace(bE.match[bV],"");break}}}}if(!bW){bW=typeof e.getElementsByTagName!=="undefined"?e.getElementsByTagName("*"):[]}return{set:bW,expr:bX}};by.filter=function(b1,b0,b4,bU){var bW,e,bZ,b6,b3,bR,bT,bV,b2,bS=b1,b5=[],bY=b0,bX=b0&&b0[0]&&by.isXML(b0[0]);while(b1&&b0.length){for(bZ in bE.filter){if((bW=bE.leftMatch[bZ].exec(b1))!=null&&bW[2]){bR=bE.filter[bZ];bT=bW[1];e=false;bW.splice(1,1);if(bT.substr(bT.length-1)==="\\"){continue}if(bY===b5){b5=[]}if(bE.preFilter[bZ]){bW=bE.preFilter[bZ](bW,bY,b4,b5,bU,bX);if(!bW){e=b6=true}else{if(bW===true){continue}}}if(bW){for(bV=0;(b3=bY[bV])!=null;bV++){if(b3){b6=bR(b3,bW,bV,bY);b2=bU^b6;if(b4&&b6!=null){if(b2){e=true}else{bY[bV]=false}}else{if(b2){b5.push(b3);e=true}}}}}if(b6!==L){if(!b4){bY=b5}b1=b1.replace(bE.match[bZ],"");if(!e){return[]}break}}}if(b1===bS){if(e==null){by.error(b1)}else{break}}bS=b1}return bY};by.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)};var bw=by.getText=function(bU){var bS,bT,e=bU.nodeType,bR="";if(e){if(e===1||e===9){if(typeof bU.textContent==="string"){return bU.textContent}else{if(typeof bU.innerText==="string"){return bU.innerText.replace(bO,"")}else{for(bU=bU.firstChild;bU;bU=bU.nextSibling){bR+=bw(bU)}}}}else{if(e===3||e===4){return bU.nodeValue}}}else{for(bS=0;(bT=bU[bS]);bS++){if(bT.nodeType!==8){bR+=bw(bT)}}}return bR};var bE=by.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(e){return e.getAttribute("href")},type:function(e){return e.getAttribute("type")}},relative:{"+":function(bW,bR){var bT=typeof bR==="string",bV=bT&&!bQ.test(bR),bX=bT&&!bV;if(bV){bR=bR.toLowerCase()}for(var bS=0,e=bW.length,bU;bS<e;bS++){if((bU=bW[bS])){while((bU=bU.previousSibling)&&bU.nodeType!==1){}bW[bS]=bX||bU&&bU.nodeName.toLowerCase()===bR?bU||false:bU===bR}}if(bX){by.filter(bR,bW,true)}},">":function(bW,bR){var bV,bU=typeof bR==="string",bS=0,e=bW.length;if(bU&&!bQ.test(bR)){bR=bR.toLowerCase();for(;bS<e;bS++){bV=bW[bS];if(bV){var bT=bV.parentNode;bW[bS]=bT.nodeName.toLowerCase()===bR?bT:false}}}else{for(;bS<e;bS++){bV=bW[bS];if(bV){bW[bS]=bU?bV.parentNode:bV.parentNode===bR}}if(bU){by.filter(bR,bW,true)}}},"":function(bT,bR,bV){var bU,bS=bI++,e=bN;if(typeof bR==="string"&&!bQ.test(bR)){bR=bR.toLowerCase();bU=bR;e=bv}e("parentNode",bR,bS,bT,bU,bV)},"~":function(bT,bR,bV){var bU,bS=bI++,e=bN;if(typeof bR==="string"&&!bQ.test(bR)){bR=bR.toLowerCase();bU=bR;e=bv}e("previousSibling",bR,bS,bT,bU,bV)}},find:{ID:function(bR,bS,bT){if(typeof bS.getElementById!=="undefined"&&!bT){var e=bS.getElementById(bR[1]);return e&&e.parentNode?[e]:[]}},NAME:function(bS,bV){if(typeof bV.getElementsByName!=="undefined"){var bR=[],bU=bV.getElementsByName(bS[1]);for(var bT=0,e=bU.length;bT<e;bT++){if(bU[bT].getAttribute("name")===bS[1]){bR.push(bU[bT])}}return bR.length===0?null:bR}},TAG:function(e,bR){if(typeof bR.getElementsByTagName!=="undefined"){return bR.getElementsByTagName(e[1])}}},preFilter:{CLASS:function(bT,bR,bS,e,bW,bX){bT=" "+bT[1].replace(bK,"")+" ";if(bX){return bT}for(var bU=0,bV;(bV=bR[bU])!=null;bU++){if(bV){if(bW^(bV.className&&(" "+bV.className+" ").replace(/[\t\n\r]/g," ").indexOf(bT)>=0)){if(!bS){e.push(bV)}}else{if(bS){bR[bU]=false}}}}return false},ID:function(e){return e[1].replace(bK,"")},TAG:function(bR,e){return bR[1].replace(bK,"").toLowerCase()},CHILD:function(e){if(e[1]==="nth"){if(!e[2]){by.error(e[0])}e[2]=e[2].replace(/^\+|\s*/g,"");var bR=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(e[2]==="even"&&"2n"||e[2]==="odd"&&"2n+1"||!/\D/.test(e[2])&&"0n+"+e[2]||e[2]);e[2]=(bR[1]+(bR[2]||1))-0;e[3]=bR[3]-0}else{if(e[2]){by.error(e[0])}}e[0]=bI++;return e},ATTR:function(bU,bR,bS,e,bV,bW){var bT=bU[1]=bU[1].replace(bK,"");if(!bW&&bE.attrMap[bT]){bU[1]=bE.attrMap[bT]}bU[4]=(bU[4]||bU[5]||"").replace(bK,"");if(bU[2]==="~="){bU[4]=" "+bU[4]+" "}return bU},PSEUDO:function(bU,bR,bS,e,bV){if(bU[1]==="not"){if((bH.exec(bU[3])||"").length>1||/^\w/.test(bU[3])){bU[3]=by(bU[3],null,null,bR)}else{var bT=by.filter(bU[3],bR,bS,true^bV);if(!bS){e.push.apply(e,bT)}return false}}else{if(bE.match.POS.test(bU[0])||bE.match.CHILD.test(bU[0])){return true}}return bU},POS:function(e){e.unshift(true);return e}},filters:{enabled:function(e){return e.disabled===false&&e.type!=="hidden"},disabled:function(e){return e.disabled===true},checked:function(e){return e.checked===true},selected:function(e){if(e.parentNode){e.parentNode.selectedIndex}return e.selected===true},parent:function(e){return !!e.firstChild},empty:function(e){return !e.firstChild},has:function(bS,bR,e){return !!by(e[3],bS).length},header:function(e){return(/h\d/i).test(e.nodeName)},text:function(bS){var e=bS.getAttribute("type"),bR=bS.type;return bS.nodeName.toLowerCase()==="input"&&"text"===bR&&(e===bR||e===null)},radio:function(e){return e.nodeName.toLowerCase()==="input"&&"radio"===e.type},checkbox:function(e){return e.nodeName.toLowerCase()==="input"&&"checkbox"===e.type},file:function(e){return e.nodeName.toLowerCase()==="input"&&"file"===e.type},password:function(e){return e.nodeName.toLowerCase()==="input"&&"password"===e.type},submit:function(bR){var e=bR.nodeName.toLowerCase();return(e==="input"||e==="button")&&"submit"===bR.type},image:function(e){return e.nodeName.toLowerCase()==="input"&&"image"===e.type},reset:function(bR){var e=bR.nodeName.toLowerCase();return(e==="input"||e==="button")&&"reset"===bR.type},button:function(bR){var e=bR.nodeName.toLowerCase();return e==="input"&&"button"===bR.type||e==="button"},input:function(e){return(/input|select|textarea|button/i).test(e.nodeName)},focus:function(e){return e===e.ownerDocument.activeElement}},setFilters:{first:function(bR,e){return e===0},last:function(bS,bR,e,bT){return bR===bT.length-1},even:function(bR,e){return e%2===0},odd:function(bR,e){return e%2===1
-},lt:function(bS,bR,e){return bR<e[3]-0},gt:function(bS,bR,e){return bR>e[3]-0},nth:function(bS,bR,e){return e[3]-0===bR},eq:function(bS,bR,e){return e[3]-0===bR}},filter:{PSEUDO:function(bS,bX,bW,bY){var e=bX[1],bR=bE.filters[e];if(bR){return bR(bS,bW,bX,bY)}else{if(e==="contains"){return(bS.textContent||bS.innerText||bw([bS])||"").indexOf(bX[3])>=0}else{if(e==="not"){var bT=bX[3];for(var bV=0,bU=bT.length;bV<bU;bV++){if(bT[bV]===bS){return false}}return true}else{by.error(e)}}}},CHILD:function(bS,bU){var bT,b0,bW,bZ,e,bV,bY,bX=bU[1],bR=bS;switch(bX){case"only":case"first":while((bR=bR.previousSibling)){if(bR.nodeType===1){return false}}if(bX==="first"){return true}bR=bS;case"last":while((bR=bR.nextSibling)){if(bR.nodeType===1){return false}}return true;case"nth":bT=bU[2];b0=bU[3];if(bT===1&&b0===0){return true}bW=bU[0];bZ=bS.parentNode;if(bZ&&(bZ[bC]!==bW||!bS.nodeIndex)){bV=0;for(bR=bZ.firstChild;bR;bR=bR.nextSibling){if(bR.nodeType===1){bR.nodeIndex=++bV}}bZ[bC]=bW}bY=bS.nodeIndex-b0;if(bT===0){return bY===0}else{return(bY%bT===0&&bY/bT>=0)}}},ID:function(bR,e){return bR.nodeType===1&&bR.getAttribute("id")===e},TAG:function(bR,e){return(e==="*"&&bR.nodeType===1)||!!bR.nodeName&&bR.nodeName.toLowerCase()===e},CLASS:function(bR,e){return(" "+(bR.className||bR.getAttribute("class"))+" ").indexOf(e)>-1},ATTR:function(bV,bT){var bS=bT[1],e=by.attr?by.attr(bV,bS):bE.attrHandle[bS]?bE.attrHandle[bS](bV):bV[bS]!=null?bV[bS]:bV.getAttribute(bS),bW=e+"",bU=bT[2],bR=bT[4];return e==null?bU==="!=":!bU&&by.attr?e!=null:bU==="="?bW===bR:bU==="*="?bW.indexOf(bR)>=0:bU==="~="?(" "+bW+" ").indexOf(bR)>=0:!bR?bW&&e!==false:bU==="!="?bW!==bR:bU==="^="?bW.indexOf(bR)===0:bU==="$="?bW.substr(bW.length-bR.length)===bR:bU==="|="?bW===bR||bW.substr(0,bR.length+1)===bR+"-":false},POS:function(bU,bR,bS,bV){var e=bR[2],bT=bE.setFilters[e];if(bT){return bT(bU,bS,bR,bV)}}}};var bD=bE.match.POS,bx=function(bR,e){return"\\"+(e-0+1)};for(var bz in bE.match){bE.match[bz]=new RegExp(bE.match[bz].source+(/(?![^\[]*\])(?![^\(]*\))/.source));bE.leftMatch[bz]=new RegExp(/(^(?:.|\r|\n)*?)/.source+bE.match[bz].source.replace(/\\(\d+)/g,bx))}var bF=function(bR,e){bR=Array.prototype.slice.call(bR,0);if(e){e.push.apply(e,bR);return e}return bR};try{Array.prototype.slice.call(av.documentElement.childNodes,0)[0].nodeType}catch(bP){bF=function(bU,bT){var bS=0,bR=bT||[];if(bL.call(bU)==="[object Array]"){Array.prototype.push.apply(bR,bU)}else{if(typeof bU.length==="number"){for(var e=bU.length;bS<e;bS++){bR.push(bU[bS])}}else{for(;bU[bS];bS++){bR.push(bU[bS])}}}return bR}}var bJ,bG;if(av.documentElement.compareDocumentPosition){bJ=function(bR,e){if(bR===e){bB=true;return 0}if(!bR.compareDocumentPosition||!e.compareDocumentPosition){return bR.compareDocumentPosition?-1:1}return bR.compareDocumentPosition(e)&4?-1:1}}else{bJ=function(bY,bX){if(bY===bX){bB=true;return 0}else{if(bY.sourceIndex&&bX.sourceIndex){return bY.sourceIndex-bX.sourceIndex}}var bV,bR,bS=[],e=[],bU=bY.parentNode,bW=bX.parentNode,bZ=bU;if(bU===bW){return bG(bY,bX)}else{if(!bU){return -1}else{if(!bW){return 1}}}while(bZ){bS.unshift(bZ);bZ=bZ.parentNode}bZ=bW;while(bZ){e.unshift(bZ);bZ=bZ.parentNode}bV=bS.length;bR=e.length;for(var bT=0;bT<bV&&bT<bR;bT++){if(bS[bT]!==e[bT]){return bG(bS[bT],e[bT])}}return bT===bV?bG(bY,e[bT],-1):bG(bS[bT],bX,1)};bG=function(bR,e,bS){if(bR===e){return bS}var bT=bR.nextSibling;while(bT){if(bT===e){return -1}bT=bT.nextSibling}return 1}}(function(){var bR=av.createElement("div"),bS="script"+(new Date()).getTime(),e=av.documentElement;bR.innerHTML="<a name='"+bS+"'/>";e.insertBefore(bR,e.firstChild);if(av.getElementById(bS)){bE.find.ID=function(bU,bV,bW){if(typeof bV.getElementById!=="undefined"&&!bW){var bT=bV.getElementById(bU[1]);return bT?bT.id===bU[1]||typeof bT.getAttributeNode!=="undefined"&&bT.getAttributeNode("id").nodeValue===bU[1]?[bT]:L:[]}};bE.filter.ID=function(bV,bT){var bU=typeof bV.getAttributeNode!=="undefined"&&bV.getAttributeNode("id");return bV.nodeType===1&&bU&&bU.nodeValue===bT}}e.removeChild(bR);e=bR=null})();(function(){var e=av.createElement("div");e.appendChild(av.createComment(""));if(e.getElementsByTagName("*").length>0){bE.find.TAG=function(bR,bV){var bU=bV.getElementsByTagName(bR[1]);if(bR[1]==="*"){var bT=[];for(var bS=0;bU[bS];bS++){if(bU[bS].nodeType===1){bT.push(bU[bS])}}bU=bT}return bU}}e.innerHTML="<a href='#'></a>";if(e.firstChild&&typeof e.firstChild.getAttribute!=="undefined"&&e.firstChild.getAttribute("href")!=="#"){bE.attrHandle.href=function(bR){return bR.getAttribute("href",2)}}e=null})();if(av.querySelectorAll){(function(){var e=by,bT=av.createElement("div"),bS="__sizzle__";bT.innerHTML="<p class='TEST'></p>";if(bT.querySelectorAll&&bT.querySelectorAll(".TEST").length===0){return}by=function(b4,bV,bZ,b3){bV=bV||av;if(!b3&&!by.isXML(bV)){var b2=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b4);if(b2&&(bV.nodeType===1||bV.nodeType===9)){if(b2[1]){return bF(bV.getElementsByTagName(b4),bZ)}else{if(b2[2]&&bE.find.CLASS&&bV.getElementsByClassName){return bF(bV.getElementsByClassName(b2[2]),bZ)}}}if(bV.nodeType===9){if(b4==="body"&&bV.body){return bF([bV.body],bZ)}else{if(b2&&b2[3]){var bY=bV.getElementById(b2[3]);if(bY&&bY.parentNode){if(bY.id===b2[3]){return bF([bY],bZ)}}else{return bF([],bZ)}}}try{return bF(bV.querySelectorAll(b4),bZ)}catch(b0){}}else{if(bV.nodeType===1&&bV.nodeName.toLowerCase()!=="object"){var bW=bV,bX=bV.getAttribute("id"),bU=bX||bS,b6=bV.parentNode,b5=/^\s*[+~]/.test(b4);if(!bX){bV.setAttribute("id",bU)}else{bU=bU.replace(/'/g,"\\$&")}if(b5&&b6){bV=bV.parentNode}try{if(!b5||b6){return bF(bV.querySelectorAll("[id='"+bU+"'] "+b4),bZ)}}catch(b1){}finally{if(!bX){bW.removeAttribute("id")}}}}}return e(b4,bV,bZ,b3)};for(var bR in e){by[bR]=e[bR]}bT=null})()}(function(){var e=av.documentElement,bS=e.matchesSelector||e.mozMatchesSelector||e.webkitMatchesSelector||e.msMatchesSelector;if(bS){var bU=!bS.call(av.createElement("div"),"div"),bR=false;try{bS.call(av.documentElement,"[test!='']:sizzle")}catch(bT){bR=true}by.matchesSelector=function(bW,bY){bY=bY.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!by.isXML(bW)){try{if(bR||!bE.match.PSEUDO.test(bY)&&!/!=/.test(bY)){var bV=bS.call(bW,bY);if(bV||!bU||bW.document&&bW.document.nodeType!==11){return bV}}}catch(bX){}}return by(bY,null,null,[bW]).length>0}}})();(function(){var e=av.createElement("div");e.innerHTML="<div class='test e'></div><div class='test'></div>";if(!e.getElementsByClassName||e.getElementsByClassName("e").length===0){return}e.lastChild.className="e";if(e.getElementsByClassName("e").length===1){return}bE.order.splice(1,0,"CLASS");bE.find.CLASS=function(bR,bS,bT){if(typeof bS.getElementsByClassName!=="undefined"&&!bT){return bS.getElementsByClassName(bR[1])}};e=null})();function bv(bR,bW,bV,bZ,bX,bY){for(var bT=0,bS=bZ.length;bT<bS;bT++){var e=bZ[bT];if(e){var bU=false;e=e[bR];while(e){if(e[bC]===bV){bU=bZ[e.sizset];break}if(e.nodeType===1&&!bY){e[bC]=bV;e.sizset=bT}if(e.nodeName.toLowerCase()===bW){bU=e;break}e=e[bR]}bZ[bT]=bU}}}function bN(bR,bW,bV,bZ,bX,bY){for(var bT=0,bS=bZ.length;bT<bS;bT++){var e=bZ[bT];if(e){var bU=false;e=e[bR];while(e){if(e[bC]===bV){bU=bZ[e.sizset];break}if(e.nodeType===1){if(!bY){e[bC]=bV;e.sizset=bT}if(typeof bW!=="string"){if(e===bW){bU=true;break}}else{if(by.filter(bW,[e]).length>0){bU=e;break}}}e=e[bR]}bZ[bT]=bU}}}if(av.documentElement.contains){by.contains=function(bR,e){return bR!==e&&(bR.contains?bR.contains(e):true)}}else{if(av.documentElement.compareDocumentPosition){by.contains=function(bR,e){return !!(bR.compareDocumentPosition(e)&16)}}else{by.contains=function(){return false}}}by.isXML=function(e){var bR=(e?e.ownerDocument||e:0).documentElement;return bR?bR.nodeName!=="HTML":false};var bM=function(bS,e,bW){var bV,bX=[],bU="",bY=e.nodeType?[e]:e;while((bV=bE.match.PSEUDO.exec(bS))){bU+=bV[0];bS=bS.replace(bE.match.PSEUDO,"")}bS=bE.relative[bS]?bS+"*":bS;for(var bT=0,bR=bY.length;bT<bR;bT++){by(bS,bY[bT],bX,bW)}return by.filter(bU,bX)};by.attr=b.attr;by.selectors.attrMap={};b.find=by;b.expr=by.selectors;b.expr[":"]=b.expr.filters;b.unique=by.uniqueSort;b.text=by.getText;b.isXMLDoc=by.isXML;b.contains=by.contains})();var ab=/Until$/,aq=/^(?:parents|prevUntil|prevAll)/,a9=/,/,bp=/^.[^:#\[\.,]*$/,P=Array.prototype.slice,H=b.expr.match.POS,ay={children:true,contents:true,next:true,prev:true};b.fn.extend({find:function(e){var bw=this,by,bv;if(typeof e!=="string"){return b(e).filter(function(){for(by=0,bv=bw.length;by<bv;by++){if(b.contains(bw[by],this)){return true}}})}var bx=this.pushStack("","find",e),bA,bB,bz;for(by=0,bv=this.length;by<bv;by++){bA=bx.length;b.find(e,this[by],bx);if(by>0){for(bB=bA;bB<bx.length;bB++){for(bz=0;bz<bA;bz++){if(bx[bz]===bx[bB]){bx.splice(bB--,1);break}}}}}return bx},has:function(bv){var e=b(bv);return this.filter(function(){for(var bx=0,bw=e.length;bx<bw;bx++){if(b.contains(this,e[bx])){return true}}})},not:function(e){return this.pushStack(aG(this,e,false),"not",e)},filter:function(e){return this.pushStack(aG(this,e,true),"filter",e)},is:function(e){return !!e&&(typeof e==="string"?H.test(e)?b(e,this.context).index(this[0])>=0:b.filter(e,this).length>0:this.filter(e).length>0)},closest:function(by,bx){var bv=[],bw,e,bz=this[0];if(b.isArray(by)){var bB=1;while(bz&&bz.ownerDocument&&bz!==bx){for(bw=0;bw<by.length;bw++){if(b(bz).is(by[bw])){bv.push({selector:by[bw],elem:bz,level:bB})}}bz=bz.parentNode;bB++}return bv}var bA=H.test(by)||typeof by!=="string"?b(by,bx||this.context):0;for(bw=0,e=this.length;bw<e;bw++){bz=this[bw];while(bz){if(bA?bA.index(bz)>-1:b.find.matchesSelector(bz,by)){bv.push(bz);break}else{bz=bz.parentNode;if(!bz||!bz.ownerDocument||bz===bx||bz.nodeType===11){break}}}}bv=bv.length>1?b.unique(bv):bv;return this.pushStack(bv,"closest",by)},index:function(e){if(!e){return(this[0]&&this[0].parentNode)?this.prevAll().length:-1}if(typeof e==="string"){return b.inArray(this[0],b(e))}return b.inArray(e.jquery?e[0]:e,this)},add:function(e,bv){var bx=typeof e==="string"?b(e,bv):b.makeArray(e&&e.nodeType?[e]:e),bw=b.merge(this.get(),bx);return this.pushStack(C(bx[0])||C(bw[0])?bw:b.unique(bw))},andSelf:function(){return this.add(this.prevObject)}});function C(e){return !e||!e.parentNode||e.parentNode.nodeType===11}b.each({parent:function(bv){var e=bv.parentNode;return e&&e.nodeType!==11?e:null},parents:function(e){return b.dir(e,"parentNode")},parentsUntil:function(bv,e,bw){return b.dir(bv,"parentNode",bw)},next:function(e){return b.nth(e,2,"nextSibling")},prev:function(e){return b.nth(e,2,"previousSibling")},nextAll:function(e){return b.dir(e,"nextSibling")},prevAll:function(e){return b.dir(e,"previousSibling")},nextUntil:function(bv,e,bw){return b.dir(bv,"nextSibling",bw)},prevUntil:function(bv,e,bw){return b.dir(bv,"previousSibling",bw)},siblings:function(e){return b.sibling(e.parentNode.firstChild,e)},children:function(e){return b.sibling(e.firstChild)},contents:function(e){return b.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:b.makeArray(e.childNodes)}},function(e,bv){b.fn[e]=function(by,bw){var bx=b.map(this,bv,by);if(!ab.test(e)){bw=by}if(bw&&typeof bw==="string"){bx=b.filter(bw,bx)}bx=this.length>1&&!ay[e]?b.unique(bx):bx;if((this.length>1||a9.test(bw))&&aq.test(e)){bx=bx.reverse()}return this.pushStack(bx,e,P.call(arguments).join(","))}});b.extend({filter:function(bw,e,bv){if(bv){bw=":not("+bw+")"}return e.length===1?b.find.matchesSelector(e[0],bw)?[e[0]]:[]:b.find.matches(bw,e)},dir:function(bw,bv,by){var e=[],bx=bw[bv];while(bx&&bx.nodeType!==9&&(by===L||bx.nodeType!==1||!b(bx).is(by))){if(bx.nodeType===1){e.push(bx)}bx=bx[bv]}return e},nth:function(by,e,bw,bx){e=e||1;var bv=0;for(;by;by=by[bw]){if(by.nodeType===1&&++bv===e){break}}return by},sibling:function(bw,bv){var e=[];for(;bw;bw=bw.nextSibling){if(bw.nodeType===1&&bw!==bv){e.push(bw)}}return e}});function aG(bx,bw,e){bw=bw||0;if(b.isFunction(bw)){return b.grep(bx,function(bz,by){var bA=!!bw.call(bz,by,bz);return bA===e})}else{if(bw.nodeType){return b.grep(bx,function(bz,by){return(bz===bw)===e})}else{if(typeof bw==="string"){var bv=b.grep(bx,function(by){return by.nodeType===1});if(bp.test(bw)){return b.filter(bw,bv,!e)}else{bw=b.filter(bw,bv)}}}}return b.grep(bx,function(bz,by){return(b.inArray(bz,bw)>=0)===e})}function a(e){var bw=aR.split("|"),bv=e.createDocumentFragment();if(bv.createElement){while(bw.length){bv.createElement(bw.pop())}}return bv}var aR="abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",ag=/ jQuery\d+="(?:\d+|null)"/g,ar=/^\s+/,R=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,d=/<([\w:]+)/,w=/<tbody/i,W=/<|&#?\w+;/,ae=/<(?:script|style)/i,O=/<(?:script|object|embed|option|style)/i,ah=new RegExp("<(?:"+aR+")","i"),o=/checked\s*(?:[^=]|=\s*.checked.)/i,bm=/\/(java|ecma)script/i,aN=/^\s*<!(?:\[CDATA\[|\-\-)/,ax={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]},ac=a(av);
-ax.optgroup=ax.option;ax.tbody=ax.tfoot=ax.colgroup=ax.caption=ax.thead;ax.th=ax.td;if(!b.support.htmlSerialize){ax._default=[1,"div<div>","</div>"]}b.fn.extend({text:function(e){if(b.isFunction(e)){return this.each(function(bw){var bv=b(this);bv.text(e.call(this,bw,bv.text()))})}if(typeof e!=="object"&&e!==L){return this.empty().append((this[0]&&this[0].ownerDocument||av).createTextNode(e))}return b.text(this)},wrapAll:function(e){if(b.isFunction(e)){return this.each(function(bw){b(this).wrapAll(e.call(this,bw))})}if(this[0]){var bv=b(e,this[0].ownerDocument).eq(0).clone(true);if(this[0].parentNode){bv.insertBefore(this[0])}bv.map(function(){var bw=this;while(bw.firstChild&&bw.firstChild.nodeType===1){bw=bw.firstChild}return bw}).append(this)}return this},wrapInner:function(e){if(b.isFunction(e)){return this.each(function(bv){b(this).wrapInner(e.call(this,bv))})}return this.each(function(){var bv=b(this),bw=bv.contents();if(bw.length){bw.wrapAll(e)}else{bv.append(e)}})},wrap:function(e){var bv=b.isFunction(e);return this.each(function(bw){b(this).wrapAll(bv?e.call(this,bw):e)})},unwrap:function(){return this.parent().each(function(){if(!b.nodeName(this,"body")){b(this).replaceWith(this.childNodes)}}).end()},append:function(){return this.domManip(arguments,true,function(e){if(this.nodeType===1){this.appendChild(e)}})},prepend:function(){return this.domManip(arguments,true,function(e){if(this.nodeType===1){this.insertBefore(e,this.firstChild)}})},before:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(bv){this.parentNode.insertBefore(bv,this)})}else{if(arguments.length){var e=b.clean(arguments);e.push.apply(e,this.toArray());return this.pushStack(e,"before",arguments)}}},after:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(bv){this.parentNode.insertBefore(bv,this.nextSibling)})}else{if(arguments.length){var e=this.pushStack(this,"after",arguments);e.push.apply(e,b.clean(arguments));return e}}},remove:function(e,bx){for(var bv=0,bw;(bw=this[bv])!=null;bv++){if(!e||b.filter(e,[bw]).length){if(!bx&&bw.nodeType===1){b.cleanData(bw.getElementsByTagName("*"));b.cleanData([bw])}if(bw.parentNode){bw.parentNode.removeChild(bw)}}}return this},empty:function(){for(var e=0,bv;(bv=this[e])!=null;e++){if(bv.nodeType===1){b.cleanData(bv.getElementsByTagName("*"))}while(bv.firstChild){bv.removeChild(bv.firstChild)}}return this},clone:function(bv,e){bv=bv==null?false:bv;e=e==null?bv:e;return this.map(function(){return b.clone(this,bv,e)})},html:function(bx){if(bx===L){return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(ag,""):null}else{if(typeof bx==="string"&&!ae.test(bx)&&(b.support.leadingWhitespace||!ar.test(bx))&&!ax[(d.exec(bx)||["",""])[1].toLowerCase()]){bx=bx.replace(R,"<$1></$2>");try{for(var bw=0,bv=this.length;bw<bv;bw++){if(this[bw].nodeType===1){b.cleanData(this[bw].getElementsByTagName("*"));this[bw].innerHTML=bx}}}catch(by){this.empty().append(bx)}}else{if(b.isFunction(bx)){this.each(function(bz){var e=b(this);e.html(bx.call(this,bz,e.html()))})}else{this.empty().append(bx)}}}return this},replaceWith:function(e){if(this[0]&&this[0].parentNode){if(b.isFunction(e)){return this.each(function(bx){var bw=b(this),bv=bw.html();bw.replaceWith(e.call(this,bx,bv))})}if(typeof e!=="string"){e=b(e).detach()}return this.each(function(){var bw=this.nextSibling,bv=this.parentNode;b(this).remove();if(bw){b(bw).before(e)}else{b(bv).append(e)}})}else{return this.length?this.pushStack(b(b.isFunction(e)?e():e),"replaceWith",e):this}},detach:function(e){return this.remove(e,true)},domManip:function(bB,bF,bE){var bx,by,bA,bD,bC=bB[0],bv=[];if(!b.support.checkClone&&arguments.length===3&&typeof bC==="string"&&o.test(bC)){return this.each(function(){b(this).domManip(bB,bF,bE,true)})}if(b.isFunction(bC)){return this.each(function(bH){var bG=b(this);bB[0]=bC.call(this,bH,bF?bG.html():L);bG.domManip(bB,bF,bE)})}if(this[0]){bD=bC&&bC.parentNode;if(b.support.parentNode&&bD&&bD.nodeType===11&&bD.childNodes.length===this.length){bx={fragment:bD}}else{bx=b.buildFragment(bB,this,bv)}bA=bx.fragment;if(bA.childNodes.length===1){by=bA=bA.firstChild}else{by=bA.firstChild}if(by){bF=bF&&b.nodeName(by,"tr");for(var bw=0,e=this.length,bz=e-1;bw<e;bw++){bE.call(bF?ba(this[bw],by):this[bw],bx.cacheable||(e>1&&bw<bz)?b.clone(bA,true,true):bA)}}if(bv.length){b.each(bv,bo)}}return this}});function ba(e,bv){return b.nodeName(e,"table")?(e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody"))):e}function t(bB,bv){if(bv.nodeType!==1||!b.hasData(bB)){return}var by,bx,e,bA=b._data(bB),bz=b._data(bv,bA),bw=bA.events;if(bw){delete bz.handle;bz.events={};for(by in bw){for(bx=0,e=bw[by].length;bx<e;bx++){b.event.add(bv,by+(bw[by][bx].namespace?".":"")+bw[by][bx].namespace,bw[by][bx],bw[by][bx].data)}}}if(bz.data){bz.data=b.extend({},bz.data)}}function ai(bv,e){var bw;if(e.nodeType!==1){return}if(e.clearAttributes){e.clearAttributes()}if(e.mergeAttributes){e.mergeAttributes(bv)}bw=e.nodeName.toLowerCase();if(bw==="object"){e.outerHTML=bv.outerHTML}else{if(bw==="input"&&(bv.type==="checkbox"||bv.type==="radio")){if(bv.checked){e.defaultChecked=e.checked=bv.checked}if(e.value!==bv.value){e.value=bv.value}}else{if(bw==="option"){e.selected=bv.defaultSelected}else{if(bw==="input"||bw==="textarea"){e.defaultValue=bv.defaultValue}}}}e.removeAttribute(b.expando)}b.buildFragment=function(bz,bx,bv){var by,e,bw,bA,bB=bz[0];if(bx&&bx[0]){bA=bx[0].ownerDocument||bx[0]}if(!bA.createDocumentFragment){bA=av}if(bz.length===1&&typeof bB==="string"&&bB.length<512&&bA===av&&bB.charAt(0)==="<"&&!O.test(bB)&&(b.support.checkClone||!o.test(bB))&&(b.support.html5Clone||!ah.test(bB))){e=true;bw=b.fragments[bB];if(bw&&bw!==1){by=bw}}if(!by){by=bA.createDocumentFragment();b.clean(bz,bA,by,bv)}if(e){b.fragments[bB]=bw?by:1}return{fragment:by,cacheable:e}};b.fragments={};b.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,bv){b.fn[e]=function(bw){var bz=[],bC=b(bw),bB=this.length===1&&this[0].parentNode;if(bB&&bB.nodeType===11&&bB.childNodes.length===1&&bC.length===1){bC[bv](this[0]);return this}else{for(var bA=0,bx=bC.length;bA<bx;bA++){var by=(bA>0?this.clone(true):this).get();b(bC[bA])[bv](by);bz=bz.concat(by)}return this.pushStack(bz,e,bC.selector)}}});function bg(e){if(typeof e.getElementsByTagName!=="undefined"){return e.getElementsByTagName("*")}else{if(typeof e.querySelectorAll!=="undefined"){return e.querySelectorAll("*")}else{return[]}}}function az(e){if(e.type==="checkbox"||e.type==="radio"){e.defaultChecked=e.checked}}function E(e){var bv=(e.nodeName||"").toLowerCase();if(bv==="input"){az(e)}else{if(bv!=="script"&&typeof e.getElementsByTagName!=="undefined"){b.grep(e.getElementsByTagName("input"),az)}}}function al(e){var bv=av.createElement("div");ac.appendChild(bv);bv.innerHTML=e.outerHTML;return bv.firstChild}b.extend({clone:function(by,bA,bw){var e,bv,bx,bz=b.support.html5Clone||!ah.test("<"+by.nodeName)?by.cloneNode(true):al(by);if((!b.support.noCloneEvent||!b.support.noCloneChecked)&&(by.nodeType===1||by.nodeType===11)&&!b.isXMLDoc(by)){ai(by,bz);e=bg(by);bv=bg(bz);for(bx=0;e[bx];++bx){if(bv[bx]){ai(e[bx],bv[bx])}}}if(bA){t(by,bz);if(bw){e=bg(by);bv=bg(bz);for(bx=0;e[bx];++bx){t(e[bx],bv[bx])}}}e=bv=null;return bz},clean:function(bw,by,bH,bA){var bF;by=by||av;if(typeof by.createElement==="undefined"){by=by.ownerDocument||by[0]&&by[0].ownerDocument||av}var bI=[],bB;for(var bE=0,bz;(bz=bw[bE])!=null;bE++){if(typeof bz==="number"){bz+=""}if(!bz){continue}if(typeof bz==="string"){if(!W.test(bz)){bz=by.createTextNode(bz)}else{bz=bz.replace(R,"<$1></$2>");var bK=(d.exec(bz)||["",""])[1].toLowerCase(),bx=ax[bK]||ax._default,bD=bx[0],bv=by.createElement("div");if(by===av){ac.appendChild(bv)}else{a(by).appendChild(bv)}bv.innerHTML=bx[1]+bz+bx[2];while(bD--){bv=bv.lastChild}if(!b.support.tbody){var e=w.test(bz),bC=bK==="table"&&!e?bv.firstChild&&bv.firstChild.childNodes:bx[1]==="<table>"&&!e?bv.childNodes:[];for(bB=bC.length-1;bB>=0;--bB){if(b.nodeName(bC[bB],"tbody")&&!bC[bB].childNodes.length){bC[bB].parentNode.removeChild(bC[bB])}}}if(!b.support.leadingWhitespace&&ar.test(bz)){bv.insertBefore(by.createTextNode(ar.exec(bz)[0]),bv.firstChild)}bz=bv.childNodes}}var bG;if(!b.support.appendChecked){if(bz[0]&&typeof(bG=bz.length)==="number"){for(bB=0;bB<bG;bB++){E(bz[bB])}}else{E(bz)}}if(bz.nodeType){bI.push(bz)}else{bI=b.merge(bI,bz)}}if(bH){bF=function(bL){return !bL.type||bm.test(bL.type)};for(bE=0;bI[bE];bE++){if(bA&&b.nodeName(bI[bE],"script")&&(!bI[bE].type||bI[bE].type.toLowerCase()==="text/javascript")){bA.push(bI[bE].parentNode?bI[bE].parentNode.removeChild(bI[bE]):bI[bE])}else{if(bI[bE].nodeType===1){var bJ=b.grep(bI[bE].getElementsByTagName("script"),bF);bI.splice.apply(bI,[bE+1,0].concat(bJ))}bH.appendChild(bI[bE])}}}return bI},cleanData:function(bv){var by,bw,e=b.cache,bB=b.event.special,bA=b.support.deleteExpando;for(var bz=0,bx;(bx=bv[bz])!=null;bz++){if(bx.nodeName&&b.noData[bx.nodeName.toLowerCase()]){continue}bw=bx[b.expando];if(bw){by=e[bw];if(by&&by.events){for(var bC in by.events){if(bB[bC]){b.event.remove(bx,bC)}else{b.removeEvent(bx,bC,by.handle)}}if(by.handle){by.handle.elem=null}}if(bA){delete bx[b.expando]}else{if(bx.removeAttribute){bx.removeAttribute(b.expando)}}delete e[bw]}}}});function bo(e,bv){if(bv.src){b.ajax({url:bv.src,async:false,dataType:"script"})}else{b.globalEval((bv.text||bv.textContent||bv.innerHTML||"").replace(aN,"/*$0*/"))}if(bv.parentNode){bv.parentNode.removeChild(bv)}}var ak=/alpha\([^)]*\)/i,au=/opacity=([^)]*)/,z=/([A-Z]|^ms)/g,bc=/^-?\d+(?:px)?$/i,bn=/^-?\d/,I=/^([\-+])=([\-+.\de]+)/,a7={position:"absolute",visibility:"hidden",display:"block"},an=["Left","Right"],a1=["Top","Bottom"],Z,aI,aX;b.fn.css=function(e,bv){if(arguments.length===2&&bv===L){return this}return b.access(this,e,bv,true,function(bx,bw,by){return by!==L?b.style(bx,bw,by):b.css(bx,bw)})};b.extend({cssHooks:{opacity:{get:function(bw,bv){if(bv){var e=Z(bw,"opacity","opacity");return e===""?"1":e}else{return bw.style.opacity}}}},cssNumber:{fillOpacity:true,fontWeight:true,lineHeight:true,opacity:true,orphans:true,widows:true,zIndex:true,zoom:true},cssProps:{"float":b.support.cssFloat?"cssFloat":"styleFloat"},style:function(bx,bw,bD,by){if(!bx||bx.nodeType===3||bx.nodeType===8||!bx.style){return}var bB,bC,bz=b.camelCase(bw),bv=bx.style,bE=b.cssHooks[bz];bw=b.cssProps[bz]||bz;if(bD!==L){bC=typeof bD;if(bC==="string"&&(bB=I.exec(bD))){bD=(+(bB[1]+1)*+bB[2])+parseFloat(b.css(bx,bw));bC="number"}if(bD==null||bC==="number"&&isNaN(bD)){return}if(bC==="number"&&!b.cssNumber[bz]){bD+="px"}if(!bE||!("set" in bE)||(bD=bE.set(bx,bD))!==L){try{bv[bw]=bD}catch(bA){}}}else{if(bE&&"get" in bE&&(bB=bE.get(bx,false,by))!==L){return bB}return bv[bw]}},css:function(by,bx,bv){var bw,e;bx=b.camelCase(bx);e=b.cssHooks[bx];bx=b.cssProps[bx]||bx;if(bx==="cssFloat"){bx="float"}if(e&&"get" in e&&(bw=e.get(by,true,bv))!==L){return bw}else{if(Z){return Z(by,bx)}}},swap:function(bx,bw,by){var e={};for(var bv in bw){e[bv]=bx.style[bv];bx.style[bv]=bw[bv]}by.call(bx);for(bv in bw){bx.style[bv]=e[bv]}}});b.curCSS=b.css;b.each(["height","width"],function(bv,e){b.cssHooks[e]={get:function(by,bx,bw){var bz;if(bx){if(by.offsetWidth!==0){return p(by,e,bw)}else{b.swap(by,a7,function(){bz=p(by,e,bw)})}return bz}},set:function(bw,bx){if(bc.test(bx)){bx=parseFloat(bx);if(bx>=0){return bx+"px"}}else{return bx}}}});if(!b.support.opacity){b.cssHooks.opacity={get:function(bv,e){return au.test((e&&bv.currentStyle?bv.currentStyle.filter:bv.style.filter)||"")?(parseFloat(RegExp.$1)/100)+"":e?"1":""},set:function(by,bz){var bx=by.style,bv=by.currentStyle,e=b.isNumeric(bz)?"alpha(opacity="+bz*100+")":"",bw=bv&&bv.filter||bx.filter||"";bx.zoom=1;if(bz>=1&&b.trim(bw.replace(ak,""))===""){bx.removeAttribute("filter");if(bv&&!bv.filter){return}}bx.filter=ak.test(bw)?bw.replace(ak,e):bw+" "+e}}}b(function(){if(!b.support.reliableMarginRight){b.cssHooks.marginRight={get:function(bw,bv){var e;b.swap(bw,{display:"inline-block"},function(){if(bv){e=Z(bw,"margin-right","marginRight")}else{e=bw.style.marginRight}});return e}}}});if(av.defaultView&&av.defaultView.getComputedStyle){aI=function(by,bw){var bv,bx,e;bw=bw.replace(z,"-$1").toLowerCase();if((bx=by.ownerDocument.defaultView)&&(e=bx.getComputedStyle(by,null))){bv=e.getPropertyValue(bw);if(bv===""&&!b.contains(by.ownerDocument.documentElement,by)){bv=b.style(by,bw)}}return bv}}if(av.documentElement.currentStyle){aX=function(bz,bw){var bA,e,by,bv=bz.currentStyle&&bz.currentStyle[bw],bx=bz.style;if(bv===null&&bx&&(by=bx[bw])){bv=by}if(!bc.test(bv)&&bn.test(bv)){bA=bx.left;e=bz.runtimeStyle&&bz.runtimeStyle.left;if(e){bz.runtimeStyle.left=bz.currentStyle.left}bx.left=bw==="fontSize"?"1em":(bv||0);bv=bx.pixelLeft+"px";bx.left=bA;if(e){bz.runtimeStyle.left=e}}return bv===""?"auto":bv}}Z=aI||aX;function p(by,bw,bv){var bA=bw==="width"?by.offsetWidth:by.offsetHeight,bz=bw==="width"?an:a1,bx=0,e=bz.length;
-if(bA>0){if(bv!=="border"){for(;bx<e;bx++){if(!bv){bA-=parseFloat(b.css(by,"padding"+bz[bx]))||0}if(bv==="margin"){bA+=parseFloat(b.css(by,bv+bz[bx]))||0}else{bA-=parseFloat(b.css(by,"border"+bz[bx]+"Width"))||0}}}return bA+"px"}bA=Z(by,bw,bw);if(bA<0||bA==null){bA=by.style[bw]||0}bA=parseFloat(bA)||0;if(bv){for(;bx<e;bx++){bA+=parseFloat(b.css(by,"padding"+bz[bx]))||0;if(bv!=="padding"){bA+=parseFloat(b.css(by,"border"+bz[bx]+"Width"))||0}if(bv==="margin"){bA+=parseFloat(b.css(by,bv+bz[bx]))||0}}}return bA+"px"}if(b.expr&&b.expr.filters){b.expr.filters.hidden=function(bw){var bv=bw.offsetWidth,e=bw.offsetHeight;return(bv===0&&e===0)||(!b.support.reliableHiddenOffsets&&((bw.style&&bw.style.display)||b.css(bw,"display"))==="none")};b.expr.filters.visible=function(e){return !b.expr.filters.hidden(e)}}var k=/%20/g,ap=/\[\]$/,bs=/\r?\n/g,bq=/#.*$/,aD=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,aZ=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,aM=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,aQ=/^(?:GET|HEAD)$/,c=/^\/\//,M=/\?/,a6=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,q=/^(?:select|textarea)/i,h=/\s+/,br=/([?&])_=[^&]*/,K=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,A=b.fn.load,aa={},r={},aE,s,aV=["*/"]+["*"];try{aE=bl.href}catch(aw){aE=av.createElement("a");aE.href="";aE=aE.href}s=K.exec(aE.toLowerCase())||[];function f(e){return function(by,bA){if(typeof by!=="string"){bA=by;by="*"}if(b.isFunction(bA)){var bx=by.toLowerCase().split(h),bw=0,bz=bx.length,bv,bB,bC;for(;bw<bz;bw++){bv=bx[bw];bC=/^\+/.test(bv);if(bC){bv=bv.substr(1)||"*"}bB=e[bv]=e[bv]||[];bB[bC?"unshift":"push"](bA)}}}}function aW(bv,bE,bz,bD,bB,bx){bB=bB||bE.dataTypes[0];bx=bx||{};bx[bB]=true;var bA=bv[bB],bw=0,e=bA?bA.length:0,by=(bv===aa),bC;for(;bw<e&&(by||!bC);bw++){bC=bA[bw](bE,bz,bD);if(typeof bC==="string"){if(!by||bx[bC]){bC=L}else{bE.dataTypes.unshift(bC);bC=aW(bv,bE,bz,bD,bC,bx)}}}if((by||!bC)&&!bx["*"]){bC=aW(bv,bE,bz,bD,"*",bx)}return bC}function am(bw,bx){var bv,e,by=b.ajaxSettings.flatOptions||{};for(bv in bx){if(bx[bv]!==L){(by[bv]?bw:(e||(e={})))[bv]=bx[bv]}}if(e){b.extend(true,bw,e)}}b.fn.extend({load:function(bw,bz,bA){if(typeof bw!=="string"&&A){return A.apply(this,arguments)}else{if(!this.length){return this}}var by=bw.indexOf(" ");if(by>=0){var e=bw.slice(by,bw.length);bw=bw.slice(0,by)}var bx="GET";if(bz){if(b.isFunction(bz)){bA=bz;bz=L}else{if(typeof bz==="object"){bz=b.param(bz,b.ajaxSettings.traditional);bx="POST"}}}var bv=this;b.ajax({url:bw,type:bx,dataType:"html",data:bz,complete:function(bC,bB,bD){bD=bC.responseText;if(bC.isResolved()){bC.done(function(bE){bD=bE});bv.html(e?b("<div>").append(bD.replace(a6,"")).find(e):bD)}if(bA){bv.each(bA,[bD,bB,bC])}}});return this},serialize:function(){return b.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?b.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||q.test(this.nodeName)||aZ.test(this.type))}).map(function(e,bv){var bw=b(this).val();return bw==null?null:b.isArray(bw)?b.map(bw,function(by,bx){return{name:bv.name,value:by.replace(bs,"\r\n")}}):{name:bv.name,value:bw.replace(bs,"\r\n")}}).get()}});b.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(e,bv){b.fn[bv]=function(bw){return this.on(bv,bw)}});b.each(["get","post"],function(e,bv){b[bv]=function(bw,by,bz,bx){if(b.isFunction(by)){bx=bx||bz;bz=by;by=L}return b.ajax({type:bv,url:bw,data:by,success:bz,dataType:bx})}});b.extend({getScript:function(e,bv){return b.get(e,L,bv,"script")},getJSON:function(e,bv,bw){return b.get(e,bv,bw,"json")},ajaxSetup:function(bv,e){if(e){am(bv,b.ajaxSettings)}else{e=bv;bv=b.ajaxSettings}am(bv,e);return bv},ajaxSettings:{url:aE,isLocal:aM.test(s[1]),global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":aV},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":bb.String,"text html":true,"text json":b.parseJSON,"text xml":b.parseXML},flatOptions:{context:true,url:true}},ajaxPrefilter:f(aa),ajaxTransport:f(r),ajax:function(bz,bx){if(typeof bz==="object"){bx=bz;bz=L}bx=bx||{};var bD=b.ajaxSetup({},bx),bS=bD.context||bD,bG=bS!==bD&&(bS.nodeType||bS instanceof b)?b(bS):b.event,bR=b.Deferred(),bN=b.Callbacks("once memory"),bB=bD.statusCode||{},bC,bH={},bO={},bQ,by,bL,bE,bI,bA=0,bw,bK,bJ={readyState:0,setRequestHeader:function(bT,bU){if(!bA){var e=bT.toLowerCase();bT=bO[e]=bO[e]||bT;bH[bT]=bU}return this},getAllResponseHeaders:function(){return bA===2?bQ:null},getResponseHeader:function(bT){var e;if(bA===2){if(!by){by={};while((e=aD.exec(bQ))){by[e[1].toLowerCase()]=e[2]}}e=by[bT.toLowerCase()]}return e===L?null:e},overrideMimeType:function(e){if(!bA){bD.mimeType=e}return this},abort:function(e){e=e||"abort";if(bL){bL.abort(e)}bF(0,e);return this}};function bF(bZ,bU,b0,bW){if(bA===2){return}bA=2;if(bE){clearTimeout(bE)}bL=L;bQ=bW||"";bJ.readyState=bZ>0?4:0;var bT,b4,b3,bX=bU,bY=b0?bj(bD,bJ,b0):L,bV,b2;if(bZ>=200&&bZ<300||bZ===304){if(bD.ifModified){if((bV=bJ.getResponseHeader("Last-Modified"))){b.lastModified[bC]=bV}if((b2=bJ.getResponseHeader("Etag"))){b.etag[bC]=b2}}if(bZ===304){bX="notmodified";bT=true}else{try{b4=G(bD,bY);bX="success";bT=true}catch(b1){bX="parsererror";b3=b1}}}else{b3=bX;if(!bX||bZ){bX="error";if(bZ<0){bZ=0}}}bJ.status=bZ;bJ.statusText=""+(bU||bX);if(bT){bR.resolveWith(bS,[b4,bX,bJ])}else{bR.rejectWith(bS,[bJ,bX,b3])}bJ.statusCode(bB);bB=L;if(bw){bG.trigger("ajax"+(bT?"Success":"Error"),[bJ,bD,bT?b4:b3])}bN.fireWith(bS,[bJ,bX]);if(bw){bG.trigger("ajaxComplete",[bJ,bD]);if(!(--b.active)){b.event.trigger("ajaxStop")}}}bR.promise(bJ);bJ.success=bJ.done;bJ.error=bJ.fail;bJ.complete=bN.add;bJ.statusCode=function(bT){if(bT){var e;if(bA<2){for(e in bT){bB[e]=[bB[e],bT[e]]}}else{e=bT[bJ.status];bJ.then(e,e)}}return this};bD.url=((bz||bD.url)+"").replace(bq,"").replace(c,s[1]+"//");bD.dataTypes=b.trim(bD.dataType||"*").toLowerCase().split(h);if(bD.crossDomain==null){bI=K.exec(bD.url.toLowerCase());bD.crossDomain=!!(bI&&(bI[1]!=s[1]||bI[2]!=s[2]||(bI[3]||(bI[1]==="http:"?80:443))!=(s[3]||(s[1]==="http:"?80:443))))}if(bD.data&&bD.processData&&typeof bD.data!=="string"){bD.data=b.param(bD.data,bD.traditional)}aW(aa,bD,bx,bJ);if(bA===2){return false}bw=bD.global;bD.type=bD.type.toUpperCase();bD.hasContent=!aQ.test(bD.type);if(bw&&b.active++===0){b.event.trigger("ajaxStart")}if(!bD.hasContent){if(bD.data){bD.url+=(M.test(bD.url)?"&":"?")+bD.data;delete bD.data}bC=bD.url;if(bD.cache===false){var bv=b.now(),bP=bD.url.replace(br,"$1_="+bv);bD.url=bP+((bP===bD.url)?(M.test(bD.url)?"&":"?")+"_="+bv:"")}}if(bD.data&&bD.hasContent&&bD.contentType!==false||bx.contentType){bJ.setRequestHeader("Content-Type",bD.contentType)}if(bD.ifModified){bC=bC||bD.url;if(b.lastModified[bC]){bJ.setRequestHeader("If-Modified-Since",b.lastModified[bC])}if(b.etag[bC]){bJ.setRequestHeader("If-None-Match",b.etag[bC])}}bJ.setRequestHeader("Accept",bD.dataTypes[0]&&bD.accepts[bD.dataTypes[0]]?bD.accepts[bD.dataTypes[0]]+(bD.dataTypes[0]!=="*"?", "+aV+"; q=0.01":""):bD.accepts["*"]);for(bK in bD.headers){bJ.setRequestHeader(bK,bD.headers[bK])}if(bD.beforeSend&&(bD.beforeSend.call(bS,bJ,bD)===false||bA===2)){bJ.abort();return false}for(bK in {success:1,error:1,complete:1}){bJ[bK](bD[bK])}bL=aW(r,bD,bx,bJ);if(!bL){bF(-1,"No Transport")}else{bJ.readyState=1;if(bw){bG.trigger("ajaxSend",[bJ,bD])}if(bD.async&&bD.timeout>0){bE=setTimeout(function(){bJ.abort("timeout")},bD.timeout)}try{bA=1;bL.send(bH,bF)}catch(bM){if(bA<2){bF(-1,bM)}else{throw bM}}}return bJ},param:function(e,bw){var bv=[],by=function(bz,bA){bA=b.isFunction(bA)?bA():bA;bv[bv.length]=encodeURIComponent(bz)+"="+encodeURIComponent(bA)};if(bw===L){bw=b.ajaxSettings.traditional}if(b.isArray(e)||(e.jquery&&!b.isPlainObject(e))){b.each(e,function(){by(this.name,this.value)})}else{for(var bx in e){v(bx,e[bx],bw,by)}}return bv.join("&").replace(k,"+")}});function v(bw,by,bv,bx){if(b.isArray(by)){b.each(by,function(bA,bz){if(bv||ap.test(bw)){bx(bw,bz)}else{v(bw+"["+(typeof bz==="object"||b.isArray(bz)?bA:"")+"]",bz,bv,bx)}})}else{if(!bv&&by!=null&&typeof by==="object"){for(var e in by){v(bw+"["+e+"]",by[e],bv,bx)}}else{bx(bw,by)}}}b.extend({active:0,lastModified:{},etag:{}});function bj(bD,bC,bz){var bv=bD.contents,bB=bD.dataTypes,bw=bD.responseFields,by,bA,bx,e;for(bA in bw){if(bA in bz){bC[bw[bA]]=bz[bA]}}while(bB[0]==="*"){bB.shift();if(by===L){by=bD.mimeType||bC.getResponseHeader("content-type")}}if(by){for(bA in bv){if(bv[bA]&&bv[bA].test(by)){bB.unshift(bA);break}}}if(bB[0] in bz){bx=bB[0]}else{for(bA in bz){if(!bB[0]||bD.converters[bA+" "+bB[0]]){bx=bA;break}if(!e){e=bA}}bx=bx||e}if(bx){if(bx!==bB[0]){bB.unshift(bx)}return bz[bx]}}function G(bH,bz){if(bH.dataFilter){bz=bH.dataFilter(bz,bH.dataType)}var bD=bH.dataTypes,bG={},bA,bE,bw=bD.length,bB,bC=bD[0],bx,by,bF,bv,e;for(bA=1;bA<bw;bA++){if(bA===1){for(bE in bH.converters){if(typeof bE==="string"){bG[bE.toLowerCase()]=bH.converters[bE]}}}bx=bC;bC=bD[bA];if(bC==="*"){bC=bx}else{if(bx!=="*"&&bx!==bC){by=bx+" "+bC;bF=bG[by]||bG["* "+bC];if(!bF){e=L;for(bv in bG){bB=bv.split(" ");if(bB[0]===bx||bB[0]==="*"){e=bG[bB[1]+" "+bC];if(e){bv=bG[bv];if(bv===true){bF=e}else{if(e===true){bF=bv}}break}}}}if(!(bF||e)){b.error("No conversion from "+by.replace(" "," to "))}if(bF!==true){bz=bF?bF(bz):e(bv(bz))}}}}return bz}var aC=b.now(),u=/(\=)\?(&|$)|\?\?/i;b.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return b.expando+"_"+(aC++)}});b.ajaxPrefilter("json jsonp",function(bD,bA,bC){var bx=bD.contentType==="application/x-www-form-urlencoded"&&(typeof bD.data==="string");if(bD.dataTypes[0]==="jsonp"||bD.jsonp!==false&&(u.test(bD.url)||bx&&u.test(bD.data))){var bB,bw=bD.jsonpCallback=b.isFunction(bD.jsonpCallback)?bD.jsonpCallback():bD.jsonpCallback,bz=bb[bw],e=bD.url,by=bD.data,bv="$1"+bw+"$2";if(bD.jsonp!==false){e=e.replace(u,bv);if(bD.url===e){if(bx){by=by.replace(u,bv)}if(bD.data===by){e+=(/\?/.test(e)?"&":"?")+bD.jsonp+"="+bw}}}bD.url=e;bD.data=by;bb[bw]=function(bE){bB=[bE]};bC.always(function(){bb[bw]=bz;if(bB&&b.isFunction(bz)){bb[bw](bB[0])}});bD.converters["script json"]=function(){if(!bB){b.error(bw+" was not called")}return bB[0]};bD.dataTypes[0]="json";return"script"}});b.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(e){b.globalEval(e);return e}}});b.ajaxPrefilter("script",function(e){if(e.cache===L){e.cache=false}if(e.crossDomain){e.type="GET";e.global=false}});b.ajaxTransport("script",function(bw){if(bw.crossDomain){var e,bv=av.head||av.getElementsByTagName("head")[0]||av.documentElement;return{send:function(bx,by){e=av.createElement("script");e.async="async";if(bw.scriptCharset){e.charset=bw.scriptCharset}e.src=bw.url;e.onload=e.onreadystatechange=function(bA,bz){if(bz||!e.readyState||/loaded|complete/.test(e.readyState)){e.onload=e.onreadystatechange=null;if(bv&&e.parentNode){bv.removeChild(e)}e=L;if(!bz){by(200,"success")}}};bv.insertBefore(e,bv.firstChild)},abort:function(){if(e){e.onload(0,1)}}}}});var B=bb.ActiveXObject?function(){for(var e in N){N[e](0,1)}}:false,y=0,N;function aL(){try{return new bb.XMLHttpRequest()}catch(bv){}}function aj(){try{return new bb.ActiveXObject("Microsoft.XMLHTTP")}catch(bv){}}b.ajaxSettings.xhr=bb.ActiveXObject?function(){return !this.isLocal&&aL()||aj()}:aL;(function(e){b.extend(b.support,{ajax:!!e,cors:!!e&&("withCredentials" in e)})})(b.ajaxSettings.xhr());if(b.support.ajax){b.ajaxTransport(function(e){if(!e.crossDomain||b.support.cors){var bv;return{send:function(bB,bw){var bA=e.xhr(),bz,by;if(e.username){bA.open(e.type,e.url,e.async,e.username,e.password)}else{bA.open(e.type,e.url,e.async)}if(e.xhrFields){for(by in e.xhrFields){bA[by]=e.xhrFields[by]}}if(e.mimeType&&bA.overrideMimeType){bA.overrideMimeType(e.mimeType)}if(!e.crossDomain&&!bB["X-Requested-With"]){bB["X-Requested-With"]="XMLHttpRequest"}try{for(by in bB){bA.setRequestHeader(by,bB[by])}}catch(bx){}bA.send((e.hasContent&&e.data)||null);bv=function(bK,bE){var bF,bD,bC,bI,bH;try{if(bv&&(bE||bA.readyState===4)){bv=L;if(bz){bA.onreadystatechange=b.noop;if(B){delete N[bz]}}if(bE){if(bA.readyState!==4){bA.abort()}}else{bF=bA.status;bC=bA.getAllResponseHeaders();bI={};bH=bA.responseXML;if(bH&&bH.documentElement){bI.xml=bH}bI.text=bA.responseText;try{bD=bA.statusText}catch(bJ){bD=""}if(!bF&&e.isLocal&&!e.crossDomain){bF=bI.text?200:404}else{if(bF===1223){bF=204}}}}}catch(bG){if(!bE){bw(-1,bG)}}if(bI){bw(bF,bD,bI,bC)}};if(!e.async||bA.readyState===4){bv()}else{bz=++y;if(B){if(!N){N={};b(bb).unload(B)}N[bz]=bv}bA.onreadystatechange=bv}},abort:function(){if(bv){bv(0,1)
-}}}}})}var Q={},a8,m,aB=/^(?:toggle|show|hide)$/,aT=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,a3,aH=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],a4;b.fn.extend({show:function(bx,bA,bz){var bw,by;if(bx||bx===0){return this.animate(a0("show",3),bx,bA,bz)}else{for(var bv=0,e=this.length;bv<e;bv++){bw=this[bv];if(bw.style){by=bw.style.display;if(!b._data(bw,"olddisplay")&&by==="none"){by=bw.style.display=""}if(by===""&&b.css(bw,"display")==="none"){b._data(bw,"olddisplay",x(bw.nodeName))}}}for(bv=0;bv<e;bv++){bw=this[bv];if(bw.style){by=bw.style.display;if(by===""||by==="none"){bw.style.display=b._data(bw,"olddisplay")||""}}}return this}},hide:function(bx,bA,bz){if(bx||bx===0){return this.animate(a0("hide",3),bx,bA,bz)}else{var bw,by,bv=0,e=this.length;for(;bv<e;bv++){bw=this[bv];if(bw.style){by=b.css(bw,"display");if(by!=="none"&&!b._data(bw,"olddisplay")){b._data(bw,"olddisplay",by)}}}for(bv=0;bv<e;bv++){if(this[bv].style){this[bv].style.display="none"}}return this}},_toggle:b.fn.toggle,toggle:function(bw,bv,bx){var e=typeof bw==="boolean";if(b.isFunction(bw)&&b.isFunction(bv)){this._toggle.apply(this,arguments)}else{if(bw==null||e){this.each(function(){var by=e?bw:b(this).is(":hidden");b(this)[by?"show":"hide"]()})}else{this.animate(a0("toggle",3),bw,bv,bx)}}return this},fadeTo:function(e,bx,bw,bv){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:bx},e,bw,bv)},animate:function(bz,bw,by,bx){var e=b.speed(bw,by,bx);if(b.isEmptyObject(bz)){return this.each(e.complete,[false])}bz=b.extend({},bz);function bv(){if(e.queue===false){b._mark(this)}var bE=b.extend({},e),bK=this.nodeType===1,bI=bK&&b(this).is(":hidden"),bB,bF,bD,bJ,bH,bC,bG,bL,bA;bE.animatedProperties={};for(bD in bz){bB=b.camelCase(bD);if(bD!==bB){bz[bB]=bz[bD];delete bz[bD]}bF=bz[bB];if(b.isArray(bF)){bE.animatedProperties[bB]=bF[1];bF=bz[bB]=bF[0]}else{bE.animatedProperties[bB]=bE.specialEasing&&bE.specialEasing[bB]||bE.easing||"swing"}if(bF==="hide"&&bI||bF==="show"&&!bI){return bE.complete.call(this)}if(bK&&(bB==="height"||bB==="width")){bE.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY];if(b.css(this,"display")==="inline"&&b.css(this,"float")==="none"){if(!b.support.inlineBlockNeedsLayout||x(this.nodeName)==="inline"){this.style.display="inline-block"}else{this.style.zoom=1}}}}if(bE.overflow!=null){this.style.overflow="hidden"}for(bD in bz){bJ=new b.fx(this,bE,bD);bF=bz[bD];if(aB.test(bF)){bA=b._data(this,"toggle"+bD)||(bF==="toggle"?bI?"show":"hide":0);if(bA){b._data(this,"toggle"+bD,bA==="show"?"hide":"show");bJ[bA]()}else{bJ[bF]()}}else{bH=aT.exec(bF);bC=bJ.cur();if(bH){bG=parseFloat(bH[2]);bL=bH[3]||(b.cssNumber[bD]?"":"px");if(bL!=="px"){b.style(this,bD,(bG||1)+bL);bC=((bG||1)/bJ.cur())*bC;b.style(this,bD,bC+bL)}if(bH[1]){bG=((bH[1]==="-="?-1:1)*bG)+bC}bJ.custom(bC,bG,bL)}else{bJ.custom(bC,bF,"")}}}return true}return e.queue===false?this.each(bv):this.queue(e.queue,bv)},stop:function(bw,bv,e){if(typeof bw!=="string"){e=bv;bv=bw;bw=L}if(bv&&bw!==false){this.queue(bw||"fx",[])}return this.each(function(){var bx,by=false,bA=b.timers,bz=b._data(this);if(!e){b._unmark(true,this)}function bB(bE,bF,bD){var bC=bF[bD];b.removeData(bE,bD,true);bC.stop(e)}if(bw==null){for(bx in bz){if(bz[bx]&&bz[bx].stop&&bx.indexOf(".run")===bx.length-4){bB(this,bz,bx)}}}else{if(bz[bx=bw+".run"]&&bz[bx].stop){bB(this,bz,bx)}}for(bx=bA.length;bx--;){if(bA[bx].elem===this&&(bw==null||bA[bx].queue===bw)){if(e){bA[bx](true)}else{bA[bx].saveState()}by=true;bA.splice(bx,1)}}if(!(e&&by)){b.dequeue(this,bw)}})}});function bh(){setTimeout(at,0);return(a4=b.now())}function at(){a4=L}function a0(bv,e){var bw={};b.each(aH.concat.apply([],aH.slice(0,e)),function(){bw[this]=bv});return bw}b.each({slideDown:a0("show",1),slideUp:a0("hide",1),slideToggle:a0("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,bv){b.fn[e]=function(bw,by,bx){return this.animate(bv,bw,by,bx)}});b.extend({speed:function(bw,bx,bv){var e=bw&&typeof bw==="object"?b.extend({},bw):{complete:bv||!bv&&bx||b.isFunction(bw)&&bw,duration:bw,easing:bv&&bx||bx&&!b.isFunction(bx)&&bx};e.duration=b.fx.off?0:typeof e.duration==="number"?e.duration:e.duration in b.fx.speeds?b.fx.speeds[e.duration]:b.fx.speeds._default;if(e.queue==null||e.queue===true){e.queue="fx"}e.old=e.complete;e.complete=function(by){if(b.isFunction(e.old)){e.old.call(this)}if(e.queue){b.dequeue(this,e.queue)}else{if(by!==false){b._unmark(this)}}};return e},easing:{linear:function(bw,bx,e,bv){return e+bv*bw},swing:function(bw,bx,e,bv){return((-Math.cos(bw*Math.PI)/2)+0.5)*bv+e}},timers:[],fx:function(bv,e,bw){this.options=e;this.elem=bv;this.prop=bw;e.orig=e.orig||{}}});b.fx.prototype={update:function(){if(this.options.step){this.options.step.call(this.elem,this.now,this)}(b.fx.step[this.prop]||b.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null)){return this.elem[this.prop]}var e,bv=b.css(this.elem,this.prop);return isNaN(e=parseFloat(bv))?!bv||bv==="auto"?0:bv:e},custom:function(bz,by,bx){var e=this,bw=b.fx;this.startTime=a4||bh();this.end=by;this.now=this.start=bz;this.pos=this.state=0;this.unit=bx||this.unit||(b.cssNumber[this.prop]?"":"px");function bv(bA){return e.step(bA)}bv.queue=this.options.queue;bv.elem=this.elem;bv.saveState=function(){if(e.options.hide&&b._data(e.elem,"fxshow"+e.prop)===L){b._data(e.elem,"fxshow"+e.prop,e.start)}};if(bv()&&b.timers.push(bv)&&!a3){a3=setInterval(bw.tick,bw.interval)}},show:function(){var e=b._data(this.elem,"fxshow"+this.prop);this.options.orig[this.prop]=e||b.style(this.elem,this.prop);this.options.show=true;if(e!==L){this.custom(this.cur(),e)}else{this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur())}b(this.elem).show()},hide:function(){this.options.orig[this.prop]=b._data(this.elem,"fxshow"+this.prop)||b.style(this.elem,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(by){var bA,bB,bv,bx=a4||bh(),e=true,bz=this.elem,bw=this.options;if(by||bx>=bw.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();bw.animatedProperties[this.prop]=true;for(bA in bw.animatedProperties){if(bw.animatedProperties[bA]!==true){e=false}}if(e){if(bw.overflow!=null&&!b.support.shrinkWrapBlocks){b.each(["","X","Y"],function(bC,bD){bz.style["overflow"+bD]=bw.overflow[bC]})}if(bw.hide){b(bz).hide()}if(bw.hide||bw.show){for(bA in bw.animatedProperties){b.style(bz,bA,bw.orig[bA]);b.removeData(bz,"fxshow"+bA,true);b.removeData(bz,"toggle"+bA,true)}}bv=bw.complete;if(bv){bw.complete=false;bv.call(bz)}}return false}else{if(bw.duration==Infinity){this.now=bx}else{bB=bx-this.startTime;this.state=bB/bw.duration;this.pos=b.easing[bw.animatedProperties[this.prop]](this.state,bB,0,1,bw.duration);this.now=this.start+((this.end-this.start)*this.pos)}this.update()}return true}};b.extend(b.fx,{tick:function(){var bw,bv=b.timers,e=0;for(;e<bv.length;e++){bw=bv[e];if(!bw()&&bv[e]===bw){bv.splice(e--,1)}}if(!bv.length){b.fx.stop()}},interval:13,stop:function(){clearInterval(a3);a3=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(e){b.style(e.elem,"opacity",e.now)},_default:function(e){if(e.elem.style&&e.elem.style[e.prop]!=null){e.elem.style[e.prop]=e.now+e.unit}else{e.elem[e.prop]=e.now}}}});b.each(["width","height"],function(e,bv){b.fx.step[bv]=function(bw){b.style(bw.elem,bv,Math.max(0,bw.now)+bw.unit)}});if(b.expr&&b.expr.filters){b.expr.filters.animated=function(e){return b.grep(b.timers,function(bv){return e===bv.elem}).length}}function x(bx){if(!Q[bx]){var e=av.body,bv=b("<"+bx+">").appendTo(e),bw=bv.css("display");bv.remove();if(bw==="none"||bw===""){if(!a8){a8=av.createElement("iframe");a8.frameBorder=a8.width=a8.height=0}e.appendChild(a8);if(!m||!a8.createElement){m=(a8.contentWindow||a8.contentDocument).document;m.write((av.compatMode==="CSS1Compat"?"<!doctype html>":"")+"<html><body>");m.close()}bv=m.createElement(bx);m.body.appendChild(bv);bw=b.css(bv,"display");e.removeChild(a8)}Q[bx]=bw}return Q[bx]}var V=/^t(?:able|d|h)$/i,ad=/^(?:body|html)$/i;if("getBoundingClientRect" in av.documentElement){b.fn.offset=function(bI){var by=this[0],bB;if(bI){return this.each(function(e){b.offset.setOffset(this,bI,e)})}if(!by||!by.ownerDocument){return null}if(by===by.ownerDocument.body){return b.offset.bodyOffset(by)}try{bB=by.getBoundingClientRect()}catch(bF){}var bH=by.ownerDocument,bw=bH.documentElement;if(!bB||!b.contains(bw,by)){return bB?{top:bB.top,left:bB.left}:{top:0,left:0}}var bC=bH.body,bD=aK(bH),bA=bw.clientTop||bC.clientTop||0,bE=bw.clientLeft||bC.clientLeft||0,bv=bD.pageYOffset||b.support.boxModel&&bw.scrollTop||bC.scrollTop,bz=bD.pageXOffset||b.support.boxModel&&bw.scrollLeft||bC.scrollLeft,bG=bB.top+bv-bA,bx=bB.left+bz-bE;return{top:bG,left:bx}}}else{b.fn.offset=function(bF){var bz=this[0];if(bF){return this.each(function(bG){b.offset.setOffset(this,bF,bG)})}if(!bz||!bz.ownerDocument){return null}if(bz===bz.ownerDocument.body){return b.offset.bodyOffset(bz)}var bC,bw=bz.offsetParent,bv=bz,bE=bz.ownerDocument,bx=bE.documentElement,bA=bE.body,bB=bE.defaultView,e=bB?bB.getComputedStyle(bz,null):bz.currentStyle,bD=bz.offsetTop,by=bz.offsetLeft;while((bz=bz.parentNode)&&bz!==bA&&bz!==bx){if(b.support.fixedPosition&&e.position==="fixed"){break}bC=bB?bB.getComputedStyle(bz,null):bz.currentStyle;bD-=bz.scrollTop;by-=bz.scrollLeft;if(bz===bw){bD+=bz.offsetTop;by+=bz.offsetLeft;if(b.support.doesNotAddBorder&&!(b.support.doesAddBorderForTableAndCells&&V.test(bz.nodeName))){bD+=parseFloat(bC.borderTopWidth)||0;by+=parseFloat(bC.borderLeftWidth)||0}bv=bw;bw=bz.offsetParent}if(b.support.subtractsBorderForOverflowNotVisible&&bC.overflow!=="visible"){bD+=parseFloat(bC.borderTopWidth)||0;by+=parseFloat(bC.borderLeftWidth)||0}e=bC}if(e.position==="relative"||e.position==="static"){bD+=bA.offsetTop;by+=bA.offsetLeft}if(b.support.fixedPosition&&e.position==="fixed"){bD+=Math.max(bx.scrollTop,bA.scrollTop);by+=Math.max(bx.scrollLeft,bA.scrollLeft)}return{top:bD,left:by}}}b.offset={bodyOffset:function(e){var bw=e.offsetTop,bv=e.offsetLeft;if(b.support.doesNotIncludeMarginInBodyOffset){bw+=parseFloat(b.css(e,"marginTop"))||0;bv+=parseFloat(b.css(e,"marginLeft"))||0}return{top:bw,left:bv}},setOffset:function(bx,bG,bA){var bB=b.css(bx,"position");if(bB==="static"){bx.style.position="relative"}var bz=b(bx),bv=bz.offset(),e=b.css(bx,"top"),bE=b.css(bx,"left"),bF=(bB==="absolute"||bB==="fixed")&&b.inArray("auto",[e,bE])>-1,bD={},bC={},bw,by;if(bF){bC=bz.position();bw=bC.top;by=bC.left}else{bw=parseFloat(e)||0;by=parseFloat(bE)||0}if(b.isFunction(bG)){bG=bG.call(bx,bA,bv)}if(bG.top!=null){bD.top=(bG.top-bv.top)+bw}if(bG.left!=null){bD.left=(bG.left-bv.left)+by}if("using" in bG){bG.using.call(bx,bD)}else{bz.css(bD)}}};b.fn.extend({position:function(){if(!this[0]){return null}var bw=this[0],bv=this.offsetParent(),bx=this.offset(),e=ad.test(bv[0].nodeName)?{top:0,left:0}:bv.offset();bx.top-=parseFloat(b.css(bw,"marginTop"))||0;bx.left-=parseFloat(b.css(bw,"marginLeft"))||0;e.top+=parseFloat(b.css(bv[0],"borderTopWidth"))||0;e.left+=parseFloat(b.css(bv[0],"borderLeftWidth"))||0;return{top:bx.top-e.top,left:bx.left-e.left}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||av.body;while(e&&(!ad.test(e.nodeName)&&b.css(e,"position")==="static")){e=e.offsetParent}return e})}});b.each(["Left","Top"],function(bv,e){var bw="scroll"+e;b.fn[bw]=function(bz){var bx,by;if(bz===L){bx=this[0];if(!bx){return null}by=aK(bx);return by?("pageXOffset" in by)?by[bv?"pageYOffset":"pageXOffset"]:b.support.boxModel&&by.document.documentElement[bw]||by.document.body[bw]:bx[bw]}return this.each(function(){by=aK(this);if(by){by.scrollTo(!bv?bz:b(by).scrollLeft(),bv?bz:b(by).scrollTop())}else{this[bw]=bz}})}});function aK(e){return b.isWindow(e)?e:e.nodeType===9?e.defaultView||e.parentWindow:false}b.each(["Height","Width"],function(bv,e){var bw=e.toLowerCase();b.fn["inner"+e]=function(){var bx=this[0];return bx?bx.style?parseFloat(b.css(bx,bw,"padding")):this[bw]():null};b.fn["outer"+e]=function(by){var bx=this[0];return bx?bx.style?parseFloat(b.css(bx,bw,by?"margin":"border")):this[bw]():null};b.fn[bw]=function(bz){var bA=this[0];if(!bA){return bz==null?null:this}if(b.isFunction(bz)){return this.each(function(bE){var bD=b(this);bD[bw](bz.call(this,bE,bD[bw]()))})}if(b.isWindow(bA)){var bB=bA.document.documentElement["client"+e],bx=bA.document.body;return bA.document.compatMode==="CSS1Compat"&&bB||bx&&bx["client"+e]||bB}else{if(bA.nodeType===9){return Math.max(bA.documentElement["client"+e],bA.body["scroll"+e],bA.documentElement["scroll"+e],bA.body["offset"+e],bA.documentElement["offset"+e])}else{if(bz===L){var bC=b.css(bA,bw),by=parseFloat(bC);return b.isNumeric(by)?by:bC}else{return this.css(bw,typeof bz==="string"?bz:bz+"px")}}}}});bb.jQuery=bb.$=b;if(typeof define==="function"&&define.amd&&define.amd.jQuery){define("jquery",[],function(){return b
-})}})(window);
-/*!
+(function(){var bH=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,bC="sizcache"+(Math.random()+"").replace(".",""),bI=0,bL=Object.prototype.toString,bB=false,bA=true,bK=/\\/g,bO=/\r\n/g,bQ=/\W/;[0,0].sort(function(){bA=false;return 0});var by=function(bV,e,bY,bZ){bY=bY||[];e=e||av;var b1=e;if(e.nodeType!==1&&e.nodeType!==9){return[]}if(!bV||typeof bV!=="string"){return bY}var bS,b3,b6,bR,b2,b5,b4,bX,bU=true,bT=by.isXML(e),bW=[],b0=bV;do{bH.exec("");bS=bH.exec(b0);if(bS){b0=bS[3];bW.push(bS[1]);if(bS[2]){bR=bS[3];break}}}while(bS);if(bW.length>1&&bD.exec(bV)){if(bW.length===2&&bE.relative[bW[0]]){b3=bM(bW[0]+bW[1],e,bZ)}else{b3=bE.relative[bW[0]]?[e]:by(bW.shift(),e);while(bW.length){bV=bW.shift();if(bE.relative[bV]){bV+=bW.shift()}b3=bM(bV,b3,bZ)}}}else{if(!bZ&&bW.length>1&&e.nodeType===9&&!bT&&bE.match.ID.test(bW[0])&&!bE.match.ID.test(bW[bW.length-1])){b2=by.find(bW.shift(),e,bT);e=b2.expr?by.filter(b2.expr,b2.set)[0]:b2.set[0]}if(e){b2=bZ?{expr:bW.pop(),set:bF(bZ)}:by.find(bW.pop(),bW.length===1&&(bW[0]==="~"||bW[0]==="+")&&e.parentNode?e.parentNode:e,bT);b3=b2.expr?by.filter(b2.expr,b2.set):b2.set;if(bW.length>0){b6=bF(b3)}else{bU=false}while(bW.length){b5=bW.pop();b4=b5;if(!bE.relative[b5]){b5=""}else{b4=bW.pop()}if(b4==null){b4=e}bE.relative[b5](b6,b4,bT)}}else{b6=bW=[]}}if(!b6){b6=b3}if(!b6){by.error(b5||bV)}if(bL.call(b6)==="[object Array]"){if(!bU){bY.push.apply(bY,b6)}else{if(e&&e.nodeType===1){for(bX=0;b6[bX]!=null;bX++){if(b6[bX]&&(b6[bX]===true||b6[bX].nodeType===1&&by.contains(e,b6[bX]))){bY.push(b3[bX])}}}else{for(bX=0;b6[bX]!=null;bX++){if(b6[bX]&&b6[bX].nodeType===1){bY.push(b3[bX])}}}}}else{bF(b6,bY)}if(bR){by(bR,b1,bY,bZ);by.uniqueSort(bY)}return bY};by.uniqueSort=function(bR){if(bJ){bB=bA;bR.sort(bJ);if(bB){for(var e=1;e<bR.length;e++){if(bR[e]===bR[e-1]){bR.splice(e--,1)}}}}return bR};by.matches=function(e,bR){return by(e,null,null,bR)};by.matchesSelector=function(e,bR){return by(bR,null,null,[e]).length>0};by.find=function(bX,e,bY){var bW,bS,bU,bT,bV,bR;if(!bX){return[]}for(bS=0,bU=bE.order.length;bS<bU;bS++){bV=bE.order[bS];if((bT=bE.leftMatch[bV].exec(bX))){bR=bT[1];bT.splice(1,1);if(bR.substr(bR.length-1)!=="\\"){bT[1]=(bT[1]||"").replace(bK,"");bW=bE.find[bV](bT,e,bY);if(bW!=null){bX=bX.replace(bE.match[bV],"");break}}}}if(!bW){bW=typeof e.getElementsByTagName!=="undefined"?e.getElementsByTagName("*"):[]}return{set:bW,expr:bX}};by.filter=function(b1,b0,b4,bU){var bW,e,bZ,b6,b3,bR,bT,bV,b2,bS=b1,b5=[],bY=b0,bX=b0&&b0[0]&&by.isXML(b0[0]);while(b1&&b0.length){for(bZ in bE.filter){if((bW=bE.leftMatch[bZ].exec(b1))!=null&&bW[2]){bR=bE.filter[bZ];bT=bW[1];e=false;bW.splice(1,1);if(bT.substr(bT.length-1)==="\\"){continue}if(bY===b5){b5=[]}if(bE.preFilter[bZ]){bW=bE.preFilter[bZ](bW,bY,b4,b5,bU,bX);if(!bW){e=b6=true}else{if(bW===true){continue}}}if(bW){for(bV=0;(b3=bY[bV])!=null;bV++){if(b3){b6=bR(b3,bW,bV,bY);b2=bU^b6;if(b4&&b6!=null){if(b2){e=true}else{bY[bV]=false}}else{if(b2){b5.push(b3);e=true}}}}}if(b6!==L){if(!b4){bY=b5}b1=b1.replace(bE.match[bZ],"");if(!e){return[]}break}}}if(b1===bS){if(e==null){by.error(b1)}else{break}}bS=b1}return bY};by.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)};var bw=by.getText=function(bU){var bS,bT,e=bU.nodeType,bR="";if(e){if(e===1||e===9){if(typeof bU.textContent==="string"){return bU.textContent}else{if(typeof bU.innerText==="string"){return bU.innerText.replace(bO,"")}else{for(bU=bU.firstChild;bU;bU=bU.nextSibling){bR+=bw(bU)}}}}else{if(e===3||e===4){return bU.nodeValue}}}else{for(bS=0;(bT=bU[bS]);bS++){if(bT.nodeType!==8){bR+=bw(bT)}}}return bR};var bE=by.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(e){return e.getAttribute("href")},type:function(e){return e.getAttribute("type")}},relative:{"+":function(bW,bR){var bT=typeof bR==="string",bV=bT&&!bQ.test(bR),bX=bT&&!bV;if(bV){bR=bR.toLowerCase()}for(var bS=0,e=bW.length,bU;bS<e;bS++){if((bU=bW[bS])){while((bU=bU.previousSibling)&&bU.nodeType!==1){}bW[bS]=bX||bU&&bU.nodeName.toLowerCase()===bR?bU||false:bU===bR}}if(bX){by.filter(bR,bW,true)}},">":function(bW,bR){var bV,bU=typeof bR==="string",bS=0,e=bW.length;if(bU&&!bQ.test(bR)){bR=bR.toLowerCase();for(;bS<e;bS++){bV=bW[bS];if(bV){var bT=bV.parentNode;bW[bS]=bT.nodeName.toLowerCase()===bR?bT:false}}}else{for(;bS<e;bS++){bV=bW[bS];if(bV){bW[bS]=bU?bV.parentNode:bV.parentNode===bR}}if(bU){by.filter(bR,bW,true)}}},"":function(bT,bR,bV){var bU,bS=bI++,e=bN;if(typeof bR==="string"&&!bQ.test(bR)){bR=bR.toLowerCase();bU=bR;e=bv}e("parentNode",bR,bS,bT,bU,bV)},"~":function(bT,bR,bV){var bU,bS=bI++,e=bN;if(typeof bR==="string"&&!bQ.test(bR)){bR=bR.toLowerCase();bU=bR;e=bv}e("previousSibling",bR,bS,bT,bU,bV)}},find:{ID:function(bR,bS,bT){if(typeof bS.getElementById!=="undefined"&&!bT){var e=bS.getElementById(bR[1]);return e&&e.parentNode?[e]:[]}},NAME:function(bS,bV){if(typeof bV.getElementsByName!=="undefined"){var bR=[],bU=bV.getElementsByName(bS[1]);for(var bT=0,e=bU.length;bT<e;bT++){if(bU[bT].getAttribute("name")===bS[1]){bR.push(bU[bT])}}return bR.length===0?null:bR}},TAG:function(e,bR){if(typeof bR.getElementsByTagName!=="undefined"){return bR.getElementsByTagName(e[1])}}},preFilter:{CLASS:function(bT,bR,bS,e,bW,bX){bT=" "+bT[1].replace(bK,"")+" ";if(bX){return bT}for(var bU=0,bV;(bV=bR[bU])!=null;bU++){if(bV){if(bW^(bV.className&&(" "+bV.className+" ").replace(/[\t\n\r]/g," ").indexOf(bT)>=0)){if(!bS){e.push(bV)}}else{if(bS){bR[bU]=false}}}}return false},ID:function(e){return e[1].replace(bK,"")},TAG:function(bR,e){return bR[1].replace(bK,"").toLowerCase()},CHILD:function(e){if(e[1]==="nth"){if(!e[2]){by.error(e[0])}e[2]=e[2].replace(/^\+|\s*/g,"");var bR=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(e[2]==="even"&&"2n"||e[2]==="odd"&&"2n+1"||!/\D/.test(e[2])&&"0n+"+e[2]||e[2]);e[2]=(bR[1]+(bR[2]||1))-0;e[3]=bR[3]-0}else{if(e[2]){by.error(e[0])}}e[0]=bI++;return e},ATTR:function(bU,bR,bS,e,bV,bW){var bT=bU[1]=bU[1].replace(bK,"");if(!bW&&bE.attrMap[bT]){bU[1]=bE.attrMap[bT]}bU[4]=(bU[4]||bU[5]||"").replace(bK,"");if(bU[2]==="~="){bU[4]=" "+bU[4]+" "}return bU},PSEUDO:function(bU,bR,bS,e,bV){if(bU[1]==="not"){if((bH.exec(bU[3])||"").length>1||/^\w/.test(bU[3])){bU[3]=by(bU[3],null,null,bR)}else{var bT=by.filter(bU[3],bR,bS,true^bV);if(!bS){e.push.apply(e,bT)}return false}}else{if(bE.match.POS.test(bU[0])||bE.match.CHILD.test(bU[0])){return true}}return bU},POS:function(e){e.unshift(true);return e}},filters:{enabled:function(e){return e.disabled===false&&e.type!=="hidden"},disabled:function(e){return e.disabled===true},checked:function(e){return e.checked===true},selected:function(e){if(e.parentNode){e.parentNode.selectedIndex}return e.selected===true},parent:function(e){return !!e.firstChild},empty:function(e){return !e.firstChild},has:function(bS,bR,e){return !!by(e[3],bS).length},header:function(e){return(/h\d/i).test(e.nodeName)},text:function(bS){var e=bS.getAttribute("type"),bR=bS.type;return bS.nodeName.toLowerCase()==="input"&&"text"===bR&&(e===bR||e===null)},radio:function(e){return e.nodeName.toLowerCase()==="input"&&"radio"===e.type},checkbox:function(e){return e.nodeName.toLowerCase()==="input"&&"checkbox"===e.type},file:function(e){return e.nodeName.toLowerCase()==="input"&&"file"===e.type},password:function(e){return e.nodeName.toLowerCase()==="input"&&"password"===e.type},submit:function(bR){var e=bR.nodeName.toLowerCase();return(e==="input"||e==="button")&&"submit"===bR.type},image:function(e){return e.nodeName.toLowerCase()==="input"&&"image"===e.type},reset:function(bR){var e=bR.nodeName.toLowerCase();return(e==="input"||e==="button")&&"reset"===bR.type},button:function(bR){var e=bR.nodeName.toLowerCase();return e==="input"&&"button"===bR.type||e==="button"},input:function(e){return(/input|select|textarea|button/i).test(e.nodeName)},focus:function(e){return e===e.ownerDocument.activeElement}},setFilters:{first:function(bR,e){return e===0},last:function(bS,bR,e,bT){return bR===bT.length-1},even:function(bR,e){return e%2===0},odd:function(bR,e){return e%2===1},lt:function(bS,bR,e){return bR<e[3]-0},gt:function(bS,bR,e){return bR>e[3]-0},nth:function(bS,bR,e){return e[3]-0===bR},eq:function(bS,bR,e){return e[3]-0===bR}},filter:{PSEUDO:function(bS,bX,bW,bY){var e=bX[1],bR=bE.filters[e];if(bR){return bR(bS,bW,bX,bY)}else{if(e==="contains"){return(bS.textContent||bS.innerText||bw([bS])||"").indexOf(bX[3])>=0}else{if(e==="not"){var bT=bX[3];for(var bV=0,bU=bT.length;bV<bU;bV++){if(bT[bV]===bS){return false}}return true}else{by.error(e)}}}},CHILD:function(bS,bU){var bT,b0,bW,bZ,e,bV,bY,bX=bU[1],bR=bS;switch(bX){case"only":case"first":while((bR=bR.previousSibling)){if(bR.nodeType===1){return false}}if(bX==="first"){return true}bR=bS;case"last":while((bR=bR.nextSibling)){if(bR.nodeType===1){return false}}return true;case"nth":bT=bU[2];b0=bU[3];if(bT===1&&b0===0){return true}bW=bU[0];bZ=bS.parentNode;if(bZ&&(bZ[bC]!==bW||!bS.nodeIndex)){bV=0;for(bR=bZ.firstChild;bR;bR=bR.nextSibling){if(bR.nodeType===1){bR.nodeIndex=++bV}}bZ[bC]=bW}bY=bS.nodeIndex-b0;if(bT===0){return bY===0}else{return(bY%bT===0&&bY/bT>=0)}}},ID:function(bR,e){return bR.nodeType===1&&bR.getAttribute("id")===e},TAG:function(bR,e){return(e==="*"&&bR.nodeType===1)||!!bR.nodeName&&bR.nodeName.toLowerCase()===e},CLASS:function(bR,e){return(" "+(bR.className||bR.getAttribute("class"))+" ").indexOf(e)>-1},ATTR:function(bV,bT){var bS=bT[1],e=by.attr?by.attr(bV,bS):bE.attrHandle[bS]?bE.attrHandle[bS](bV):bV[bS]!=null?bV[bS]:bV.getAttribute(bS),bW=e+"",bU=bT[2],bR=bT[4];return e==null?bU==="!=":!bU&&by.attr?e!=null:bU==="="?bW===bR:bU==="*="?bW.indexOf(bR)>=0:bU==="~="?(" "+bW+" ").indexOf(bR)>=0:!bR?bW&&e!==false:bU==="!="?bW!==bR:bU==="^="?bW.indexOf(bR)===0:bU==="$="?bW.substr(bW.length-bR.length)===bR:bU==="|="?bW===bR||bW.substr(0,bR.length+1)===bR+"-":false},POS:function(bU,bR,bS,bV){var e=bR[2],bT=bE.setFilters[e];if(bT){return bT(bU,bS,bR,bV)}}}};var bD=bE.match.POS,bx=function(bR,e){return"\\"+(e-0+1)};for(var bz in bE.match){bE.match[bz]=new RegExp(bE.match[bz].source+(/(?![^\[]*\])(?![^\(]*\))/.source));bE.leftMatch[bz]=new RegExp(/(^(?:.|\r|\n)*?)/.source+bE.match[bz].source.replace(/\\(\d+)/g,bx))}var bF=function(bR,e){bR=Array.prototype.slice.call(bR,0);if(e){e.push.apply(e,bR);return e}return bR};try{Array.prototype.slice.call(av.documentElement.childNodes,0)[0].nodeType}catch(bP){bF=function(bU,bT){var bS=0,bR=bT||[];if(bL.call(bU)==="[object Array]"){Array.prototype.push.apply(bR,bU)}else{if(typeof bU.length==="number"){for(var e=bU.length;bS<e;bS++){bR.push(bU[bS])}}else{for(;bU[bS];bS++){bR.push(bU[bS])}}}return bR}}var bJ,bG;if(av.documentElement.compareDocumentPosition){bJ=function(bR,e){if(bR===e){bB=true;return 0}if(!bR.compareDocumentPosition||!e.compareDocumentPosition){return bR.compareDocumentPosition?-1:1}return bR.compareDocumentPosition(e)&4?-1:1}}else{bJ=function(bY,bX){if(bY===bX){bB=true;return 0}else{if(bY.sourceIndex&&bX.sourceIndex){return bY.sourceIndex-bX.sourceIndex}}var bV,bR,bS=[],e=[],bU=bY.parentNode,bW=bX.parentNode,bZ=bU;if(bU===bW){return bG(bY,bX)}else{if(!bU){return -1}else{if(!bW){return 1}}}while(bZ){bS.unshift(bZ);bZ=bZ.parentNode}bZ=bW;while(bZ){e.unshift(bZ);bZ=bZ.parentNode}bV=bS.length;bR=e.length;for(var bT=0;bT<bV&&bT<bR;bT++){if(bS[bT]!==e[bT]){return bG(bS[bT],e[bT])}}return bT===bV?bG(bY,e[bT],-1):bG(bS[bT],bX,1)};bG=function(bR,e,bS){if(bR===e){return bS}var bT=bR.nextSibling;while(bT){if(bT===e){return -1}bT=bT.nextSibling}return 1}}(function(){var bR=av.createElement("div"),bS="script"+(new Date()).getTime(),e=av.documentElement;bR.innerHTML="<a name='"+bS+"'/>";e.insertBefore(bR,e.firstChild);if(av.getElementById(bS)){bE.find.ID=function(bU,bV,bW){if(typeof bV.getElementById!=="undefined"&&!bW){var bT=bV.getElementById(bU[1]);return bT?bT.id===bU[1]||typeof bT.getAttributeNode!=="undefined"&&bT.getAttributeNode("id").nodeValue===bU[1]?[bT]:L:[]}};bE.filter.ID=function(bV,bT){var bU=typeof bV.getAttributeNode!=="undefined"&&bV.getAttributeNode("id");return bV.nodeType===1&&bU&&bU.nodeValue===bT}}e.removeChild(bR);e=bR=null})();(function(){var e=av.createElement("div");e.appendChild(av.createComment(""));if(e.getElementsByTagName("*").length>0){bE.find.TAG=function(bR,bV){var bU=bV.getElementsByTagName(bR[1]);if(bR[1]==="*"){var bT=[];for(var bS=0;bU[bS];bS++){if(bU[bS].nodeType===1){bT.push(bU[bS])}}bU=bT}return bU}}e.innerHTML="<a href='#'></a>";if(e.firstChild&&typeof e.firstChild.getAttribute!=="undefined"&&e.firstChild.getAttribute("href")!=="#"){bE.attrHandle.href=function(bR){return bR.getAttribute("href",2)}}e=null})();if(av.querySelectorAll){(function(){var e=by,bT=av.createElement("div"),bS="__sizzle__";bT.innerHTML="<p class='TEST'></p>";if(bT.querySelectorAll&&bT.querySelectorAll(".TEST").length===0){return}by=function(b4,bV,bZ,b3){bV=bV||av;if(!b3&&!by.isXML(bV)){var b2=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b4);if(b2&&(bV.nodeType===1||bV.nodeType===9)){if(b2[1]){return bF(bV.getElementsByTagName(b4),bZ)}else{if(b2[2]&&bE.find.CLASS&&bV.getElementsByClassName){return bF(bV.getElementsByClassName(b2[2]),bZ)}}}if(bV.nodeType===9){if(b4==="body"&&bV.body){return bF([bV.body],bZ)}else{if(b2&&b2[3]){var bY=bV.getElementById(b2[3]);if(bY&&bY.parentNode){if(bY.id===b2[3]){return bF([bY],bZ)}}else{return bF([],bZ)}}}try{return bF(bV.querySelectorAll(b4),bZ)}catch(b0){}}else{if(bV.nodeType===1&&bV.nodeName.toLowerCase()!=="object"){var bW=bV,bX=bV.getAttribute("id"),bU=bX||bS,b6=bV.parentNode,b5=/^\s*[+~]/.test(b4);if(!bX){bV.setAttribute("id",bU)}else{bU=bU.replace(/'/g,"\\$&")}if(b5&&b6){bV=bV.parentNode}try{if(!b5||b6){return bF(bV.querySelectorAll("[id='"+bU+"'] "+b4),bZ)}}catch(b1){}finally{if(!bX){bW.removeAttribute("id")}}}}}return e(b4,bV,bZ,b3)};for(var bR in e){by[bR]=e[bR]}bT=null})()}(function(){var e=av.documentElement,bS=e.matchesSelector||e.mozMatchesSelector||e.webkitMatchesSelector||e.msMatchesSelector;if(bS){var bU=!bS.call(av.createElement("div"),"div"),bR=false;try{bS.call(av.documentElement,"[test!='']:sizzle")}catch(bT){bR=true}by.matchesSelector=function(bW,bY){bY=bY.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!by.isXML(bW)){try{if(bR||!bE.match.PSEUDO.test(bY)&&!/!=/.test(bY)){var bV=bS.call(bW,bY);if(bV||!bU||bW.document&&bW.document.nodeType!==11){return bV}}}catch(bX){}}return by(bY,null,null,[bW]).length>0}}})();(function(){var e=av.createElement("div");e.innerHTML="<div class='test e'></div><div class='test'></div>";if(!e.getElementsByClassName||e.getElementsByClassName("e").length===0){return}e.lastChild.className="e";if(e.getElementsByClassName("e").length===1){return}bE.order.splice(1,0,"CLASS");bE.find.CLASS=function(bR,bS,bT){if(typeof bS.getElementsByClassName!=="undefined"&&!bT){return bS.getElementsByClassName(bR[1])}};e=null})();function bv(bR,bW,bV,bZ,bX,bY){for(var bT=0,bS=bZ.length;bT<bS;bT++){var e=bZ[bT];if(e){var bU=false;e=e[bR];while(e){if(e[bC]===bV){bU=bZ[e.sizset];break}if(e.nodeType===1&&!bY){e[bC]=bV;e.sizset=bT}if(e.nodeName.toLowerCase()===bW){bU=e;break}e=e[bR]}bZ[bT]=bU}}}function bN(bR,bW,bV,bZ,bX,bY){for(var bT=0,bS=bZ.length;bT<bS;bT++){var e=bZ[bT];if(e){var bU=false;e=e[bR];while(e){if(e[bC]===bV){bU=bZ[e.sizset];break}if(e.nodeType===1){if(!bY){e[bC]=bV;e.sizset=bT}if(typeof bW!=="string"){if(e===bW){bU=true;break}}else{if(by.filter(bW,[e]).length>0){bU=e;break}}}e=e[bR]}bZ[bT]=bU}}}if(av.documentElement.contains){by.contains=function(bR,e){return bR!==e&&(bR.contains?bR.contains(e):true)}}else{if(av.documentElement.compareDocumentPosition){by.contains=function(bR,e){return !!(bR.compareDocumentPosition(e)&16)}}else{by.contains=function(){return false}}}by.isXML=function(e){var bR=(e?e.ownerDocument||e:0).documentElement;return bR?bR.nodeName!=="HTML":false};var bM=function(bS,e,bW){var bV,bX=[],bU="",bY=e.nodeType?[e]:e;while((bV=bE.match.PSEUDO.exec(bS))){bU+=bV[0];bS=bS.replace(bE.match.PSEUDO,"")}bS=bE.relative[bS]?bS+"*":bS;for(var bT=0,bR=bY.length;bT<bR;bT++){by(bS,bY[bT],bX,bW)}return by.filter(bU,bX)};by.attr=b.attr;by.selectors.attrMap={};b.find=by;b.expr=by.selectors;b.expr[":"]=b.expr.filters;b.unique=by.uniqueSort;b.text=by.getText;b.isXMLDoc=by.isXML;b.contains=by.contains})();var ab=/Until$/,aq=/^(?:parents|prevUntil|prevAll)/,a9=/,/,bp=/^.[^:#\[\.,]*$/,P=Array.prototype.slice,H=b.expr.match.POS,ay={children:true,contents:true,next:true,prev:true};b.fn.extend({find:function(e){var bw=this,by,bv;if(typeof e!=="string"){return b(e).filter(function(){for(by=0,bv=bw.length;by<bv;by++){if(b.contains(bw[by],this)){return true}}})}var bx=this.pushStack("","find",e),bA,bB,bz;for(by=0,bv=this.length;by<bv;by++){bA=bx.length;b.find(e,this[by],bx);if(by>0){for(bB=bA;bB<bx.length;bB++){for(bz=0;bz<bA;bz++){if(bx[bz]===bx[bB]){bx.splice(bB--,1);break}}}}}return bx},has:function(bv){var e=b(bv);return this.filter(function(){for(var bx=0,bw=e.length;bx<bw;bx++){if(b.contains(this,e[bx])){return true}}})},not:function(e){return this.pushStack(aG(this,e,false),"not",e)},filter:function(e){return this.pushStack(aG(this,e,true),"filter",e)},is:function(e){return !!e&&(typeof e==="string"?H.test(e)?b(e,this.context).index(this[0])>=0:b.filter(e,this).length>0:this.filter(e).length>0)},closest:function(by,bx){var bv=[],bw,e,bz=this[0];if(b.isArray(by)){var bB=1;while(bz&&bz.ownerDocument&&bz!==bx){for(bw=0;bw<by.length;bw++){if(b(bz).is(by[bw])){bv.push({selector:by[bw],elem:bz,level:bB})}}bz=bz.parentNode;bB++}return bv}var bA=H.test(by)||typeof by!=="string"?b(by,bx||this.context):0;for(bw=0,e=this.length;bw<e;bw++){bz=this[bw];while(bz){if(bA?bA.index(bz)>-1:b.find.matchesSelector(bz,by)){bv.push(bz);break}else{bz=bz.parentNode;if(!bz||!bz.ownerDocument||bz===bx||bz.nodeType===11){break}}}}bv=bv.length>1?b.unique(bv):bv;return this.pushStack(bv,"closest",by)},index:function(e){if(!e){return(this[0]&&this[0].parentNode)?this.prevAll().length:-1}if(typeof e==="string"){return b.inArray(this[0],b(e))}return b.inArray(e.jquery?e[0]:e,this)},add:function(e,bv){var bx=typeof e==="string"?b(e,bv):b.makeArray(e&&e.nodeType?[e]:e),bw=b.merge(this.get(),bx);return this.pushStack(C(bx[0])||C(bw[0])?bw:b.unique(bw))},andSelf:function(){return this.add(this.prevObject)}});function C(e){return !e||!e.parentNode||e.parentNode.nodeType===11}b.each({parent:function(bv){var e=bv.parentNode;return e&&e.nodeType!==11?e:null},parents:function(e){return b.dir(e,"parentNode")},parentsUntil:function(bv,e,bw){return b.dir(bv,"parentNode",bw)},next:function(e){return b.nth(e,2,"nextSibling")},prev:function(e){return b.nth(e,2,"previousSibling")},nextAll:function(e){return b.dir(e,"nextSibling")},prevAll:function(e){return b.dir(e,"previousSibling")},nextUntil:function(bv,e,bw){return b.dir(bv,"nextSibling",bw)},prevUntil:function(bv,e,bw){return b.dir(bv,"previousSibling",bw)},siblings:function(e){return b.sibling(e.parentNode.firstChild,e)},children:function(e){return b.sibling(e.firstChild)},contents:function(e){return b.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:b.makeArray(e.childNodes)}},function(e,bv){b.fn[e]=function(by,bw){var bx=b.map(this,bv,by);if(!ab.test(e)){bw=by}if(bw&&typeof bw==="string"){bx=b.filter(bw,bx)}bx=this.length>1&&!ay[e]?b.unique(bx):bx;if((this.length>1||a9.test(bw))&&aq.test(e)){bx=bx.reverse()}return this.pushStack(bx,e,P.call(arguments).join(","))}});b.extend({filter:function(bw,e,bv){if(bv){bw=":not("+bw+")"}return e.length===1?b.find.matchesSelector(e[0],bw)?[e[0]]:[]:b.find.matches(bw,e)},dir:function(bw,bv,by){var e=[],bx=bw[bv];while(bx&&bx.nodeType!==9&&(by===L||bx.nodeType!==1||!b(bx).is(by))){if(bx.nodeType===1){e.push(bx)}bx=bx[bv]}return e},nth:function(by,e,bw,bx){e=e||1;var bv=0;for(;by;by=by[bw]){if(by.nodeType===1&&++bv===e){break}}return by},sibling:function(bw,bv){var e=[];for(;bw;bw=bw.nextSibling){if(bw.nodeType===1&&bw!==bv){e.push(bw)}}return e}});function aG(bx,bw,e){bw=bw||0;if(b.isFunction(bw)){return b.grep(bx,function(bz,by){var bA=!!bw.call(bz,by,bz);return bA===e})}else{if(bw.nodeType){return b.grep(bx,function(bz,by){return(bz===bw)===e})}else{if(typeof bw==="string"){var bv=b.grep(bx,function(by){return by.nodeType===1});if(bp.test(bw)){return b.filter(bw,bv,!e)}else{bw=b.filter(bw,bv)}}}}return b.grep(bx,function(bz,by){return(b.inArray(bz,bw)>=0)===e})}function a(e){var bw=aR.split("|"),bv=e.createDocumentFragment();if(bv.createElement){while(bw.length){bv.createElement(bw.pop())}}return bv}var aR="abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",ag=/ jQuery\d+="(?:\d+|null)"/g,ar=/^\s+/,R=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,d=/<([\w:]+)/,w=/<tbody/i,W=/<|&#?\w+;/,ae=/<(?:script|style)/i,O=/<(?:script|object|embed|option|style)/i,ah=new RegExp("<(?:"+aR+")","i"),o=/checked\s*(?:[^=]|=\s*.checked.)/i,bm=/\/(java|ecma)script/i,aN=/^\s*<!(?:\[CDATA\[|\-\-)/,ax={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]},ac=a(av);ax.optgroup=ax.option;ax.tbody=ax.tfoot=ax.colgroup=ax.caption=ax.thead;ax.th=ax.td;if(!b.support.htmlSerialize){ax._default=[1,"div<div>","</div>"]}b.fn.extend({text:function(e){if(b.isFunction(e)){return this.each(function(bw){var bv=b(this);bv.text(e.call(this,bw,bv.text()))})}if(typeof e!=="object"&&e!==L){return this.empty().append((this[0]&&this[0].ownerDocument||av).createTextNode(e))}return b.text(this)},wrapAll:function(e){if(b.isFunction(e)){return this.each(function(bw){b(this).wrapAll(e.call(this,bw))})}if(this[0]){var bv=b(e,this[0].ownerDocument).eq(0).clone(true);if(this[0].parentNode){bv.insertBefore(this[0])}bv.map(function(){var bw=this;while(bw.firstChild&&bw.firstChild.nodeType===1){bw=bw.firstChild}return bw}).append(this)}return this},wrapInner:function(e){if(b.isFunction(e)){return this.each(function(bv){b(this).wrapInner(e.call(this,bv))})}return this.each(function(){var bv=b(this),bw=bv.contents();if(bw.length){bw.wrapAll(e)}else{bv.append(e)}})},wrap:function(e){var bv=b.isFunction(e);return this.each(function(bw){b(this).wrapAll(bv?e.call(this,bw):e)})},unwrap:function(){return this.parent().each(function(){if(!b.nodeName(this,"body")){b(this).replaceWith(this.childNodes)}}).end()},append:function(){return this.domManip(arguments,true,function(e){if(this.nodeType===1){this.appendChild(e)}})},prepend:function(){return this.domManip(arguments,true,function(e){if(this.nodeType===1){this.insertBefore(e,this.firstChild)}})},before:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(bv){this.parentNode.insertBefore(bv,this)})}else{if(arguments.length){var e=b.clean(arguments);e.push.apply(e,this.toArray());return this.pushStack(e,"before",arguments)}}},after:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(bv){this.parentNode.insertBefore(bv,this.nextSibling)})}else{if(arguments.length){var e=this.pushStack(this,"after",arguments);e.push.apply(e,b.clean(arguments));return e}}},remove:function(e,bx){for(var bv=0,bw;(bw=this[bv])!=null;bv++){if(!e||b.filter(e,[bw]).length){if(!bx&&bw.nodeType===1){b.cleanData(bw.getElementsByTagName("*"));b.cleanData([bw])}if(bw.parentNode){bw.parentNode.removeChild(bw)}}}return this},empty:function(){for(var e=0,bv;(bv=this[e])!=null;e++){if(bv.nodeType===1){b.cleanData(bv.getElementsByTagName("*"))}while(bv.firstChild){bv.removeChild(bv.firstChild)}}return this},clone:function(bv,e){bv=bv==null?false:bv;e=e==null?bv:e;return this.map(function(){return b.clone(this,bv,e)})},html:function(bx){if(bx===L){return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(ag,""):null}else{if(typeof bx==="string"&&!ae.test(bx)&&(b.support.leadingWhitespace||!ar.test(bx))&&!ax[(d.exec(bx)||["",""])[1].toLowerCase()]){bx=bx.replace(R,"<$1></$2>");try{for(var bw=0,bv=this.length;bw<bv;bw++){if(this[bw].nodeType===1){b.cleanData(this[bw].getElementsByTagName("*"));this[bw].innerHTML=bx}}}catch(by){this.empty().append(bx)}}else{if(b.isFunction(bx)){this.each(function(bz){var e=b(this);e.html(bx.call(this,bz,e.html()))})}else{this.empty().append(bx)}}}return this},replaceWith:function(e){if(this[0]&&this[0].parentNode){if(b.isFunction(e)){return this.each(function(bx){var bw=b(this),bv=bw.html();bw.replaceWith(e.call(this,bx,bv))})}if(typeof e!=="string"){e=b(e).detach()}return this.each(function(){var bw=this.nextSibling,bv=this.parentNode;b(this).remove();if(bw){b(bw).before(e)}else{b(bv).append(e)}})}else{return this.length?this.pushStack(b(b.isFunction(e)?e():e),"replaceWith",e):this}},detach:function(e){return this.remove(e,true)},domManip:function(bB,bF,bE){var bx,by,bA,bD,bC=bB[0],bv=[];if(!b.support.checkClone&&arguments.length===3&&typeof bC==="string"&&o.test(bC)){return this.each(function(){b(this).domManip(bB,bF,bE,true)})}if(b.isFunction(bC)){return this.each(function(bH){var bG=b(this);bB[0]=bC.call(this,bH,bF?bG.html():L);bG.domManip(bB,bF,bE)})}if(this[0]){bD=bC&&bC.parentNode;if(b.support.parentNode&&bD&&bD.nodeType===11&&bD.childNodes.length===this.length){bx={fragment:bD}}else{bx=b.buildFragment(bB,this,bv)}bA=bx.fragment;if(bA.childNodes.length===1){by=bA=bA.firstChild}else{by=bA.firstChild}if(by){bF=bF&&b.nodeName(by,"tr");for(var bw=0,e=this.length,bz=e-1;bw<e;bw++){bE.call(bF?ba(this[bw],by):this[bw],bx.cacheable||(e>1&&bw<bz)?b.clone(bA,true,true):bA)}}if(bv.length){b.each(bv,bo)}}return this}});function ba(e,bv){return b.nodeName(e,"table")?(e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody"))):e}function t(bB,bv){if(bv.nodeType!==1||!b.hasData(bB)){return}var by,bx,e,bA=b._data(bB),bz=b._data(bv,bA),bw=bA.events;if(bw){delete bz.handle;bz.events={};for(by in bw){for(bx=0,e=bw[by].length;bx<e;bx++){b.event.add(bv,by+(bw[by][bx].namespace?".":"")+bw[by][bx].namespace,bw[by][bx],bw[by][bx].data)}}}if(bz.data){bz.data=b.extend({},bz.data)}}function ai(bv,e){var bw;if(e.nodeType!==1){return}if(e.clearAttributes){e.clearAttributes()}if(e.mergeAttributes){e.mergeAttributes(bv)}bw=e.nodeName.toLowerCase();if(bw==="object"){e.outerHTML=bv.outerHTML}else{if(bw==="input"&&(bv.type==="checkbox"||bv.type==="radio")){if(bv.checked){e.defaultChecked=e.checked=bv.checked}if(e.value!==bv.value){e.value=bv.value}}else{if(bw==="option"){e.selected=bv.defaultSelected}else{if(bw==="input"||bw==="textarea"){e.defaultValue=bv.defaultValue}}}}e.removeAttribute(b.expando)}b.buildFragment=function(bz,bx,bv){var by,e,bw,bA,bB=bz[0];if(bx&&bx[0]){bA=bx[0].ownerDocument||bx[0]}if(!bA.createDocumentFragment){bA=av}if(bz.length===1&&typeof bB==="string"&&bB.length<512&&bA===av&&bB.charAt(0)==="<"&&!O.test(bB)&&(b.support.checkClone||!o.test(bB))&&(b.support.html5Clone||!ah.test(bB))){e=true;bw=b.fragments[bB];if(bw&&bw!==1){by=bw}}if(!by){by=bA.createDocumentFragment();b.clean(bz,bA,by,bv)}if(e){b.fragments[bB]=bw?by:1}return{fragment:by,cacheable:e}};b.fragments={};b.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,bv){b.fn[e]=function(bw){var bz=[],bC=b(bw),bB=this.length===1&&this[0].parentNode;if(bB&&bB.nodeType===11&&bB.childNodes.length===1&&bC.length===1){bC[bv](this[0]);return this}else{for(var bA=0,bx=bC.length;bA<bx;bA++){var by=(bA>0?this.clone(true):this).get();b(bC[bA])[bv](by);bz=bz.concat(by)}return this.pushStack(bz,e,bC.selector)}}});function bg(e){if(typeof e.getElementsByTagName!=="undefined"){return e.getElementsByTagName("*")}else{if(typeof e.querySelectorAll!=="undefined"){return e.querySelectorAll("*")}else{return[]}}}function az(e){if(e.type==="checkbox"||e.type==="radio"){e.defaultChecked=e.checked}}function E(e){var bv=(e.nodeName||"").toLowerCase();if(bv==="input"){az(e)}else{if(bv!=="script"&&typeof e.getElementsByTagName!=="undefined"){b.grep(e.getElementsByTagName("input"),az)}}}function al(e){var bv=av.createElement("div");ac.appendChild(bv);bv.innerHTML=e.outerHTML;return bv.firstChild}b.extend({clone:function(by,bA,bw){var e,bv,bx,bz=b.support.html5Clone||!ah.test("<"+by.nodeName)?by.cloneNode(true):al(by);if((!b.support.noCloneEvent||!b.support.noCloneChecked)&&(by.nodeType===1||by.nodeType===11)&&!b.isXMLDoc(by)){ai(by,bz);e=bg(by);bv=bg(bz);for(bx=0;e[bx];++bx){if(bv[bx]){ai(e[bx],bv[bx])}}}if(bA){t(by,bz);if(bw){e=bg(by);bv=bg(bz);for(bx=0;e[bx];++bx){t(e[bx],bv[bx])}}}e=bv=null;return bz},clean:function(bw,by,bH,bA){var bF;by=by||av;if(typeof by.createElement==="undefined"){by=by.ownerDocument||by[0]&&by[0].ownerDocument||av}var bI=[],bB;for(var bE=0,bz;(bz=bw[bE])!=null;bE++){if(typeof bz==="number"){bz+=""}if(!bz){continue}if(typeof bz==="string"){if(!W.test(bz)){bz=by.createTextNode(bz)}else{bz=bz.replace(R,"<$1></$2>");var bK=(d.exec(bz)||["",""])[1].toLowerCase(),bx=ax[bK]||ax._default,bD=bx[0],bv=by.createElement("div");if(by===av){ac.appendChild(bv)}else{a(by).appendChild(bv)}bv.innerHTML=bx[1]+bz+bx[2];while(bD--){bv=bv.lastChild}if(!b.support.tbody){var e=w.test(bz),bC=bK==="table"&&!e?bv.firstChild&&bv.firstChild.childNodes:bx[1]==="<table>"&&!e?bv.childNodes:[];for(bB=bC.length-1;bB>=0;--bB){if(b.nodeName(bC[bB],"tbody")&&!bC[bB].childNodes.length){bC[bB].parentNode.removeChild(bC[bB])}}}if(!b.support.leadingWhitespace&&ar.test(bz)){bv.insertBefore(by.createTextNode(ar.exec(bz)[0]),bv.firstChild)}bz=bv.childNodes}}var bG;if(!b.support.appendChecked){if(bz[0]&&typeof(bG=bz.length)==="number"){for(bB=0;bB<bG;bB++){E(bz[bB])}}else{E(bz)}}if(bz.nodeType){bI.push(bz)}else{bI=b.merge(bI,bz)}}if(bH){bF=function(bL){return !bL.type||bm.test(bL.type)};for(bE=0;bI[bE];bE++){if(bA&&b.nodeName(bI[bE],"script")&&(!bI[bE].type||bI[bE].type.toLowerCase()==="text/javascript")){bA.push(bI[bE].parentNode?bI[bE].parentNode.removeChild(bI[bE]):bI[bE])}else{if(bI[bE].nodeType===1){var bJ=b.grep(bI[bE].getElementsByTagName("script"),bF);bI.splice.apply(bI,[bE+1,0].concat(bJ))}bH.appendChild(bI[bE])}}}return bI},cleanData:function(bv){var by,bw,e=b.cache,bB=b.event.special,bA=b.support.deleteExpando;for(var bz=0,bx;(bx=bv[bz])!=null;bz++){if(bx.nodeName&&b.noData[bx.nodeName.toLowerCase()]){continue}bw=bx[b.expando];if(bw){by=e[bw];if(by&&by.events){for(var bC in by.events){if(bB[bC]){b.event.remove(bx,bC)}else{b.removeEvent(bx,bC,by.handle)}}if(by.handle){by.handle.elem=null}}if(bA){delete bx[b.expando]}else{if(bx.removeAttribute){bx.removeAttribute(b.expando)}}delete e[bw]}}}});function bo(e,bv){if(bv.src){b.ajax({url:bv.src,async:false,dataType:"script"})}else{b.globalEval((bv.text||bv.textContent||bv.innerHTML||"").replace(aN,"/*$0*/"))}if(bv.parentNode){bv.parentNode.removeChild(bv)}}var ak=/alpha\([^)]*\)/i,au=/opacity=([^)]*)/,z=/([A-Z]|^ms)/g,bc=/^-?\d+(?:px)?$/i,bn=/^-?\d/,I=/^([\-+])=([\-+.\de]+)/,a7={position:"absolute",visibility:"hidden",display:"block"},an=["Left","Right"],a1=["Top","Bottom"],Z,aI,aX;b.fn.css=function(e,bv){if(arguments.length===2&&bv===L){return this}return b.access(this,e,bv,true,function(bx,bw,by){return by!==L?b.style(bx,bw,by):b.css(bx,bw)})};b.extend({cssHooks:{opacity:{get:function(bw,bv){if(bv){var e=Z(bw,"opacity","opacity");return e===""?"1":e}else{return bw.style.opacity}}}},cssNumber:{fillOpacity:true,fontWeight:true,lineHeight:true,opacity:true,orphans:true,widows:true,zIndex:true,zoom:true},cssProps:{"float":b.support.cssFloat?"cssFloat":"styleFloat"},style:function(bx,bw,bD,by){if(!bx||bx.nodeType===3||bx.nodeType===8||!bx.style){return}var bB,bC,bz=b.camelCase(bw),bv=bx.style,bE=b.cssHooks[bz];bw=b.cssProps[bz]||bz;if(bD!==L){bC=typeof bD;if(bC==="string"&&(bB=I.exec(bD))){bD=(+(bB[1]+1)*+bB[2])+parseFloat(b.css(bx,bw));bC="number"}if(bD==null||bC==="number"&&isNaN(bD)){return}if(bC==="number"&&!b.cssNumber[bz]){bD+="px"}if(!bE||!("set" in bE)||(bD=bE.set(bx,bD))!==L){try{bv[bw]=bD}catch(bA){}}}else{if(bE&&"get" in bE&&(bB=bE.get(bx,false,by))!==L){return bB}return bv[bw]}},css:function(by,bx,bv){var bw,e;bx=b.camelCase(bx);e=b.cssHooks[bx];bx=b.cssProps[bx]||bx;if(bx==="cssFloat"){bx="float"}if(e&&"get" in e&&(bw=e.get(by,true,bv))!==L){return bw}else{if(Z){return Z(by,bx)}}},swap:function(bx,bw,by){var e={};for(var bv in bw){e[bv]=bx.style[bv];bx.style[bv]=bw[bv]}by.call(bx);for(bv in bw){bx.style[bv]=e[bv]}}});b.curCSS=b.css;b.each(["height","width"],function(bv,e){b.cssHooks[e]={get:function(by,bx,bw){var bz;if(bx){if(by.offsetWidth!==0){return p(by,e,bw)}else{b.swap(by,a7,function(){bz=p(by,e,bw)})}return bz}},set:function(bw,bx){if(bc.test(bx)){bx=parseFloat(bx);if(bx>=0){return bx+"px"}}else{return bx}}}});if(!b.support.opacity){b.cssHooks.opacity={get:function(bv,e){return au.test((e&&bv.currentStyle?bv.currentStyle.filter:bv.style.filter)||"")?(parseFloat(RegExp.$1)/100)+"":e?"1":""},set:function(by,bz){var bx=by.style,bv=by.currentStyle,e=b.isNumeric(bz)?"alpha(opacity="+bz*100+")":"",bw=bv&&bv.filter||bx.filter||"";bx.zoom=1;if(bz>=1&&b.trim(bw.replace(ak,""))===""){bx.removeAttribute("filter");if(bv&&!bv.filter){return}}bx.filter=ak.test(bw)?bw.replace(ak,e):bw+" "+e}}}b(function(){if(!b.support.reliableMarginRight){b.cssHooks.marginRight={get:function(bw,bv){var e;b.swap(bw,{display:"inline-block"},function(){if(bv){e=Z(bw,"margin-right","marginRight")}else{e=bw.style.marginRight}});return e}}}});if(av.defaultView&&av.defaultView.getComputedStyle){aI=function(by,bw){var bv,bx,e;bw=bw.replace(z,"-$1").toLowerCase();if((bx=by.ownerDocument.defaultView)&&(e=bx.getComputedStyle(by,null))){bv=e.getPropertyValue(bw);if(bv===""&&!b.contains(by.ownerDocument.documentElement,by)){bv=b.style(by,bw)}}return bv}}if(av.documentElement.currentStyle){aX=function(bz,bw){var bA,e,by,bv=bz.currentStyle&&bz.currentStyle[bw],bx=bz.style;if(bv===null&&bx&&(by=bx[bw])){bv=by}if(!bc.test(bv)&&bn.test(bv)){bA=bx.left;e=bz.runtimeStyle&&bz.runtimeStyle.left;if(e){bz.runtimeStyle.left=bz.currentStyle.left}bx.left=bw==="fontSize"?"1em":(bv||0);bv=bx.pixelLeft+"px";bx.left=bA;if(e){bz.runtimeStyle.left=e}}return bv===""?"auto":bv}}Z=aI||aX;function p(by,bw,bv){var bA=bw==="width"?by.offsetWidth:by.offsetHeight,bz=bw==="width"?an:a1,bx=0,e=bz.length;if(bA>0){if(bv!=="border"){for(;bx<e;bx++){if(!bv){bA-=parseFloat(b.css(by,"padding"+bz[bx]))||0}if(bv==="margin"){bA+=parseFloat(b.css(by,bv+bz[bx]))||0}else{bA-=parseFloat(b.css(by,"border"+bz[bx]+"Width"))||0}}}return bA+"px"}bA=Z(by,bw,bw);if(bA<0||bA==null){bA=by.style[bw]||0}bA=parseFloat(bA)||0;if(bv){for(;bx<e;bx++){bA+=parseFloat(b.css(by,"padding"+bz[bx]))||0;if(bv!=="padding"){bA+=parseFloat(b.css(by,"border"+bz[bx]+"Width"))||0}if(bv==="margin"){bA+=parseFloat(b.css(by,bv+bz[bx]))||0}}}return bA+"px"}if(b.expr&&b.expr.filters){b.expr.filters.hidden=function(bw){var bv=bw.offsetWidth,e=bw.offsetHeight;return(bv===0&&e===0)||(!b.support.reliableHiddenOffsets&&((bw.style&&bw.style.display)||b.css(bw,"display"))==="none")};b.expr.filters.visible=function(e){return !b.expr.filters.hidden(e)}}var k=/%20/g,ap=/\[\]$/,bs=/\r?\n/g,bq=/#.*$/,aD=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,aZ=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,aM=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,aQ=/^(?:GET|HEAD)$/,c=/^\/\//,M=/\?/,a6=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,q=/^(?:select|textarea)/i,h=/\s+/,br=/([?&])_=[^&]*/,K=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,A=b.fn.load,aa={},r={},aE,s,aV=["*/"]+["*"];try{aE=bl.href}catch(aw){aE=av.createElement("a");aE.href="";aE=aE.href}s=K.exec(aE.toLowerCase())||[];function f(e){return function(by,bA){if(typeof by!=="string"){bA=by;by="*"}if(b.isFunction(bA)){var bx=by.toLowerCase().split(h),bw=0,bz=bx.length,bv,bB,bC;for(;bw<bz;bw++){bv=bx[bw];bC=/^\+/.test(bv);if(bC){bv=bv.substr(1)||"*"}bB=e[bv]=e[bv]||[];bB[bC?"unshift":"push"](bA)}}}}function aW(bv,bE,bz,bD,bB,bx){bB=bB||bE.dataTypes[0];bx=bx||{};bx[bB]=true;var bA=bv[bB],bw=0,e=bA?bA.length:0,by=(bv===aa),bC;for(;bw<e&&(by||!bC);bw++){bC=bA[bw](bE,bz,bD);if(typeof bC==="string"){if(!by||bx[bC]){bC=L}else{bE.dataTypes.unshift(bC);bC=aW(bv,bE,bz,bD,bC,bx)}}}if((by||!bC)&&!bx["*"]){bC=aW(bv,bE,bz,bD,"*",bx)}return bC}function am(bw,bx){var bv,e,by=b.ajaxSettings.flatOptions||{};for(bv in bx){if(bx[bv]!==L){(by[bv]?bw:(e||(e={})))[bv]=bx[bv]}}if(e){b.extend(true,bw,e)}}b.fn.extend({load:function(bw,bz,bA){if(typeof bw!=="string"&&A){return A.apply(this,arguments)}else{if(!this.length){return this}}var by=bw.indexOf(" ");if(by>=0){var e=bw.slice(by,bw.length);bw=bw.slice(0,by)}var bx="GET";if(bz){if(b.isFunction(bz)){bA=bz;bz=L}else{if(typeof bz==="object"){bz=b.param(bz,b.ajaxSettings.traditional);bx="POST"}}}var bv=this;b.ajax({url:bw,type:bx,dataType:"html",data:bz,complete:function(bC,bB,bD){bD=bC.responseText;if(bC.isResolved()){bC.done(function(bE){bD=bE});bv.html(e?b("<div>").append(bD.replace(a6,"")).find(e):bD)}if(bA){bv.each(bA,[bD,bB,bC])}}});return this},serialize:function(){return b.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?b.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||q.test(this.nodeName)||aZ.test(this.type))}).map(function(e,bv){var bw=b(this).val();return bw==null?null:b.isArray(bw)?b.map(bw,function(by,bx){return{name:bv.name,value:by.replace(bs,"\r\n")}}):{name:bv.name,value:bw.replace(bs,"\r\n")}}).get()}});b.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(e,bv){b.fn[bv]=function(bw){return this.on(bv,bw)}});b.each(["get","post"],function(e,bv){b[bv]=function(bw,by,bz,bx){if(b.isFunction(by)){bx=bx||bz;bz=by;by=L}return b.ajax({type:bv,url:bw,data:by,success:bz,dataType:bx})}});b.extend({getScript:function(e,bv){return b.get(e,L,bv,"script")},getJSON:function(e,bv,bw){return b.get(e,bv,bw,"json")},ajaxSetup:function(bv,e){if(e){am(bv,b.ajaxSettings)}else{e=bv;bv=b.ajaxSettings}am(bv,e);return bv},ajaxSettings:{url:aE,isLocal:aM.test(s[1]),global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":aV},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":bb.String,"text html":true,"text json":b.parseJSON,"text xml":b.parseXML},flatOptions:{context:true,url:true}},ajaxPrefilter:f(aa),ajaxTransport:f(r),ajax:function(bz,bx){if(typeof bz==="object"){bx=bz;bz=L}bx=bx||{};var bD=b.ajaxSetup({},bx),bS=bD.context||bD,bG=bS!==bD&&(bS.nodeType||bS instanceof b)?b(bS):b.event,bR=b.Deferred(),bN=b.Callbacks("once memory"),bB=bD.statusCode||{},bC,bH={},bO={},bQ,by,bL,bE,bI,bA=0,bw,bK,bJ={readyState:0,setRequestHeader:function(bT,bU){if(!bA){var e=bT.toLowerCase();bT=bO[e]=bO[e]||bT;bH[bT]=bU}return this},getAllResponseHeaders:function(){return bA===2?bQ:null},getResponseHeader:function(bT){var e;if(bA===2){if(!by){by={};while((e=aD.exec(bQ))){by[e[1].toLowerCase()]=e[2]}}e=by[bT.toLowerCase()]}return e===L?null:e},overrideMimeType:function(e){if(!bA){bD.mimeType=e}return this},abort:function(e){e=e||"abort";if(bL){bL.abort(e)}bF(0,e);return this}};function bF(bZ,bU,b0,bW){if(bA===2){return}bA=2;if(bE){clearTimeout(bE)}bL=L;bQ=bW||"";bJ.readyState=bZ>0?4:0;var bT,b4,b3,bX=bU,bY=b0?bj(bD,bJ,b0):L,bV,b2;if(bZ>=200&&bZ<300||bZ===304){if(bD.ifModified){if((bV=bJ.getResponseHeader("Last-Modified"))){b.lastModified[bC]=bV}if((b2=bJ.getResponseHeader("Etag"))){b.etag[bC]=b2}}if(bZ===304){bX="notmodified";bT=true}else{try{b4=G(bD,bY);bX="success";bT=true}catch(b1){bX="parsererror";b3=b1}}}else{b3=bX;if(!bX||bZ){bX="error";if(bZ<0){bZ=0}}}bJ.status=bZ;bJ.statusText=""+(bU||bX);if(bT){bR.resolveWith(bS,[b4,bX,bJ])}else{bR.rejectWith(bS,[bJ,bX,b3])}bJ.statusCode(bB);bB=L;if(bw){bG.trigger("ajax"+(bT?"Success":"Error"),[bJ,bD,bT?b4:b3])}bN.fireWith(bS,[bJ,bX]);if(bw){bG.trigger("ajaxComplete",[bJ,bD]);if(!(--b.active)){b.event.trigger("ajaxStop")}}}bR.promise(bJ);bJ.success=bJ.done;bJ.error=bJ.fail;bJ.complete=bN.add;bJ.statusCode=function(bT){if(bT){var e;if(bA<2){for(e in bT){bB[e]=[bB[e],bT[e]]}}else{e=bT[bJ.status];bJ.then(e,e)}}return this};bD.url=((bz||bD.url)+"").replace(bq,"").replace(c,s[1]+"//");bD.dataTypes=b.trim(bD.dataType||"*").toLowerCase().split(h);if(bD.crossDomain==null){bI=K.exec(bD.url.toLowerCase());bD.crossDomain=!!(bI&&(bI[1]!=s[1]||bI[2]!=s[2]||(bI[3]||(bI[1]==="http:"?80:443))!=(s[3]||(s[1]==="http:"?80:443))))}if(bD.data&&bD.processData&&typeof bD.data!=="string"){bD.data=b.param(bD.data,bD.traditional)}aW(aa,bD,bx,bJ);if(bA===2){return false}bw=bD.global;bD.type=bD.type.toUpperCase();bD.hasContent=!aQ.test(bD.type);if(bw&&b.active++===0){b.event.trigger("ajaxStart")}if(!bD.hasContent){if(bD.data){bD.url+=(M.test(bD.url)?"&":"?")+bD.data;delete bD.data}bC=bD.url;if(bD.cache===false){var bv=b.now(),bP=bD.url.replace(br,"$1_="+bv);bD.url=bP+((bP===bD.url)?(M.test(bD.url)?"&":"?")+"_="+bv:"")}}if(bD.data&&bD.hasContent&&bD.contentType!==false||bx.contentType){bJ.setRequestHeader("Content-Type",bD.contentType)}if(bD.ifModified){bC=bC||bD.url;if(b.lastModified[bC]){bJ.setRequestHeader("If-Modified-Since",b.lastModified[bC])}if(b.etag[bC]){bJ.setRequestHeader("If-None-Match",b.etag[bC])}}bJ.setRequestHeader("Accept",bD.dataTypes[0]&&bD.accepts[bD.dataTypes[0]]?bD.accepts[bD.dataTypes[0]]+(bD.dataTypes[0]!=="*"?", "+aV+"; q=0.01":""):bD.accepts["*"]);for(bK in bD.headers){bJ.setRequestHeader(bK,bD.headers[bK])}if(bD.beforeSend&&(bD.beforeSend.call(bS,bJ,bD)===false||bA===2)){bJ.abort();return false}for(bK in {success:1,error:1,complete:1}){bJ[bK](bD[bK])}bL=aW(r,bD,bx,bJ);if(!bL){bF(-1,"No Transport")}else{bJ.readyState=1;if(bw){bG.trigger("ajaxSend",[bJ,bD])}if(bD.async&&bD.timeout>0){bE=setTimeout(function(){bJ.abort("timeout")},bD.timeout)}try{bA=1;bL.send(bH,bF)}catch(bM){if(bA<2){bF(-1,bM)}else{throw bM}}}return bJ},param:function(e,bw){var bv=[],by=function(bz,bA){bA=b.isFunction(bA)?bA():bA;bv[bv.length]=encodeURIComponent(bz)+"="+encodeURIComponent(bA)};if(bw===L){bw=b.ajaxSettings.traditional}if(b.isArray(e)||(e.jquery&&!b.isPlainObject(e))){b.each(e,function(){by(this.name,this.value)})}else{for(var bx in e){v(bx,e[bx],bw,by)}}return bv.join("&").replace(k,"+")}});function v(bw,by,bv,bx){if(b.isArray(by)){b.each(by,function(bA,bz){if(bv||ap.test(bw)){bx(bw,bz)}else{v(bw+"["+(typeof bz==="object"||b.isArray(bz)?bA:"")+"]",bz,bv,bx)}})}else{if(!bv&&by!=null&&typeof by==="object"){for(var e in by){v(bw+"["+e+"]",by[e],bv,bx)}}else{bx(bw,by)}}}b.extend({active:0,lastModified:{},etag:{}});function bj(bD,bC,bz){var bv=bD.contents,bB=bD.dataTypes,bw=bD.responseFields,by,bA,bx,e;for(bA in bw){if(bA in bz){bC[bw[bA]]=bz[bA]}}while(bB[0]==="*"){bB.shift();if(by===L){by=bD.mimeType||bC.getResponseHeader("content-type")}}if(by){for(bA in bv){if(bv[bA]&&bv[bA].test(by)){bB.unshift(bA);break}}}if(bB[0] in bz){bx=bB[0]}else{for(bA in bz){if(!bB[0]||bD.converters[bA+" "+bB[0]]){bx=bA;break}if(!e){e=bA}}bx=bx||e}if(bx){if(bx!==bB[0]){bB.unshift(bx)}return bz[bx]}}function G(bH,bz){if(bH.dataFilter){bz=bH.dataFilter(bz,bH.dataType)}var bD=bH.dataTypes,bG={},bA,bE,bw=bD.length,bB,bC=bD[0],bx,by,bF,bv,e;for(bA=1;bA<bw;bA++){if(bA===1){for(bE in bH.converters){if(typeof bE==="string"){bG[bE.toLowerCase()]=bH.converters[bE]}}}bx=bC;bC=bD[bA];if(bC==="*"){bC=bx}else{if(bx!=="*"&&bx!==bC){by=bx+" "+bC;bF=bG[by]||bG["* "+bC];if(!bF){e=L;for(bv in bG){bB=bv.split(" ");if(bB[0]===bx||bB[0]==="*"){e=bG[bB[1]+" "+bC];if(e){bv=bG[bv];if(bv===true){bF=e}else{if(e===true){bF=bv}}break}}}}if(!(bF||e)){b.error("No conversion from "+by.replace(" "," to "))}if(bF!==true){bz=bF?bF(bz):e(bv(bz))}}}}return bz}var aC=b.now(),u=/(\=)\?(&|$)|\?\?/i;b.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return b.expando+"_"+(aC++)}});b.ajaxPrefilter("json jsonp",function(bD,bA,bC){var bx=bD.contentType==="application/x-www-form-urlencoded"&&(typeof bD.data==="string");if(bD.dataTypes[0]==="jsonp"||bD.jsonp!==false&&(u.test(bD.url)||bx&&u.test(bD.data))){var bB,bw=bD.jsonpCallback=b.isFunction(bD.jsonpCallback)?bD.jsonpCallback():bD.jsonpCallback,bz=bb[bw],e=bD.url,by=bD.data,bv="$1"+bw+"$2";if(bD.jsonp!==false){e=e.replace(u,bv);if(bD.url===e){if(bx){by=by.replace(u,bv)}if(bD.data===by){e+=(/\?/.test(e)?"&":"?")+bD.jsonp+"="+bw}}}bD.url=e;bD.data=by;bb[bw]=function(bE){bB=[bE]};bC.always(function(){bb[bw]=bz;if(bB&&b.isFunction(bz)){bb[bw](bB[0])}});bD.converters["script json"]=function(){if(!bB){b.error(bw+" was not called")}return bB[0]};bD.dataTypes[0]="json";return"script"}});b.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(e){b.globalEval(e);return e}}});b.ajaxPrefilter("script",function(e){if(e.cache===L){e.cache=false}if(e.crossDomain){e.type="GET";e.global=false}});b.ajaxTransport("script",function(bw){if(bw.crossDomain){var e,bv=av.head||av.getElementsByTagName("head")[0]||av.documentElement;return{send:function(bx,by){e=av.createElement("script");e.async="async";if(bw.scriptCharset){e.charset=bw.scriptCharset}e.src=bw.url;e.onload=e.onreadystatechange=function(bA,bz){if(bz||!e.readyState||/loaded|complete/.test(e.readyState)){e.onload=e.onreadystatechange=null;if(bv&&e.parentNode){bv.removeChild(e)}e=L;if(!bz){by(200,"success")}}};bv.insertBefore(e,bv.firstChild)},abort:function(){if(e){e.onload(0,1)}}}}});var B=bb.ActiveXObject?function(){for(var e in N){N[e](0,1)}}:false,y=0,N;function aL(){try{return new bb.XMLHttpRequest()}catch(bv){}}function aj(){try{return new bb.ActiveXObject("Microsoft.XMLHTTP")}catch(bv){}}b.ajaxSettings.xhr=bb.ActiveXObject?function(){return !this.isLocal&&aL()||aj()}:aL;(function(e){b.extend(b.support,{ajax:!!e,cors:!!e&&("withCredentials" in e)})})(b.ajaxSettings.xhr());if(b.support.ajax){b.ajaxTransport(function(e){if(!e.crossDomain||b.support.cors){var bv;return{send:function(bB,bw){var bA=e.xhr(),bz,by;if(e.username){bA.open(e.type,e.url,e.async,e.username,e.password)}else{bA.open(e.type,e.url,e.async)}if(e.xhrFields){for(by in e.xhrFields){bA[by]=e.xhrFields[by]}}if(e.mimeType&&bA.overrideMimeType){bA.overrideMimeType(e.mimeType)}if(!e.crossDomain&&!bB["X-Requested-With"]){bB["X-Requested-With"]="XMLHttpRequest"}try{for(by in bB){bA.setRequestHeader(by,bB[by])}}catch(bx){}bA.send((e.hasContent&&e.data)||null);bv=function(bK,bE){var bF,bD,bC,bI,bH;try{if(bv&&(bE||bA.readyState===4)){bv=L;if(bz){bA.onreadystatechange=b.noop;if(B){delete N[bz]}}if(bE){if(bA.readyState!==4){bA.abort()}}else{bF=bA.status;bC=bA.getAllResponseHeaders();bI={};bH=bA.responseXML;if(bH&&bH.documentElement){bI.xml=bH}bI.text=bA.responseText;try{bD=bA.statusText}catch(bJ){bD=""}if(!bF&&e.isLocal&&!e.crossDomain){bF=bI.text?200:404}else{if(bF===1223){bF=204}}}}}catch(bG){if(!bE){bw(-1,bG)}}if(bI){bw(bF,bD,bI,bC)}};if(!e.async||bA.readyState===4){bv()}else{bz=++y;if(B){if(!N){N={};b(bb).unload(B)}N[bz]=bv}bA.onreadystatechange=bv}},abort:function(){if(bv){bv(0,1)}}}}})}var Q={},a8,m,aB=/^(?:toggle|show|hide)$/,aT=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,a3,aH=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],a4;b.fn.extend({show:function(bx,bA,bz){var bw,by;if(bx||bx===0){return this.animate(a0("show",3),bx,bA,bz)}else{for(var bv=0,e=this.length;bv<e;bv++){bw=this[bv];if(bw.style){by=bw.style.display;if(!b._data(bw,"olddisplay")&&by==="none"){by=bw.style.display=""}if(by===""&&b.css(bw,"display")==="none"){b._data(bw,"olddisplay",x(bw.nodeName))}}}for(bv=0;bv<e;bv++){bw=this[bv];if(bw.style){by=bw.style.display;if(by===""||by==="none"){bw.style.display=b._data(bw,"olddisplay")||""}}}return this}},hide:function(bx,bA,bz){if(bx||bx===0){return this.animate(a0("hide",3),bx,bA,bz)}else{var bw,by,bv=0,e=this.length;for(;bv<e;bv++){bw=this[bv];if(bw.style){by=b.css(bw,"display");if(by!=="none"&&!b._data(bw,"olddisplay")){b._data(bw,"olddisplay",by)}}}for(bv=0;bv<e;bv++){if(this[bv].style){this[bv].style.display="none"}}return this}},_toggle:b.fn.toggle,toggle:function(bw,bv,bx){var e=typeof bw==="boolean";if(b.isFunction(bw)&&b.isFunction(bv)){this._toggle.apply(this,arguments)}else{if(bw==null||e){this.each(function(){var by=e?bw:b(this).is(":hidden");b(this)[by?"show":"hide"]()})}else{this.animate(a0("toggle",3),bw,bv,bx)}}return this},fadeTo:function(e,bx,bw,bv){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:bx},e,bw,bv)},animate:function(bz,bw,by,bx){var e=b.speed(bw,by,bx);if(b.isEmptyObject(bz)){return this.each(e.complete,[false])}bz=b.extend({},bz);function bv(){if(e.queue===false){b._mark(this)}var bE=b.extend({},e),bK=this.nodeType===1,bI=bK&&b(this).is(":hidden"),bB,bF,bD,bJ,bH,bC,bG,bL,bA;bE.animatedProperties={};for(bD in bz){bB=b.camelCase(bD);if(bD!==bB){bz[bB]=bz[bD];delete bz[bD]}bF=bz[bB];if(b.isArray(bF)){bE.animatedProperties[bB]=bF[1];bF=bz[bB]=bF[0]}else{bE.animatedProperties[bB]=bE.specialEasing&&bE.specialEasing[bB]||bE.easing||"swing"}if(bF==="hide"&&bI||bF==="show"&&!bI){return bE.complete.call(this)}if(bK&&(bB==="height"||bB==="width")){bE.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY];if(b.css(this,"display")==="inline"&&b.css(this,"float")==="none"){if(!b.support.inlineBlockNeedsLayout||x(this.nodeName)==="inline"){this.style.display="inline-block"}else{this.style.zoom=1}}}}if(bE.overflow!=null){this.style.overflow="hidden"}for(bD in bz){bJ=new b.fx(this,bE,bD);bF=bz[bD];if(aB.test(bF)){bA=b._data(this,"toggle"+bD)||(bF==="toggle"?bI?"show":"hide":0);if(bA){b._data(this,"toggle"+bD,bA==="show"?"hide":"show");bJ[bA]()}else{bJ[bF]()}}else{bH=aT.exec(bF);bC=bJ.cur();if(bH){bG=parseFloat(bH[2]);bL=bH[3]||(b.cssNumber[bD]?"":"px");if(bL!=="px"){b.style(this,bD,(bG||1)+bL);bC=((bG||1)/bJ.cur())*bC;b.style(this,bD,bC+bL)}if(bH[1]){bG=((bH[1]==="-="?-1:1)*bG)+bC}bJ.custom(bC,bG,bL)}else{bJ.custom(bC,bF,"")}}}return true}return e.queue===false?this.each(bv):this.queue(e.queue,bv)},stop:function(bw,bv,e){if(typeof bw!=="string"){e=bv;bv=bw;bw=L}if(bv&&bw!==false){this.queue(bw||"fx",[])}return this.each(function(){var bx,by=false,bA=b.timers,bz=b._data(this);if(!e){b._unmark(true,this)}function bB(bE,bF,bD){var bC=bF[bD];b.removeData(bE,bD,true);bC.stop(e)}if(bw==null){for(bx in bz){if(bz[bx]&&bz[bx].stop&&bx.indexOf(".run")===bx.length-4){bB(this,bz,bx)}}}else{if(bz[bx=bw+".run"]&&bz[bx].stop){bB(this,bz,bx)}}for(bx=bA.length;bx--;){if(bA[bx].elem===this&&(bw==null||bA[bx].queue===bw)){if(e){bA[bx](true)}else{bA[bx].saveState()}by=true;bA.splice(bx,1)}}if(!(e&&by)){b.dequeue(this,bw)}})}});function bh(){setTimeout(at,0);return(a4=b.now())}function at(){a4=L}function a0(bv,e){var bw={};b.each(aH.concat.apply([],aH.slice(0,e)),function(){bw[this]=bv});return bw}b.each({slideDown:a0("show",1),slideUp:a0("hide",1),slideToggle:a0("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,bv){b.fn[e]=function(bw,by,bx){return this.animate(bv,bw,by,bx)}});b.extend({speed:function(bw,bx,bv){var e=bw&&typeof bw==="object"?b.extend({},bw):{complete:bv||!bv&&bx||b.isFunction(bw)&&bw,duration:bw,easing:bv&&bx||bx&&!b.isFunction(bx)&&bx};e.duration=b.fx.off?0:typeof e.duration==="number"?e.duration:e.duration in b.fx.speeds?b.fx.speeds[e.duration]:b.fx.speeds._default;if(e.queue==null||e.queue===true){e.queue="fx"}e.old=e.complete;e.complete=function(by){if(b.isFunction(e.old)){e.old.call(this)}if(e.queue){b.dequeue(this,e.queue)}else{if(by!==false){b._unmark(this)}}};return e},easing:{linear:function(bw,bx,e,bv){return e+bv*bw},swing:function(bw,bx,e,bv){return((-Math.cos(bw*Math.PI)/2)+0.5)*bv+e}},timers:[],fx:function(bv,e,bw){this.options=e;this.elem=bv;this.prop=bw;e.orig=e.orig||{}}});b.fx.prototype={update:function(){if(this.options.step){this.options.step.call(this.elem,this.now,this)}(b.fx.step[this.prop]||b.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null)){return this.elem[this.prop]}var e,bv=b.css(this.elem,this.prop);return isNaN(e=parseFloat(bv))?!bv||bv==="auto"?0:bv:e},custom:function(bz,by,bx){var e=this,bw=b.fx;this.startTime=a4||bh();this.end=by;this.now=this.start=bz;this.pos=this.state=0;this.unit=bx||this.unit||(b.cssNumber[this.prop]?"":"px");function bv(bA){return e.step(bA)}bv.queue=this.options.queue;bv.elem=this.elem;bv.saveState=function(){if(e.options.hide&&b._data(e.elem,"fxshow"+e.prop)===L){b._data(e.elem,"fxshow"+e.prop,e.start)}};if(bv()&&b.timers.push(bv)&&!a3){a3=setInterval(bw.tick,bw.interval)}},show:function(){var e=b._data(this.elem,"fxshow"+this.prop);this.options.orig[this.prop]=e||b.style(this.elem,this.prop);this.options.show=true;if(e!==L){this.custom(this.cur(),e)}else{this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur())}b(this.elem).show()},hide:function(){this.options.orig[this.prop]=b._data(this.elem,"fxshow"+this.prop)||b.style(this.elem,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(by){var bA,bB,bv,bx=a4||bh(),e=true,bz=this.elem,bw=this.options;if(by||bx>=bw.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();bw.animatedProperties[this.prop]=true;for(bA in bw.animatedProperties){if(bw.animatedProperties[bA]!==true){e=false}}if(e){if(bw.overflow!=null&&!b.support.shrinkWrapBlocks){b.each(["","X","Y"],function(bC,bD){bz.style["overflow"+bD]=bw.overflow[bC]})}if(bw.hide){b(bz).hide()}if(bw.hide||bw.show){for(bA in bw.animatedProperties){b.style(bz,bA,bw.orig[bA]);b.removeData(bz,"fxshow"+bA,true);b.removeData(bz,"toggle"+bA,true)}}bv=bw.complete;if(bv){bw.complete=false;bv.call(bz)}}return false}else{if(bw.duration==Infinity){this.now=bx}else{bB=bx-this.startTime;this.state=bB/bw.duration;this.pos=b.easing[bw.animatedProperties[this.prop]](this.state,bB,0,1,bw.duration);this.now=this.start+((this.end-this.start)*this.pos)}this.update()}return true}};b.extend(b.fx,{tick:function(){var bw,bv=b.timers,e=0;for(;e<bv.length;e++){bw=bv[e];if(!bw()&&bv[e]===bw){bv.splice(e--,1)}}if(!bv.length){b.fx.stop()}},interval:13,stop:function(){clearInterval(a3);a3=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(e){b.style(e.elem,"opacity",e.now)},_default:function(e){if(e.elem.style&&e.elem.style[e.prop]!=null){e.elem.style[e.prop]=e.now+e.unit}else{e.elem[e.prop]=e.now}}}});b.each(["width","height"],function(e,bv){b.fx.step[bv]=function(bw){b.style(bw.elem,bv,Math.max(0,bw.now)+bw.unit)}});if(b.expr&&b.expr.filters){b.expr.filters.animated=function(e){return b.grep(b.timers,function(bv){return e===bv.elem}).length}}function x(bx){if(!Q[bx]){var e=av.body,bv=b("<"+bx+">").appendTo(e),bw=bv.css("display");bv.remove();if(bw==="none"||bw===""){if(!a8){a8=av.createElement("iframe");a8.frameBorder=a8.width=a8.height=0}e.appendChild(a8);if(!m||!a8.createElement){m=(a8.contentWindow||a8.contentDocument).document;m.write((av.compatMode==="CSS1Compat"?"<!doctype html>":"")+"<html><body>");m.close()}bv=m.createElement(bx);m.body.appendChild(bv);bw=b.css(bv,"display");e.removeChild(a8)}Q[bx]=bw}return Q[bx]}var V=/^t(?:able|d|h)$/i,ad=/^(?:body|html)$/i;if("getBoundingClientRect" in av.documentElement){b.fn.offset=function(bI){var by=this[0],bB;if(bI){return this.each(function(e){b.offset.setOffset(this,bI,e)})}if(!by||!by.ownerDocument){return null}if(by===by.ownerDocument.body){return b.offset.bodyOffset(by)}try{bB=by.getBoundingClientRect()}catch(bF){}var bH=by.ownerDocument,bw=bH.documentElement;if(!bB||!b.contains(bw,by)){return bB?{top:bB.top,left:bB.left}:{top:0,left:0}}var bC=bH.body,bD=aK(bH),bA=bw.clientTop||bC.clientTop||0,bE=bw.clientLeft||bC.clientLeft||0,bv=bD.pageYOffset||b.support.boxModel&&bw.scrollTop||bC.scrollTop,bz=bD.pageXOffset||b.support.boxModel&&bw.scrollLeft||bC.scrollLeft,bG=bB.top+bv-bA,bx=bB.left+bz-bE;return{top:bG,left:bx}}}else{b.fn.offset=function(bF){var bz=this[0];if(bF){return this.each(function(bG){b.offset.setOffset(this,bF,bG)})}if(!bz||!bz.ownerDocument){return null}if(bz===bz.ownerDocument.body){return b.offset.bodyOffset(bz)}var bC,bw=bz.offsetParent,bv=bz,bE=bz.ownerDocument,bx=bE.documentElement,bA=bE.body,bB=bE.defaultView,e=bB?bB.getComputedStyle(bz,null):bz.currentStyle,bD=bz.offsetTop,by=bz.offsetLeft;while((bz=bz.parentNode)&&bz!==bA&&bz!==bx){if(b.support.fixedPosition&&e.position==="fixed"){break}bC=bB?bB.getComputedStyle(bz,null):bz.currentStyle;bD-=bz.scrollTop;by-=bz.scrollLeft;if(bz===bw){bD+=bz.offsetTop;by+=bz.offsetLeft;if(b.support.doesNotAddBorder&&!(b.support.doesAddBorderForTableAndCells&&V.test(bz.nodeName))){bD+=parseFloat(bC.borderTopWidth)||0;by+=parseFloat(bC.borderLeftWidth)||0}bv=bw;bw=bz.offsetParent}if(b.support.subtractsBorderForOverflowNotVisible&&bC.overflow!=="visible"){bD+=parseFloat(bC.borderTopWidth)||0;by+=parseFloat(bC.borderLeftWidth)||0}e=bC}if(e.position==="relative"||e.position==="static"){bD+=bA.offsetTop;by+=bA.offsetLeft}if(b.support.fixedPosition&&e.position==="fixed"){bD+=Math.max(bx.scrollTop,bA.scrollTop);by+=Math.max(bx.scrollLeft,bA.scrollLeft)}return{top:bD,left:by}}}b.offset={bodyOffset:function(e){var bw=e.offsetTop,bv=e.offsetLeft;if(b.support.doesNotIncludeMarginInBodyOffset){bw+=parseFloat(b.css(e,"marginTop"))||0;bv+=parseFloat(b.css(e,"marginLeft"))||0}return{top:bw,left:bv}},setOffset:function(bx,bG,bA){var bB=b.css(bx,"position");if(bB==="static"){bx.style.position="relative"}var bz=b(bx),bv=bz.offset(),e=b.css(bx,"top"),bE=b.css(bx,"left"),bF=(bB==="absolute"||bB==="fixed")&&b.inArray("auto",[e,bE])>-1,bD={},bC={},bw,by;if(bF){bC=bz.position();bw=bC.top;by=bC.left}else{bw=parseFloat(e)||0;by=parseFloat(bE)||0}if(b.isFunction(bG)){bG=bG.call(bx,bA,bv)}if(bG.top!=null){bD.top=(bG.top-bv.top)+bw}if(bG.left!=null){bD.left=(bG.left-bv.left)+by}if("using" in bG){bG.using.call(bx,bD)}else{bz.css(bD)}}};b.fn.extend({position:function(){if(!this[0]){return null}var bw=this[0],bv=this.offsetParent(),bx=this.offset(),e=ad.test(bv[0].nodeName)?{top:0,left:0}:bv.offset();bx.top-=parseFloat(b.css(bw,"marginTop"))||0;bx.left-=parseFloat(b.css(bw,"marginLeft"))||0;e.top+=parseFloat(b.css(bv[0],"borderTopWidth"))||0;e.left+=parseFloat(b.css(bv[0],"borderLeftWidth"))||0;return{top:bx.top-e.top,left:bx.left-e.left}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||av.body;while(e&&(!ad.test(e.nodeName)&&b.css(e,"position")==="static")){e=e.offsetParent}return e})}});b.each(["Left","Top"],function(bv,e){var bw="scroll"+e;b.fn[bw]=function(bz){var bx,by;if(bz===L){bx=this[0];if(!bx){return null}by=aK(bx);return by?("pageXOffset" in by)?by[bv?"pageYOffset":"pageXOffset"]:b.support.boxModel&&by.document.documentElement[bw]||by.document.body[bw]:bx[bw]}return this.each(function(){by=aK(this);if(by){by.scrollTo(!bv?bz:b(by).scrollLeft(),bv?bz:b(by).scrollTop())}else{this[bw]=bz}})}});function aK(e){return b.isWindow(e)?e:e.nodeType===9?e.defaultView||e.parentWindow:false}b.each(["Height","Width"],function(bv,e){var bw=e.toLowerCase();b.fn["inner"+e]=function(){var bx=this[0];return bx?bx.style?parseFloat(b.css(bx,bw,"padding")):this[bw]():null};b.fn["outer"+e]=function(by){var bx=this[0];return bx?bx.style?parseFloat(b.css(bx,bw,by?"margin":"border")):this[bw]():null};b.fn[bw]=function(bz){var bA=this[0];if(!bA){return bz==null?null:this}if(b.isFunction(bz)){return this.each(function(bE){var bD=b(this);bD[bw](bz.call(this,bE,bD[bw]()))})}if(b.isWindow(bA)){var bB=bA.document.documentElement["client"+e],bx=bA.document.body;return bA.document.compatMode==="CSS1Compat"&&bB||bx&&bx["client"+e]||bB}else{if(bA.nodeType===9){return Math.max(bA.documentElement["client"+e],bA.body["scroll"+e],bA.documentElement["scroll"+e],bA.body["offset"+e],bA.documentElement["offset"+e])}else{if(bz===L){var bC=b.css(bA,bw),by=parseFloat(bC);return b.isNumeric(by)?by:bC}else{return this.css(bw,typeof bz==="string"?bz:bz+"px")}}}}});bb.jQuery=bb.$=b;if(typeof define==="function"&&define.amd&&define.amd.jQuery){define("jquery",[],function(){return b})}})(window);/*
  * jQuery UI 1.8.18
  *
  * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
@@ -38,7 +29,7 @@ if(bA>0){if(bv!=="border"){for(;bx<e;bx++){if(!bv){bA-=parseFloat(b.css(by,"padd
  *
  * http://docs.jquery.com/UI
  */
-(function(a,d){a.ui=a.ui||{};if(a.ui.version){return}a.extend(a.ui,{version:"1.8.18",keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}});a.fn.extend({propAttr:a.fn.prop||a.fn.attr,_focus:a.fn.focus,focus:function(e,f){return typeof e==="number"?this.each(function(){var g=this;setTimeout(function(){a(g).focus();if(f){f.call(g)}},e)}):this._focus.apply(this,arguments)},scrollParent:function(){var e;if((a.browser.msie&&(/(static|relative)/).test(this.css("position")))||(/absolute/).test(this.css("position"))){e=this.parents().filter(function(){return(/(relative|absolute|fixed)/).test(a.curCSS(this,"position",1))&&(/(auto|scroll)/).test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0)}else{e=this.parents().filter(function(){return(/(auto|scroll)/).test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0)}return(/fixed/).test(this.css("position"))||!e.length?a(document):e},zIndex:function(h){if(h!==d){return this.css("zIndex",h)}if(this.length){var f=a(this[0]),e,g;while(f.length&&f[0]!==document){e=f.css("position");if(e==="absolute"||e==="relative"||e==="fixed"){g=parseInt(f.css("zIndex"),10);if(!isNaN(g)&&g!==0){return g}}f=f.parent()}}return 0},disableSelection:function(){return this.bind((a.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(e){e.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}});a.each(["Width","Height"],function(g,e){var f=e==="Width"?["Left","Right"]:["Top","Bottom"],h=e.toLowerCase(),k={innerWidth:a.fn.innerWidth,innerHeight:a.fn.innerHeight,outerWidth:a.fn.outerWidth,outerHeight:a.fn.outerHeight};function j(m,l,i,n){a.each(f,function(){l-=parseFloat(a.curCSS(m,"padding"+this,true))||0;if(i){l-=parseFloat(a.curCSS(m,"border"+this+"Width",true))||0}if(n){l-=parseFloat(a.curCSS(m,"margin"+this,true))||0}});return l}a.fn["inner"+e]=function(i){if(i===d){return k["inner"+e].call(this)}return this.each(function(){a(this).css(h,j(this,i)+"px")})};a.fn["outer"+e]=function(i,l){if(typeof i!=="number"){return k["outer"+e].call(this,i)}return this.each(function(){a(this).css(h,j(this,i,true,l)+"px")})}});function c(g,e){var j=g.nodeName.toLowerCase();if("area"===j){var i=g.parentNode,h=i.name,f;if(!g.href||!h||i.nodeName.toLowerCase()!=="map"){return false}f=a("img[usemap=#"+h+"]")[0];return !!f&&b(f)}return(/input|select|textarea|button|object/.test(j)?!g.disabled:"a"==j?g.href||e:e)&&b(g)}function b(e){return !a(e).parents().andSelf().filter(function(){return a.curCSS(this,"visibility")==="hidden"||a.expr.filters.hidden(this)}).length}a.extend(a.expr[":"],{data:function(g,f,e){return !!a.data(g,e[3])},focusable:function(e){return c(e,!isNaN(a.attr(e,"tabindex")))},tabbable:function(g){var e=a.attr(g,"tabindex"),f=isNaN(e);return(f||e>=0)&&c(g,!f)}});a(function(){var e=document.body,f=e.appendChild(f=document.createElement("div"));f.offsetHeight;a.extend(f.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0});a.support.minHeight=f.offsetHeight===100;a.support.selectstart="onselectstart" in f;e.removeChild(f).style.display="none"});a.extend(a.ui,{plugin:{add:function(f,g,j){var h=a.ui[f].prototype;for(var e in j){h.plugins[e]=h.plugins[e]||[];h.plugins[e].push([g,j[e]])}},call:function(e,g,f){var j=e.plugins[g];if(!j||!e.element[0].parentNode){return}for(var h=0;h<j.length;h++){if(e.options[j[h][0]]){j[h][1].apply(e.element,f)}}}},contains:function(f,e){return document.compareDocumentPosition?f.compareDocumentPosition(e)&16:f!==e&&f.contains(e)},hasScroll:function(h,f){if(a(h).css("overflow")==="hidden"){return false}var e=(f&&f==="left")?"scrollLeft":"scrollTop",g=false;if(h[e]>0){return true}h[e]=1;g=(h[e]>0);h[e]=0;return g},isOverAxis:function(f,e,g){return(f>e)&&(f<(e+g))},isOver:function(j,f,i,h,e,g){return a.ui.isOverAxis(j,i,e)&&a.ui.isOverAxis(f,h,g)}})})(jQuery);/*!
+(function(a,d){a.ui=a.ui||{};if(a.ui.version){return}a.extend(a.ui,{version:"1.8.18",keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}});a.fn.extend({propAttr:a.fn.prop||a.fn.attr,_focus:a.fn.focus,focus:function(e,f){return typeof e==="number"?this.each(function(){var g=this;setTimeout(function(){a(g).focus();if(f){f.call(g)}},e)}):this._focus.apply(this,arguments)},scrollParent:function(){var e;if((a.browser.msie&&(/(static|relative)/).test(this.css("position")))||(/absolute/).test(this.css("position"))){e=this.parents().filter(function(){return(/(relative|absolute|fixed)/).test(a.curCSS(this,"position",1))&&(/(auto|scroll)/).test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0)}else{e=this.parents().filter(function(){return(/(auto|scroll)/).test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0)}return(/fixed/).test(this.css("position"))||!e.length?a(document):e},zIndex:function(h){if(h!==d){return this.css("zIndex",h)}if(this.length){var f=a(this[0]),e,g;while(f.length&&f[0]!==document){e=f.css("position");if(e==="absolute"||e==="relative"||e==="fixed"){g=parseInt(f.css("zIndex"),10);if(!isNaN(g)&&g!==0){return g}}f=f.parent()}}return 0},disableSelection:function(){return this.bind((a.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(e){e.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}});a.each(["Width","Height"],function(g,e){var f=e==="Width"?["Left","Right"]:["Top","Bottom"],h=e.toLowerCase(),k={innerWidth:a.fn.innerWidth,innerHeight:a.fn.innerHeight,outerWidth:a.fn.outerWidth,outerHeight:a.fn.outerHeight};function j(m,l,i,n){a.each(f,function(){l-=parseFloat(a.curCSS(m,"padding"+this,true))||0;if(i){l-=parseFloat(a.curCSS(m,"border"+this+"Width",true))||0}if(n){l-=parseFloat(a.curCSS(m,"margin"+this,true))||0}});return l}a.fn["inner"+e]=function(i){if(i===d){return k["inner"+e].call(this)}return this.each(function(){a(this).css(h,j(this,i)+"px")})};a.fn["outer"+e]=function(i,l){if(typeof i!=="number"){return k["outer"+e].call(this,i)}return this.each(function(){a(this).css(h,j(this,i,true,l)+"px")})}});function c(g,e){var j=g.nodeName.toLowerCase();if("area"===j){var i=g.parentNode,h=i.name,f;if(!g.href||!h||i.nodeName.toLowerCase()!=="map"){return false}f=a("img[usemap=#"+h+"]")[0];return !!f&&b(f)}return(/input|select|textarea|button|object/.test(j)?!g.disabled:"a"==j?g.href||e:e)&&b(g)}function b(e){return !a(e).parents().andSelf().filter(function(){return a.curCSS(this,"visibility")==="hidden"||a.expr.filters.hidden(this)}).length}a.extend(a.expr[":"],{data:function(g,f,e){return !!a.data(g,e[3])},focusable:function(e){return c(e,!isNaN(a.attr(e,"tabindex")))},tabbable:function(g){var e=a.attr(g,"tabindex"),f=isNaN(e);return(f||e>=0)&&c(g,!f)}});a(function(){var e=document.body,f=e.appendChild(f=document.createElement("div"));f.offsetHeight;a.extend(f.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0});a.support.minHeight=f.offsetHeight===100;a.support.selectstart="onselectstart" in f;e.removeChild(f).style.display="none"});a.extend(a.ui,{plugin:{add:function(f,g,j){var h=a.ui[f].prototype;for(var e in j){h.plugins[e]=h.plugins[e]||[];h.plugins[e].push([g,j[e]])}},call:function(e,g,f){var j=e.plugins[g];if(!j||!e.element[0].parentNode){return}for(var h=0;h<j.length;h++){if(e.options[j[h][0]]){j[h][1].apply(e.element,f)}}}},contains:function(f,e){return document.compareDocumentPosition?f.compareDocumentPosition(e)&16:f!==e&&f.contains(e)},hasScroll:function(h,f){if(a(h).css("overflow")==="hidden"){return false}var e=(f&&f==="left")?"scrollLeft":"scrollTop",g=false;if(h[e]>0){return true}h[e]=1;g=(h[e]>0);h[e]=0;return g},isOverAxis:function(f,e,g){return(f>e)&&(f<(e+g))},isOver:function(j,f,i,h,e,g){return a.ui.isOverAxis(j,i,e)&&a.ui.isOverAxis(f,h,g)}})})(jQuery);/*
  * jQuery UI Widget 1.8.18
  *
  * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
@@ -47,7 +38,7 @@ if(bA>0){if(bv!=="border"){for(;bx<e;bx++){if(!bv){bA-=parseFloat(b.css(by,"padd
  *
  * http://docs.jquery.com/UI/Widget
  */
-(function(b,d){if(b.cleanData){var c=b.cleanData;b.cleanData=function(f){for(var g=0,h;(h=f[g])!=null;g++){try{b(h).triggerHandler("remove")}catch(j){}}c(f)}}else{var a=b.fn.remove;b.fn.remove=function(e,f){return this.each(function(){if(!f){if(!e||b.filter(e,[this]).length){b("*",this).add([this]).each(function(){try{b(this).triggerHandler("remove")}catch(g){}})}}return a.call(b(this),e,f)})}}b.widget=function(f,h,e){var g=f.split(".")[0],j;f=f.split(".")[1];j=g+"-"+f;if(!e){e=h;h=b.Widget}b.expr[":"][j]=function(k){return !!b.data(k,f)};b[g]=b[g]||{};b[g][f]=function(k,l){if(arguments.length){this._createWidget(k,l)}};var i=new h();i.options=b.extend(true,{},i.options);b[g][f].prototype=b.extend(true,i,{namespace:g,widgetName:f,widgetEventPrefix:b[g][f].prototype.widgetEventPrefix||f,widgetBaseClass:j},e);b.widget.bridge(f,b[g][f])};b.widget.bridge=function(f,e){b.fn[f]=function(i){var g=typeof i==="string",h=Array.prototype.slice.call(arguments,1),j=this;i=!g&&h.length?b.extend.apply(null,[true,i].concat(h)):i;if(g&&i.charAt(0)==="_"){return j}if(g){this.each(function(){var k=b.data(this,f),l=k&&b.isFunction(k[i])?k[i].apply(k,h):k;if(l!==k&&l!==d){j=l;return false}})}else{this.each(function(){var k=b.data(this,f);if(k){k.option(i||{})._init()}else{b.data(this,f,new e(i,this))}})}return j}};b.Widget=function(e,f){if(arguments.length){this._createWidget(e,f)}};b.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",options:{disabled:false},_createWidget:function(f,g){b.data(g,this.widgetName,this);this.element=b(g);this.options=b.extend(true,{},this.options,this._getCreateOptions(),f);var e=this;this.element.bind("remove."+this.widgetName,function(){e.destroy()});this._create();this._trigger("create");this._init()},_getCreateOptions:function(){return b.metadata&&b.metadata.get(this.element[0])[this.widgetName]},_create:function(){},_init:function(){},destroy:function(){this.element.unbind("."+this.widgetName).removeData(this.widgetName);this.widget().unbind("."+this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass+"-disabled ui-state-disabled")},widget:function(){return this.element},option:function(f,g){var e=f;if(arguments.length===0){return b.extend({},this.options)}if(typeof f==="string"){if(g===d){return this.options[f]}e={};e[f]=g}this._setOptions(e);return this},_setOptions:function(f){var e=this;b.each(f,function(g,h){e._setOption(g,h)});return this},_setOption:function(e,f){this.options[e]=f;if(e==="disabled"){this.widget()[f?"addClass":"removeClass"](this.widgetBaseClass+"-disabled ui-state-disabled").attr("aria-disabled",f)}return this},enable:function(){return this._setOption("disabled",false)},disable:function(){return this._setOption("disabled",true)},_trigger:function(e,f,g){var j,i,h=this.options[e];g=g||{};f=b.Event(f);f.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase();f.target=this.element[0];i=f.originalEvent;if(i){for(j in i){if(!(j in f)){f[j]=i[j]}}}this.element.trigger(f,g);return !(b.isFunction(h)&&h.call(this.element[0],f,g)===false||f.isDefaultPrevented())}}})(jQuery);/*!
+(function(b,d){if(b.cleanData){var c=b.cleanData;b.cleanData=function(f){for(var g=0,h;(h=f[g])!=null;g++){try{b(h).triggerHandler("remove")}catch(j){}}c(f)}}else{var a=b.fn.remove;b.fn.remove=function(e,f){return this.each(function(){if(!f){if(!e||b.filter(e,[this]).length){b("*",this).add([this]).each(function(){try{b(this).triggerHandler("remove")}catch(g){}})}}return a.call(b(this),e,f)})}}b.widget=function(f,h,e){var g=f.split(".")[0],j;f=f.split(".")[1];j=g+"-"+f;if(!e){e=h;h=b.Widget}b.expr[":"][j]=function(k){return !!b.data(k,f)};b[g]=b[g]||{};b[g][f]=function(k,l){if(arguments.length){this._createWidget(k,l)}};var i=new h();i.options=b.extend(true,{},i.options);b[g][f].prototype=b.extend(true,i,{namespace:g,widgetName:f,widgetEventPrefix:b[g][f].prototype.widgetEventPrefix||f,widgetBaseClass:j},e);b.widget.bridge(f,b[g][f])};b.widget.bridge=function(f,e){b.fn[f]=function(i){var g=typeof i==="string",h=Array.prototype.slice.call(arguments,1),j=this;i=!g&&h.length?b.extend.apply(null,[true,i].concat(h)):i;if(g&&i.charAt(0)==="_"){return j}if(g){this.each(function(){var k=b.data(this,f),l=k&&b.isFunction(k[i])?k[i].apply(k,h):k;if(l!==k&&l!==d){j=l;return false}})}else{this.each(function(){var k=b.data(this,f);if(k){k.option(i||{})._init()}else{b.data(this,f,new e(i,this))}})}return j}};b.Widget=function(e,f){if(arguments.length){this._createWidget(e,f)}};b.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",options:{disabled:false},_createWidget:function(f,g){b.data(g,this.widgetName,this);this.element=b(g);this.options=b.extend(true,{},this.options,this._getCreateOptions(),f);var e=this;this.element.bind("remove."+this.widgetName,function(){e.destroy()});this._create();this._trigger("create");this._init()},_getCreateOptions:function(){return b.metadata&&b.metadata.get(this.element[0])[this.widgetName]},_create:function(){},_init:function(){},destroy:function(){this.element.unbind("."+this.widgetName).removeData(this.widgetName);this.widget().unbind("."+this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass+"-disabled ui-state-disabled")},widget:function(){return this.element},option:function(f,g){var e=f;if(arguments.length===0){return b.extend({},this.options)}if(typeof f==="string"){if(g===d){return this.options[f]}e={};e[f]=g}this._setOptions(e);return this},_setOptions:function(f){var e=this;b.each(f,function(g,h){e._setOption(g,h)});return this},_setOption:function(e,f){this.options[e]=f;if(e==="disabled"){this.widget()[f?"addClass":"removeClass"](this.widgetBaseClass+"-disabled ui-state-disabled").attr("aria-disabled",f)}return this},enable:function(){return this._setOption("disabled",false)},disable:function(){return this._setOption("disabled",true)},_trigger:function(e,f,g){var j,i,h=this.options[e];g=g||{};f=b.Event(f);f.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase();f.target=this.element[0];i=f.originalEvent;if(i){for(j in i){if(!(j in f)){f[j]=i[j]}}}this.element.trigger(f,g);return !(b.isFunction(h)&&h.call(this.element[0],f,g)===false||f.isDefaultPrevented())}}})(jQuery);/*
  * jQuery UI Mouse 1.8.18
  *
  * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
@@ -59,8 +50,7 @@ if(bA>0){if(bv!=="border"){for(;bx<e;bx++){if(!bv){bA-=parseFloat(b.css(by,"padd
  * Depends:
  *	jquery.ui.widget.js
  */
-(function(b,c){var a=false;b(document).mouseup(function(d){a=false});b.widget("ui.mouse",{options:{cancel:":input,option",distance:1,delay:0},_mouseInit:function(){var d=this;this.element.bind("mousedown."+this.widgetName,function(e){return d._mouseDown(e)}).bind("click."+this.widgetName,function(e){if(true===b.data(e.target,d.widgetName+".preventClickEvent")){b.removeData(e.target,d.widgetName+".preventClickEvent");e.stopImmediatePropagation();return false}});this.started=false},_mouseDestroy:function(){this.element.unbind("."+this.widgetName)},_mouseDown:function(f){if(a){return}(this._mouseStarted&&this._mouseUp(f));this._mouseDownEvent=f;var e=this,g=(f.which==1),d=(typeof this.options.cancel=="string"&&f.target.nodeName?b(f.target).closest(this.options.cancel).length:false);if(!g||d||!this._mouseCapture(f)){return true}this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet){this._mouseDelayTimer=setTimeout(function(){e.mouseDelayMet=true},this.options.delay)}if(this._mouseDistanceMet(f)&&this._mouseDelayMet(f)){this._mouseStarted=(this._mouseStart(f)!==false);if(!this._mouseStarted){f.preventDefault();return true}}if(true===b.data(f.target,this.widgetName+".preventClickEvent")){b.removeData(f.target,this.widgetName+".preventClickEvent")}this._mouseMoveDelegate=function(h){return e._mouseMove(h)};this._mouseUpDelegate=function(h){return e._mouseUp(h)};b(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);f.preventDefault();a=true;return true},_mouseMove:function(d){if(b.browser.msie&&!(document.documentMode>=9)&&!d.button){return this._mouseUp(d)}if(this._mouseStarted){this._mouseDrag(d);return d.preventDefault()}if(this._mouseDistanceMet(d)&&this._mouseDelayMet(d)){this._mouseStarted=(this._mouseStart(this._mouseDownEvent,d)!==false);(this._mouseStarted?this._mouseDrag(d):this._mouseUp(d))}return !this._mouseStarted},_mouseUp:function(d){b(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;if(d.target==this._mouseDownEvent.target){b.data(d.target,this.widgetName+".preventClickEvent",true)}this._mouseStop(d)}return false},_mouseDistanceMet:function(d){return(Math.max(Math.abs(this._mouseDownEvent.pageX-d.pageX),Math.abs(this._mouseDownEvent.pageY-d.pageY))>=this.options.distance)},_mouseDelayMet:function(d){return this.mouseDelayMet},_mouseStart:function(d){},_mouseDrag:function(d){},_mouseStop:function(d){},_mouseCapture:function(d){return true}})})(jQuery);(function(c,d){c.widget("ui.resizable",c.ui.mouse,{widgetEventPrefix:"resize",options:{alsoResize:false,animate:false,animateDuration:"slow",animateEasing:"swing",aspectRatio:false,autoHide:false,containment:false,ghost:false,grid:false,handles:"e,s,se",helper:false,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1000},_create:function(){var f=this,k=this.options;this.element.addClass("ui-resizable");c.extend(this,{_aspectRatio:!!(k.aspectRatio),aspectRatio:k.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:k.helper||k.ghost||k.animate?k.helper||"ui-resizable-helper":null});if(this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)){this.element.wrap(c('<div class="ui-wrapper" style="overflow: hidden;"></div>').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")}));this.element=this.element.parent().data("resizable",this.element.data("resizable"));this.elementIsWrapper=true;this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")});this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});this.originalResizeStyle=this.originalElement.css("resize");this.originalElement.css("resize","none");this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"}));this.originalElement.css({margin:this.originalElement.css("margin")});this._proportionallyResize()}this.handles=k.handles||(!c(".ui-resizable-handle",this.element).length?"e,s,se":{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"});if(this.handles.constructor==String){if(this.handles=="all"){this.handles="n,e,s,w,se,sw,ne,nw"}var l=this.handles.split(",");this.handles={};for(var g=0;g<l.length;g++){var j=c.trim(l[g]),e="ui-resizable-"+j;var h=c('<div class="ui-resizable-handle '+e+'"></div>');if(/sw|se|ne|nw/.test(j)){h.css({zIndex:++k.zIndex})}if("se"==j){h.addClass("ui-icon ui-icon-gripsmall-diagonal-se")}this.handles[j]=".ui-resizable-"+j;this.element.append(h)}}this._renderAxis=function(q){q=q||this.element;for(var n in this.handles){if(this.handles[n].constructor==String){this.handles[n]=c(this.handles[n],this.element).show()}if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var o=c(this.handles[n],this.element),p=0;p=/sw|ne|nw|se|n|s/.test(n)?o.outerHeight():o.outerWidth();var m=["padding",/ne|nw|n/.test(n)?"Top":/se|sw|s/.test(n)?"Bottom":/^e$/.test(n)?"Right":"Left"].join("");q.css(m,p);this._proportionallyResize()}if(!c(this.handles[n]).length){continue}}};this._renderAxis(this.element);this._handles=c(".ui-resizable-handle",this.element).disableSelection();this._handles.mouseover(function(){if(!f.resizing){if(this.className){var i=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)}f.axis=i&&i[1]?i[1]:"se"}});if(k.autoHide){this._handles.hide();c(this.element).addClass("ui-resizable-autohide").hover(function(){if(k.disabled){return}c(this).removeClass("ui-resizable-autohide");f._handles.show()},function(){if(k.disabled){return}if(!f.resizing){c(this).addClass("ui-resizable-autohide");f._handles.hide()}})}this._mouseInit()},destroy:function(){this._mouseDestroy();var e=function(g){c(g).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){e(this.element);var f=this.element;f.after(this.originalElement.css({position:f.css("position"),width:f.outerWidth(),height:f.outerHeight(),top:f.css("top"),left:f.css("left")})).remove()}this.originalElement.css("resize",this.originalResizeStyle);e(this.originalElement);return this},_mouseCapture:function(f){var g=false;for(var e in this.handles){if(c(this.handles[e])[0]==f.target){g=true}}return !this.options.disabled&&g},_mouseStart:function(g){var j=this.options,f=this.element.position(),e=this.element;this.resizing=true;this.documentScroll={top:c(document).scrollTop(),left:c(document).scrollLeft()};if(e.is(".ui-draggable")||(/absolute/).test(e.css("position"))){e.css({position:"absolute",top:f.top,left:f.left})}this._renderProxy();var k=b(this.helper.css("left")),h=b(this.helper.css("top"));if(j.containment){k+=c(j.containment).scrollLeft()||0;h+=c(j.containment).scrollTop()||0}this.offset=this.helper.offset();this.position={left:k,top:h};this.size=this._helper?{width:e.outerWidth(),height:e.outerHeight()}:{width:e.width(),height:e.height()};this.originalSize=this._helper?{width:e.outerWidth(),height:e.outerHeight()}:{width:e.width(),height:e.height()};this.originalPosition={left:k,top:h};this.sizeDiff={width:e.outerWidth()-e.width(),height:e.outerHeight()-e.height()};this.originalMousePosition={left:g.pageX,top:g.pageY};this.aspectRatio=(typeof j.aspectRatio=="number")?j.aspectRatio:((this.originalSize.width/this.originalSize.height)||1);var i=c(".ui-resizable-"+this.axis).css("cursor");c("body").css("cursor",i=="auto"?this.axis+"-resize":i);e.addClass("ui-resizable-resizing");this._propagate("start",g);return true},_mouseDrag:function(e){var h=this.helper,g=this.options,m={},q=this,j=this.originalMousePosition,n=this.axis;var r=(e.pageX-j.left)||0,p=(e.pageY-j.top)||0;var i=this._change[n];if(!i){return false}var l=i.apply(this,[e,r,p]),k=c.browser.msie&&c.browser.version<7,f=this.sizeDiff;this._updateVirtualBoundaries(e.shiftKey);if(this._aspectRatio||e.shiftKey){l=this._updateRatio(l,e)}l=this._respectSize(l,e);this._propagate("resize",e);h.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"});if(!this._helper&&this._proportionallyResizeElements.length){this._proportionallyResize()}this._updateCache(l);this._trigger("resize",e,this.ui());return false},_mouseStop:function(h){this.resizing=false;var i=this.options,m=this;if(this._helper){var g=this._proportionallyResizeElements,e=g.length&&(/textarea/i).test(g[0].nodeName),f=e&&c.ui.hasScroll(g[0],"left")?0:m.sizeDiff.height,k=e?0:m.sizeDiff.width;var n={width:(m.helper.width()-k),height:(m.helper.height()-f)},j=(parseInt(m.element.css("left"),10)+(m.position.left-m.originalPosition.left))||null,l=(parseInt(m.element.css("top"),10)+(m.position.top-m.originalPosition.top))||null;if(!i.animate){this.element.css(c.extend(n,{top:l,left:j}))}m.helper.height(m.size.height);m.helper.width(m.size.width);if(this._helper&&!i.animate){this._proportionallyResize()}}c("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing");this._propagate("stop",h);if(this._helper){this.helper.remove()}return false},_updateVirtualBoundaries:function(g){var j=this.options,i,h,f,k,e;e={minWidth:a(j.minWidth)?j.minWidth:0,maxWidth:a(j.maxWidth)?j.maxWidth:Infinity,minHeight:a(j.minHeight)?j.minHeight:0,maxHeight:a(j.maxHeight)?j.maxHeight:Infinity};if(this._aspectRatio||g){i=e.minHeight*this.aspectRatio;f=e.minWidth/this.aspectRatio;h=e.maxHeight*this.aspectRatio;k=e.maxWidth/this.aspectRatio;if(i>e.minWidth){e.minWidth=i}if(f>e.minHeight){e.minHeight=f}if(h<e.maxWidth){e.maxWidth=h}if(k<e.maxHeight){e.maxHeight=k}}this._vBoundaries=e},_updateCache:function(e){var f=this.options;this.offset=this.helper.offset();if(a(e.left)){this.position.left=e.left}if(a(e.top)){this.position.top=e.top}if(a(e.height)){this.size.height=e.height}if(a(e.width)){this.size.width=e.width}},_updateRatio:function(h,g){var i=this.options,j=this.position,f=this.size,e=this.axis;if(a(h.height)){h.width=(h.height*this.aspectRatio)}else{if(a(h.width)){h.height=(h.width/this.aspectRatio)}}if(e=="sw"){h.left=j.left+(f.width-h.width);h.top=null}if(e=="nw"){h.top=j.top+(f.height-h.height);h.left=j.left+(f.width-h.width)}return h},_respectSize:function(l,g){var j=this.helper,i=this._vBoundaries,r=this._aspectRatio||g.shiftKey,q=this.axis,t=a(l.width)&&i.maxWidth&&(i.maxWidth<l.width),m=a(l.height)&&i.maxHeight&&(i.maxHeight<l.height),h=a(l.width)&&i.minWidth&&(i.minWidth>l.width),s=a(l.height)&&i.minHeight&&(i.minHeight>l.height);if(h){l.width=i.minWidth}if(s){l.height=i.minHeight}if(t){l.width=i.maxWidth}if(m){l.height=i.maxHeight}var f=this.originalPosition.left+this.originalSize.width,p=this.position.top+this.size.height;var k=/sw|nw|w/.test(q),e=/nw|ne|n/.test(q);if(h&&k){l.left=f-i.minWidth}if(t&&k){l.left=f-i.maxWidth}if(s&&e){l.top=p-i.minHeight}if(m&&e){l.top=p-i.maxHeight}var n=!l.width&&!l.height;if(n&&!l.left&&l.top){l.top=null}else{if(n&&!l.top&&l.left){l.left=null}}return l},_proportionallyResize:function(){var k=this.options;if(!this._proportionallyResizeElements.length){return}var g=this.helper||this.element;for(var f=0;f<this._proportionallyResizeElements.length;f++){var h=this._proportionallyResizeElements[f];if(!this.borderDif){var e=[h.css("borderTopWidth"),h.css("borderRightWidth"),h.css("borderBottomWidth"),h.css("borderLeftWidth")],j=[h.css("paddingTop"),h.css("paddingRight"),h.css("paddingBottom"),h.css("paddingLeft")];this.borderDif=c.map(e,function(l,n){var m=parseInt(l,10)||0,o=parseInt(j[n],10)||0;return m+o})}if(c.browser.msie&&!(!(c(g).is(":hidden")||c(g).parents(":hidden").length))){continue}h.css({height:(g.height()-this.borderDif[0]-this.borderDif[2])||0,width:(g.width()-this.borderDif[1]-this.borderDif[3])||0})}},_renderProxy:function(){var f=this.element,i=this.options;this.elementOffset=f.offset();if(this._helper){this.helper=this.helper||c('<div style="overflow:hidden;"></div>');var e=c.browser.msie&&c.browser.version<7,g=(e?1:0),h=(e?2:-1);this.helper.addClass(this._helper).css({width:this.element.outerWidth()+h,height:this.element.outerHeight()+h,position:"absolute",left:this.elementOffset.left-g+"px",top:this.elementOffset.top-g+"px",zIndex:++i.zIndex});this.helper.appendTo("body").disableSelection()}else{this.helper=this.element}},_change:{e:function(g,f,e){return{width:this.originalSize.width+f}},w:function(h,f,e){var j=this.options,g=this.originalSize,i=this.originalPosition;return{left:i.left+f,width:g.width-f}},n:function(h,f,e){var j=this.options,g=this.originalSize,i=this.originalPosition;return{top:i.top+e,height:g.height-e}},s:function(g,f,e){return{height:this.originalSize.height+e}},se:function(g,f,e){return c.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[g,f,e]))},sw:function(g,f,e){return c.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[g,f,e]))},ne:function(g,f,e){return c.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[g,f,e]))},nw:function(g,f,e){return c.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[g,f,e]))}},_propagate:function(f,e){c.ui.plugin.call(this,f,[e,this.ui()]);(f!="resize"&&this._trigger(f,e,this.ui()))},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}});c.extend(c.ui.resizable,{version:"1.8.18"});c.ui.plugin.add("resizable","alsoResize",{start:function(f,g){var e=c(this).data("resizable"),i=e.options;var h=function(j){c(j).each(function(){var k=c(this);k.data("resizable-alsoresize",{width:parseInt(k.width(),10),height:parseInt(k.height(),10),left:parseInt(k.css("left"),10),top:parseInt(k.css("top"),10)})})};if(typeof(i.alsoResize)=="object"&&!i.alsoResize.parentNode){if(i.alsoResize.length){i.alsoResize=i.alsoResize[0];h(i.alsoResize)}else{c.each(i.alsoResize,function(j){h(j)})}}else{h(i.alsoResize)}},resize:function(g,i){var f=c(this).data("resizable"),j=f.options,h=f.originalSize,l=f.originalPosition;var k={height:(f.size.height-h.height)||0,width:(f.size.width-h.width)||0,top:(f.position.top-l.top)||0,left:(f.position.left-l.left)||0},e=function(m,n){c(m).each(function(){var q=c(this),r=c(this).data("resizable-alsoresize"),p={},o=n&&n.length?n:q.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];c.each(o,function(s,u){var t=(r[u]||0)+(k[u]||0);if(t&&t>=0){p[u]=t||null}});q.css(p)})};if(typeof(j.alsoResize)=="object"&&!j.alsoResize.nodeType){c.each(j.alsoResize,function(m,n){e(m,n)})}else{e(j.alsoResize)}},stop:function(e,f){c(this).removeData("resizable-alsoresize")}});c.ui.plugin.add("resizable","animate",{stop:function(i,n){var p=c(this).data("resizable"),j=p.options;var h=p._proportionallyResizeElements,e=h.length&&(/textarea/i).test(h[0].nodeName),f=e&&c.ui.hasScroll(h[0],"left")?0:p.sizeDiff.height,l=e?0:p.sizeDiff.width;var g={width:(p.size.width-l),height:(p.size.height-f)},k=(parseInt(p.element.css("left"),10)+(p.position.left-p.originalPosition.left))||null,m=(parseInt(p.element.css("top"),10)+(p.position.top-p.originalPosition.top))||null;
-p.element.animate(c.extend(g,m&&k?{top:m,left:k}:{}),{duration:j.animateDuration,easing:j.animateEasing,step:function(){var o={width:parseInt(p.element.css("width"),10),height:parseInt(p.element.css("height"),10),top:parseInt(p.element.css("top"),10),left:parseInt(p.element.css("left"),10)};if(h&&h.length){c(h[0]).css({width:o.width,height:o.height})}p._updateCache(o);p._propagate("resize",i)}})}});c.ui.plugin.add("resizable","containment",{start:function(f,r){var t=c(this).data("resizable"),j=t.options,l=t.element;var g=j.containment,k=(g instanceof c)?g.get(0):(/parent/.test(g))?l.parent().get(0):g;if(!k){return}t.containerElement=c(k);if(/document/.test(g)||g==document){t.containerOffset={left:0,top:0};t.containerPosition={left:0,top:0};t.parentData={element:c(document),left:0,top:0,width:c(document).width(),height:c(document).height()||document.body.parentNode.scrollHeight}}else{var n=c(k),i=[];c(["Top","Right","Left","Bottom"]).each(function(p,o){i[p]=b(n.css("padding"+o))});t.containerOffset=n.offset();t.containerPosition=n.position();t.containerSize={height:(n.innerHeight()-i[3]),width:(n.innerWidth()-i[1])};var q=t.containerOffset,e=t.containerSize.height,m=t.containerSize.width,h=(c.ui.hasScroll(k,"left")?k.scrollWidth:m),s=(c.ui.hasScroll(k)?k.scrollHeight:e);t.parentData={element:k,left:q.left,top:q.top,width:h,height:s}}},resize:function(g,q){var t=c(this).data("resizable"),i=t.options,f=t.containerSize,p=t.containerOffset,m=t.size,n=t.position,r=t._aspectRatio||g.shiftKey,e={top:0,left:0},h=t.containerElement;if(h[0]!=document&&(/static/).test(h.css("position"))){e=p}if(n.left<(t._helper?p.left:0)){t.size.width=t.size.width+(t._helper?(t.position.left-p.left):(t.position.left-e.left));if(r){t.size.height=t.size.width/i.aspectRatio}t.position.left=i.helper?p.left:0}if(n.top<(t._helper?p.top:0)){t.size.height=t.size.height+(t._helper?(t.position.top-p.top):t.position.top);if(r){t.size.width=t.size.height*i.aspectRatio}t.position.top=t._helper?p.top:0}t.offset.left=t.parentData.left+t.position.left;t.offset.top=t.parentData.top+t.position.top;var l=Math.abs((t._helper?t.offset.left-e.left:(t.offset.left-e.left))+t.sizeDiff.width),s=Math.abs((t._helper?t.offset.top-e.top:(t.offset.top-p.top))+t.sizeDiff.height);var k=t.containerElement.get(0)==t.element.parent().get(0),j=/relative|absolute/.test(t.containerElement.css("position"));if(k&&j){l-=t.parentData.left}if(l+t.size.width>=t.parentData.width){t.size.width=t.parentData.width-l;if(r){t.size.height=t.size.width/t.aspectRatio}}if(s+t.size.height>=t.parentData.height){t.size.height=t.parentData.height-s;if(r){t.size.width=t.size.height*t.aspectRatio}}},stop:function(f,n){var q=c(this).data("resizable"),g=q.options,l=q.position,m=q.containerOffset,e=q.containerPosition,i=q.containerElement;var j=c(q.helper),r=j.offset(),p=j.outerWidth()-q.sizeDiff.width,k=j.outerHeight()-q.sizeDiff.height;if(q._helper&&!g.animate&&(/relative/).test(i.css("position"))){c(this).css({left:r.left-e.left-m.left,width:p,height:k})}if(q._helper&&!g.animate&&(/static/).test(i.css("position"))){c(this).css({left:r.left-e.left-m.left,width:p,height:k})}}});c.ui.plugin.add("resizable","ghost",{start:function(g,h){var e=c(this).data("resizable"),i=e.options,f=e.size;e.ghost=e.originalElement.clone();e.ghost.css({opacity:0.25,display:"block",position:"relative",height:f.height,width:f.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof i.ghost=="string"?i.ghost:"");e.ghost.appendTo(e.helper)},resize:function(f,g){var e=c(this).data("resizable"),h=e.options;if(e.ghost){e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})}},stop:function(f,g){var e=c(this).data("resizable"),h=e.options;if(e.ghost&&e.helper){e.helper.get(0).removeChild(e.ghost.get(0))}}});c.ui.plugin.add("resizable","grid",{resize:function(e,m){var p=c(this).data("resizable"),h=p.options,k=p.size,i=p.originalSize,j=p.originalPosition,n=p.axis,l=h._aspectRatio||e.shiftKey;h.grid=typeof h.grid=="number"?[h.grid,h.grid]:h.grid;var g=Math.round((k.width-i.width)/(h.grid[0]||1))*(h.grid[0]||1),f=Math.round((k.height-i.height)/(h.grid[1]||1))*(h.grid[1]||1);if(/^(se|s|e)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f}else{if(/^(ne)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f;p.position.top=j.top-f}else{if(/^(sw)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f;p.position.left=j.left-g}else{p.size.width=i.width+g;p.size.height=i.height+f;p.position.top=j.top-f;p.position.left=j.left-g}}}}});var b=function(e){return parseInt(e,10)||0};var a=function(e){return !isNaN(parseInt(e,10))}})(jQuery);/*!
+(function(b,c){var a=false;b(document).mouseup(function(d){a=false});b.widget("ui.mouse",{options:{cancel:":input,option",distance:1,delay:0},_mouseInit:function(){var d=this;this.element.bind("mousedown."+this.widgetName,function(e){return d._mouseDown(e)}).bind("click."+this.widgetName,function(e){if(true===b.data(e.target,d.widgetName+".preventClickEvent")){b.removeData(e.target,d.widgetName+".preventClickEvent");e.stopImmediatePropagation();return false}});this.started=false},_mouseDestroy:function(){this.element.unbind("."+this.widgetName)},_mouseDown:function(f){if(a){return}(this._mouseStarted&&this._mouseUp(f));this._mouseDownEvent=f;var e=this,g=(f.which==1),d=(typeof this.options.cancel=="string"&&f.target.nodeName?b(f.target).closest(this.options.cancel).length:false);if(!g||d||!this._mouseCapture(f)){return true}this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet){this._mouseDelayTimer=setTimeout(function(){e.mouseDelayMet=true},this.options.delay)}if(this._mouseDistanceMet(f)&&this._mouseDelayMet(f)){this._mouseStarted=(this._mouseStart(f)!==false);if(!this._mouseStarted){f.preventDefault();return true}}if(true===b.data(f.target,this.widgetName+".preventClickEvent")){b.removeData(f.target,this.widgetName+".preventClickEvent")}this._mouseMoveDelegate=function(h){return e._mouseMove(h)};this._mouseUpDelegate=function(h){return e._mouseUp(h)};b(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);f.preventDefault();a=true;return true},_mouseMove:function(d){if(b.browser.msie&&!(document.documentMode>=9)&&!d.button){return this._mouseUp(d)}if(this._mouseStarted){this._mouseDrag(d);return d.preventDefault()}if(this._mouseDistanceMet(d)&&this._mouseDelayMet(d)){this._mouseStarted=(this._mouseStart(this._mouseDownEvent,d)!==false);(this._mouseStarted?this._mouseDrag(d):this._mouseUp(d))}return !this._mouseStarted},_mouseUp:function(d){b(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;if(d.target==this._mouseDownEvent.target){b.data(d.target,this.widgetName+".preventClickEvent",true)}this._mouseStop(d)}return false},_mouseDistanceMet:function(d){return(Math.max(Math.abs(this._mouseDownEvent.pageX-d.pageX),Math.abs(this._mouseDownEvent.pageY-d.pageY))>=this.options.distance)},_mouseDelayMet:function(d){return this.mouseDelayMet},_mouseStart:function(d){},_mouseDrag:function(d){},_mouseStop:function(d){},_mouseCapture:function(d){return true}})})(jQuery);(function(c,d){c.widget("ui.resizable",c.ui.mouse,{widgetEventPrefix:"resize",options:{alsoResize:false,animate:false,animateDuration:"slow",animateEasing:"swing",aspectRatio:false,autoHide:false,containment:false,ghost:false,grid:false,handles:"e,s,se",helper:false,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1000},_create:function(){var f=this,k=this.options;this.element.addClass("ui-resizable");c.extend(this,{_aspectRatio:!!(k.aspectRatio),aspectRatio:k.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:k.helper||k.ghost||k.animate?k.helper||"ui-resizable-helper":null});if(this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)){this.element.wrap(c('<div class="ui-wrapper" style="overflow: hidden;"></div>').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")}));this.element=this.element.parent().data("resizable",this.element.data("resizable"));this.elementIsWrapper=true;this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")});this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});this.originalResizeStyle=this.originalElement.css("resize");this.originalElement.css("resize","none");this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"}));this.originalElement.css({margin:this.originalElement.css("margin")});this._proportionallyResize()}this.handles=k.handles||(!c(".ui-resizable-handle",this.element).length?"e,s,se":{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"});if(this.handles.constructor==String){if(this.handles=="all"){this.handles="n,e,s,w,se,sw,ne,nw"}var l=this.handles.split(",");this.handles={};for(var g=0;g<l.length;g++){var j=c.trim(l[g]),e="ui-resizable-"+j;var h=c('<div class="ui-resizable-handle '+e+'"></div>');if(/sw|se|ne|nw/.test(j)){h.css({zIndex:++k.zIndex})}if("se"==j){h.addClass("ui-icon ui-icon-gripsmall-diagonal-se")}this.handles[j]=".ui-resizable-"+j;this.element.append(h)}}this._renderAxis=function(q){q=q||this.element;for(var n in this.handles){if(this.handles[n].constructor==String){this.handles[n]=c(this.handles[n],this.element).show()}if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var o=c(this.handles[n],this.element),p=0;p=/sw|ne|nw|se|n|s/.test(n)?o.outerHeight():o.outerWidth();var m=["padding",/ne|nw|n/.test(n)?"Top":/se|sw|s/.test(n)?"Bottom":/^e$/.test(n)?"Right":"Left"].join("");q.css(m,p);this._proportionallyResize()}if(!c(this.handles[n]).length){continue}}};this._renderAxis(this.element);this._handles=c(".ui-resizable-handle",this.element).disableSelection();this._handles.mouseover(function(){if(!f.resizing){if(this.className){var i=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)}f.axis=i&&i[1]?i[1]:"se"}});if(k.autoHide){this._handles.hide();c(this.element).addClass("ui-resizable-autohide").hover(function(){if(k.disabled){return}c(this).removeClass("ui-resizable-autohide");f._handles.show()},function(){if(k.disabled){return}if(!f.resizing){c(this).addClass("ui-resizable-autohide");f._handles.hide()}})}this._mouseInit()},destroy:function(){this._mouseDestroy();var e=function(g){c(g).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){e(this.element);var f=this.element;f.after(this.originalElement.css({position:f.css("position"),width:f.outerWidth(),height:f.outerHeight(),top:f.css("top"),left:f.css("left")})).remove()}this.originalElement.css("resize",this.originalResizeStyle);e(this.originalElement);return this},_mouseCapture:function(f){var g=false;for(var e in this.handles){if(c(this.handles[e])[0]==f.target){g=true}}return !this.options.disabled&&g},_mouseStart:function(g){var j=this.options,f=this.element.position(),e=this.element;this.resizing=true;this.documentScroll={top:c(document).scrollTop(),left:c(document).scrollLeft()};if(e.is(".ui-draggable")||(/absolute/).test(e.css("position"))){e.css({position:"absolute",top:f.top,left:f.left})}this._renderProxy();var k=b(this.helper.css("left")),h=b(this.helper.css("top"));if(j.containment){k+=c(j.containment).scrollLeft()||0;h+=c(j.containment).scrollTop()||0}this.offset=this.helper.offset();this.position={left:k,top:h};this.size=this._helper?{width:e.outerWidth(),height:e.outerHeight()}:{width:e.width(),height:e.height()};this.originalSize=this._helper?{width:e.outerWidth(),height:e.outerHeight()}:{width:e.width(),height:e.height()};this.originalPosition={left:k,top:h};this.sizeDiff={width:e.outerWidth()-e.width(),height:e.outerHeight()-e.height()};this.originalMousePosition={left:g.pageX,top:g.pageY};this.aspectRatio=(typeof j.aspectRatio=="number")?j.aspectRatio:((this.originalSize.width/this.originalSize.height)||1);var i=c(".ui-resizable-"+this.axis).css("cursor");c("body").css("cursor",i=="auto"?this.axis+"-resize":i);e.addClass("ui-resizable-resizing");this._propagate("start",g);return true},_mouseDrag:function(e){var h=this.helper,g=this.options,m={},q=this,j=this.originalMousePosition,n=this.axis;var r=(e.pageX-j.left)||0,p=(e.pageY-j.top)||0;var i=this._change[n];if(!i){return false}var l=i.apply(this,[e,r,p]),k=c.browser.msie&&c.browser.version<7,f=this.sizeDiff;this._updateVirtualBoundaries(e.shiftKey);if(this._aspectRatio||e.shiftKey){l=this._updateRatio(l,e)}l=this._respectSize(l,e);this._propagate("resize",e);h.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"});if(!this._helper&&this._proportionallyResizeElements.length){this._proportionallyResize()}this._updateCache(l);this._trigger("resize",e,this.ui());return false},_mouseStop:function(h){this.resizing=false;var i=this.options,m=this;if(this._helper){var g=this._proportionallyResizeElements,e=g.length&&(/textarea/i).test(g[0].nodeName),f=e&&c.ui.hasScroll(g[0],"left")?0:m.sizeDiff.height,k=e?0:m.sizeDiff.width;var n={width:(m.helper.width()-k),height:(m.helper.height()-f)},j=(parseInt(m.element.css("left"),10)+(m.position.left-m.originalPosition.left))||null,l=(parseInt(m.element.css("top"),10)+(m.position.top-m.originalPosition.top))||null;if(!i.animate){this.element.css(c.extend(n,{top:l,left:j}))}m.helper.height(m.size.height);m.helper.width(m.size.width);if(this._helper&&!i.animate){this._proportionallyResize()}}c("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing");this._propagate("stop",h);if(this._helper){this.helper.remove()}return false},_updateVirtualBoundaries:function(g){var j=this.options,i,h,f,k,e;e={minWidth:a(j.minWidth)?j.minWidth:0,maxWidth:a(j.maxWidth)?j.maxWidth:Infinity,minHeight:a(j.minHeight)?j.minHeight:0,maxHeight:a(j.maxHeight)?j.maxHeight:Infinity};if(this._aspectRatio||g){i=e.minHeight*this.aspectRatio;f=e.minWidth/this.aspectRatio;h=e.maxHeight*this.aspectRatio;k=e.maxWidth/this.aspectRatio;if(i>e.minWidth){e.minWidth=i}if(f>e.minHeight){e.minHeight=f}if(h<e.maxWidth){e.maxWidth=h}if(k<e.maxHeight){e.maxHeight=k}}this._vBoundaries=e},_updateCache:function(e){var f=this.options;this.offset=this.helper.offset();if(a(e.left)){this.position.left=e.left}if(a(e.top)){this.position.top=e.top}if(a(e.height)){this.size.height=e.height}if(a(e.width)){this.size.width=e.width}},_updateRatio:function(h,g){var i=this.options,j=this.position,f=this.size,e=this.axis;if(a(h.height)){h.width=(h.height*this.aspectRatio)}else{if(a(h.width)){h.height=(h.width/this.aspectRatio)}}if(e=="sw"){h.left=j.left+(f.width-h.width);h.top=null}if(e=="nw"){h.top=j.top+(f.height-h.height);h.left=j.left+(f.width-h.width)}return h},_respectSize:function(l,g){var j=this.helper,i=this._vBoundaries,r=this._aspectRatio||g.shiftKey,q=this.axis,t=a(l.width)&&i.maxWidth&&(i.maxWidth<l.width),m=a(l.height)&&i.maxHeight&&(i.maxHeight<l.height),h=a(l.width)&&i.minWidth&&(i.minWidth>l.width),s=a(l.height)&&i.minHeight&&(i.minHeight>l.height);if(h){l.width=i.minWidth}if(s){l.height=i.minHeight}if(t){l.width=i.maxWidth}if(m){l.height=i.maxHeight}var f=this.originalPosition.left+this.originalSize.width,p=this.position.top+this.size.height;var k=/sw|nw|w/.test(q),e=/nw|ne|n/.test(q);if(h&&k){l.left=f-i.minWidth}if(t&&k){l.left=f-i.maxWidth}if(s&&e){l.top=p-i.minHeight}if(m&&e){l.top=p-i.maxHeight}var n=!l.width&&!l.height;if(n&&!l.left&&l.top){l.top=null}else{if(n&&!l.top&&l.left){l.left=null}}return l},_proportionallyResize:function(){var k=this.options;if(!this._proportionallyResizeElements.length){return}var g=this.helper||this.element;for(var f=0;f<this._proportionallyResizeElements.length;f++){var h=this._proportionallyResizeElements[f];if(!this.borderDif){var e=[h.css("borderTopWidth"),h.css("borderRightWidth"),h.css("borderBottomWidth"),h.css("borderLeftWidth")],j=[h.css("paddingTop"),h.css("paddingRight"),h.css("paddingBottom"),h.css("paddingLeft")];this.borderDif=c.map(e,function(l,n){var m=parseInt(l,10)||0,o=parseInt(j[n],10)||0;return m+o})}if(c.browser.msie&&!(!(c(g).is(":hidden")||c(g).parents(":hidden").length))){continue}h.css({height:(g.height()-this.borderDif[0]-this.borderDif[2])||0,width:(g.width()-this.borderDif[1]-this.borderDif[3])||0})}},_renderProxy:function(){var f=this.element,i=this.options;this.elementOffset=f.offset();if(this._helper){this.helper=this.helper||c('<div style="overflow:hidden;"></div>');var e=c.browser.msie&&c.browser.version<7,g=(e?1:0),h=(e?2:-1);this.helper.addClass(this._helper).css({width:this.element.outerWidth()+h,height:this.element.outerHeight()+h,position:"absolute",left:this.elementOffset.left-g+"px",top:this.elementOffset.top-g+"px",zIndex:++i.zIndex});this.helper.appendTo("body").disableSelection()}else{this.helper=this.element}},_change:{e:function(g,f,e){return{width:this.originalSize.width+f}},w:function(h,f,e){var j=this.options,g=this.originalSize,i=this.originalPosition;return{left:i.left+f,width:g.width-f}},n:function(h,f,e){var j=this.options,g=this.originalSize,i=this.originalPosition;return{top:i.top+e,height:g.height-e}},s:function(g,f,e){return{height:this.originalSize.height+e}},se:function(g,f,e){return c.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[g,f,e]))},sw:function(g,f,e){return c.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[g,f,e]))},ne:function(g,f,e){return c.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[g,f,e]))},nw:function(g,f,e){return c.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[g,f,e]))}},_propagate:function(f,e){c.ui.plugin.call(this,f,[e,this.ui()]);(f!="resize"&&this._trigger(f,e,this.ui()))},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}});c.extend(c.ui.resizable,{version:"1.8.18"});c.ui.plugin.add("resizable","alsoResize",{start:function(f,g){var e=c(this).data("resizable"),i=e.options;var h=function(j){c(j).each(function(){var k=c(this);k.data("resizable-alsoresize",{width:parseInt(k.width(),10),height:parseInt(k.height(),10),left:parseInt(k.css("left"),10),top:parseInt(k.css("top"),10)})})};if(typeof(i.alsoResize)=="object"&&!i.alsoResize.parentNode){if(i.alsoResize.length){i.alsoResize=i.alsoResize[0];h(i.alsoResize)}else{c.each(i.alsoResize,function(j){h(j)})}}else{h(i.alsoResize)}},resize:function(g,i){var f=c(this).data("resizable"),j=f.options,h=f.originalSize,l=f.originalPosition;var k={height:(f.size.height-h.height)||0,width:(f.size.width-h.width)||0,top:(f.position.top-l.top)||0,left:(f.position.left-l.left)||0},e=function(m,n){c(m).each(function(){var q=c(this),r=c(this).data("resizable-alsoresize"),p={},o=n&&n.length?n:q.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];c.each(o,function(s,u){var t=(r[u]||0)+(k[u]||0);if(t&&t>=0){p[u]=t||null}});q.css(p)})};if(typeof(j.alsoResize)=="object"&&!j.alsoResize.nodeType){c.each(j.alsoResize,function(m,n){e(m,n)})}else{e(j.alsoResize)}},stop:function(e,f){c(this).removeData("resizable-alsoresize")}});c.ui.plugin.add("resizable","animate",{stop:function(i,n){var p=c(this).data("resizable"),j=p.options;var h=p._proportionallyResizeElements,e=h.length&&(/textarea/i).test(h[0].nodeName),f=e&&c.ui.hasScroll(h[0],"left")?0:p.sizeDiff.height,l=e?0:p.sizeDiff.width;var g={width:(p.size.width-l),height:(p.size.height-f)},k=(parseInt(p.element.css("left"),10)+(p.position.left-p.originalPosition.left))||null,m=(parseInt(p.element.css("top"),10)+(p.position.top-p.originalPosition.top))||null;p.element.animate(c.extend(g,m&&k?{top:m,left:k}:{}),{duration:j.animateDuration,easing:j.animateEasing,step:function(){var o={width:parseInt(p.element.css("width"),10),height:parseInt(p.element.css("height"),10),top:parseInt(p.element.css("top"),10),left:parseInt(p.element.css("left"),10)};if(h&&h.length){c(h[0]).css({width:o.width,height:o.height})}p._updateCache(o);p._propagate("resize",i)}})}});c.ui.plugin.add("resizable","containment",{start:function(f,r){var t=c(this).data("resizable"),j=t.options,l=t.element;var g=j.containment,k=(g instanceof c)?g.get(0):(/parent/.test(g))?l.parent().get(0):g;if(!k){return}t.containerElement=c(k);if(/document/.test(g)||g==document){t.containerOffset={left:0,top:0};t.containerPosition={left:0,top:0};t.parentData={element:c(document),left:0,top:0,width:c(document).width(),height:c(document).height()||document.body.parentNode.scrollHeight}}else{var n=c(k),i=[];c(["Top","Right","Left","Bottom"]).each(function(p,o){i[p]=b(n.css("padding"+o))});t.containerOffset=n.offset();t.containerPosition=n.position();t.containerSize={height:(n.innerHeight()-i[3]),width:(n.innerWidth()-i[1])};var q=t.containerOffset,e=t.containerSize.height,m=t.containerSize.width,h=(c.ui.hasScroll(k,"left")?k.scrollWidth:m),s=(c.ui.hasScroll(k)?k.scrollHeight:e);t.parentData={element:k,left:q.left,top:q.top,width:h,height:s}}},resize:function(g,q){var t=c(this).data("resizable"),i=t.options,f=t.containerSize,p=t.containerOffset,m=t.size,n=t.position,r=t._aspectRatio||g.shiftKey,e={top:0,left:0},h=t.containerElement;if(h[0]!=document&&(/static/).test(h.css("position"))){e=p}if(n.left<(t._helper?p.left:0)){t.size.width=t.size.width+(t._helper?(t.position.left-p.left):(t.position.left-e.left));if(r){t.size.height=t.size.width/i.aspectRatio}t.position.left=i.helper?p.left:0}if(n.top<(t._helper?p.top:0)){t.size.height=t.size.height+(t._helper?(t.position.top-p.top):t.position.top);if(r){t.size.width=t.size.height*i.aspectRatio}t.position.top=t._helper?p.top:0}t.offset.left=t.parentData.left+t.position.left;t.offset.top=t.parentData.top+t.position.top;var l=Math.abs((t._helper?t.offset.left-e.left:(t.offset.left-e.left))+t.sizeDiff.width),s=Math.abs((t._helper?t.offset.top-e.top:(t.offset.top-p.top))+t.sizeDiff.height);var k=t.containerElement.get(0)==t.element.parent().get(0),j=/relative|absolute/.test(t.containerElement.css("position"));if(k&&j){l-=t.parentData.left}if(l+t.size.width>=t.parentData.width){t.size.width=t.parentData.width-l;if(r){t.size.height=t.size.width/t.aspectRatio}}if(s+t.size.height>=t.parentData.height){t.size.height=t.parentData.height-s;if(r){t.size.width=t.size.height*t.aspectRatio}}},stop:function(f,n){var q=c(this).data("resizable"),g=q.options,l=q.position,m=q.containerOffset,e=q.containerPosition,i=q.containerElement;var j=c(q.helper),r=j.offset(),p=j.outerWidth()-q.sizeDiff.width,k=j.outerHeight()-q.sizeDiff.height;if(q._helper&&!g.animate&&(/relative/).test(i.css("position"))){c(this).css({left:r.left-e.left-m.left,width:p,height:k})}if(q._helper&&!g.animate&&(/static/).test(i.css("position"))){c(this).css({left:r.left-e.left-m.left,width:p,height:k})}}});c.ui.plugin.add("resizable","ghost",{start:function(g,h){var e=c(this).data("resizable"),i=e.options,f=e.size;e.ghost=e.originalElement.clone();e.ghost.css({opacity:0.25,display:"block",position:"relative",height:f.height,width:f.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof i.ghost=="string"?i.ghost:"");e.ghost.appendTo(e.helper)},resize:function(f,g){var e=c(this).data("resizable"),h=e.options;if(e.ghost){e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})}},stop:function(f,g){var e=c(this).data("resizable"),h=e.options;if(e.ghost&&e.helper){e.helper.get(0).removeChild(e.ghost.get(0))}}});c.ui.plugin.add("resizable","grid",{resize:function(e,m){var p=c(this).data("resizable"),h=p.options,k=p.size,i=p.originalSize,j=p.originalPosition,n=p.axis,l=h._aspectRatio||e.shiftKey;h.grid=typeof h.grid=="number"?[h.grid,h.grid]:h.grid;var g=Math.round((k.width-i.width)/(h.grid[0]||1))*(h.grid[0]||1),f=Math.round((k.height-i.height)/(h.grid[1]||1))*(h.grid[1]||1);if(/^(se|s|e)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f}else{if(/^(ne)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f;p.position.top=j.top-f}else{if(/^(sw)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f;p.position.left=j.left-g}else{p.size.width=i.width+g;p.size.height=i.height+f;p.position.top=j.top-f;p.position.left=j.left-g}}}}});var b=function(e){return parseInt(e,10)||0};var a=function(e){return !isNaN(parseInt(e,10))}})(jQuery);/*
  * jQuery hashchange event - v1.3 - 7/21/2010
  * http://benalman.com/projects/jquery-hashchange-plugin/
  * 
@@ -68,5 +58,30 @@ p.element.animate(c.extend(g,m&&k?{top:m,left:k}:{}),{duration:j.animateDuration
  * Dual licensed under the MIT and GPL licenses.
  * http://benalman.com/about/license/
  */
-(function($,e,b){var c="hashchange",h=document,f,g=$.event.special,i=h.documentMode,d="on"+c in e&&(i===b||i>7);function a(j){j=j||location.href;return"#"+j.replace(/^[^#]*#?(.*)$/,"$1")}$.fn[c]=function(j){return j?this.bind(c,j):this.trigger(c)};$.fn[c].delay=50;g[c]=$.extend(g[c],{setup:function(){if(d){return false}$(f.start)},teardown:function(){if(d){return false}$(f.stop)}});f=(function(){var j={},p,m=a(),k=function(q){return q},l=k,o=k;j.start=function(){p||n()};j.stop=function(){p&&clearTimeout(p);p=b};function n(){var r=a(),q=o(m);if(r!==m){l(m=r,q);$(e).trigger(c)}else{if(q!==m){location.href=location.href.replace(/#.*/,"")+q}}p=setTimeout(n,$.fn[c].delay)}$.browser.msie&&!d&&(function(){var q,r;j.start=function(){if(!q){r=$.fn[c].src;r=r&&r+a();q=$('<iframe tabindex="-1" title="empty"/>').hide().one("load",function(){r||l(a());n()}).attr("src",r||"javascript:0").insertAfter("body")[0].contentWindow;h.onpropertychange=function(){try{if(event.propertyName==="title"){q.document.title=h.title}}catch(s){}}}};j.stop=k;o=function(){return a(q.location.href)};l=function(v,s){var u=q.document,t=$.fn[c].domain;if(v!==s){u.title=h.title;u.open();t&&u.write('<script>document.domain="'+t+'"<\/script>');u.close();q.location.hash=v}}})();return j})()})(jQuery,this);
-(function(c){var a=c.scrollTo=function(f,e,d){c(window).scrollTo(f,e,d)};a.defaults={axis:"xy",duration:parseFloat(c.fn.jquery)>=1.3?0:1};a.window=function(d){return c(window)._scrollable()};c.fn._scrollable=function(){return this.map(function(){var e=this,d=!e.nodeName||c.inArray(e.nodeName.toLowerCase(),["iframe","#document","html","body"])!=-1;if(!d){return e}var f=(e.contentWindow||e).document||e.ownerDocument||e;return c.browser.safari||f.compatMode=="BackCompat"?f.body:f.documentElement})};c.fn.scrollTo=function(f,e,d){if(typeof e=="object"){d=e;e=0}if(typeof d=="function"){d={onAfter:d}}if(f=="max"){f=9000000000}d=c.extend({},a.defaults,d);e=e||d.speed||d.duration;d.queue=d.queue&&d.axis.length>1;if(d.queue){e/=2}d.offset=b(d.offset);d.over=b(d.over);return this._scrollable().each(function(){var l=this,j=c(l),k=f,i,g={},m=j.is("html,body");switch(typeof k){case"number":case"string":if(/^([+-]=)?\d+(\.\d+)?(px|%)?$/.test(k)){k=b(k);break}k=c(k,this);case"object":if(k.is||k.style){i=(k=c(k)).offset()}}c.each(d.axis.split(""),function(q,r){var s=r=="x"?"Left":"Top",u=s.toLowerCase(),p="scroll"+s,o=l[p],n=a.max(l,r);if(i){g[p]=i[u]+(m?0:o-j.offset()[u]);if(d.margin){g[p]-=parseInt(k.css("margin"+s))||0;g[p]-=parseInt(k.css("border"+s+"Width"))||0}g[p]+=d.offset[u]||0;if(d.over[u]){g[p]+=k[r=="x"?"width":"height"]()*d.over[u]}}else{var t=k[u];g[p]=t.slice&&t.slice(-1)=="%"?parseFloat(t)/100*n:t}if(/^\d+$/.test(g[p])){g[p]=g[p]<=0?0:Math.min(g[p],n)}if(!q&&d.queue){if(o!=g[p]){h(d.onAfterFirst)}delete g[p]}});h(d.onAfter);function h(n){j.animate(g,e,d.easing,n&&function(){n.call(this,f,d)})}}).end()};a.max=function(j,i){var h=i=="x"?"Width":"Height",e="scroll"+h;if(!c(j).is("html,body")){return j[e]-c(j)[h.toLowerCase()]()}var g="client"+h,f=j.ownerDocument.documentElement,d=j.ownerDocument.body;return Math.max(f[e],d[e])-Math.min(f[g],d[g])};function b(d){return typeof d=="object"?d:{top:d,left:d}}})(jQuery);
+(function($,e,b){var c="hashchange",h=document,f,g=$.event.special,i=h.documentMode,d="on"+c in e&&(i===b||i>7);function a(j){j=j||location.href;return"#"+j.replace(/^[^#]*#?(.*)$/,"$1")}$.fn[c]=function(j){return j?this.bind(c,j):this.trigger(c)};$.fn[c].delay=50;g[c]=$.extend(g[c],{setup:function(){if(d){return false}$(f.start)},teardown:function(){if(d){return false}$(f.stop)}});f=(function(){var j={},p,m=a(),k=function(q){return q},l=k,o=k;j.start=function(){p||n()};j.stop=function(){p&&clearTimeout(p);p=b};function n(){var r=a(),q=o(m);if(r!==m){l(m=r,q);$(e).trigger(c)}else{if(q!==m){location.href=location.href.replace(/#.*/,"")+q}}p=setTimeout(n,$.fn[c].delay)}$.browser.msie&&!d&&(function(){var q,r;j.start=function(){if(!q){r=$.fn[c].src;r=r&&r+a();q=$('<iframe tabindex="-1" title="empty"/>').hide().one("load",function(){r||l(a());n()}).attr("src",r||"javascript:0").insertAfter("body")[0].contentWindow;h.onpropertychange=function(){try{if(event.propertyName==="title"){q.document.title=h.title}}catch(s){}}}};j.stop=k;o=function(){return a(q.location.href)};l=function(v,s){var u=q.document,t=$.fn[c].domain;if(v!==s){u.title=h.title;u.open();t&&u.write('<script>document.domain="'+t+'"<\/script>');u.close();q.location.hash=v}}})();return j})()})(jQuery,this);(function(c){var a=c.scrollTo=function(f,e,d){c(window).scrollTo(f,e,d)};a.defaults={axis:"xy",duration:parseFloat(c.fn.jquery)>=1.3?0:1};a.window=function(d){return c(window)._scrollable()};c.fn._scrollable=function(){return this.map(function(){var e=this,d=!e.nodeName||c.inArray(e.nodeName.toLowerCase(),["iframe","#document","html","body"])!=-1;if(!d){return e}var f=(e.contentWindow||e).document||e.ownerDocument||e;return c.browser.safari||f.compatMode=="BackCompat"?f.body:f.documentElement})};c.fn.scrollTo=function(f,e,d){if(typeof e=="object"){d=e;e=0}if(typeof d=="function"){d={onAfter:d}}if(f=="max"){f=9000000000}d=c.extend({},a.defaults,d);e=e||d.speed||d.duration;d.queue=d.queue&&d.axis.length>1;if(d.queue){e/=2}d.offset=b(d.offset);d.over=b(d.over);return this._scrollable().each(function(){var l=this,j=c(l),k=f,i,g={},m=j.is("html,body");switch(typeof k){case"number":case"string":if(/^([+-]=)?\d+(\.\d+)?(px|%)?$/.test(k)){k=b(k);break}k=c(k,this);case"object":if(k.is||k.style){i=(k=c(k)).offset()}}c.each(d.axis.split(""),function(q,r){var s=r=="x"?"Left":"Top",u=s.toLowerCase(),p="scroll"+s,o=l[p],n=a.max(l,r);if(i){g[p]=i[u]+(m?0:o-j.offset()[u]);if(d.margin){g[p]-=parseInt(k.css("margin"+s))||0;g[p]-=parseInt(k.css("border"+s+"Width"))||0}g[p]+=d.offset[u]||0;if(d.over[u]){g[p]+=k[r=="x"?"width":"height"]()*d.over[u]}}else{var t=k[u];g[p]=t.slice&&t.slice(-1)=="%"?parseFloat(t)/100*n:t}if(/^\d+$/.test(g[p])){g[p]=g[p]<=0?0:Math.min(g[p],n)}if(!q&&d.queue){if(o!=g[p]){h(d.onAfterFirst)}delete g[p]}});h(d.onAfter);function h(n){j.animate(g,e,d.easing,n&&function(){n.call(this,f,d)})}}).end()};a.max=function(j,i){var h=i=="x"?"Width":"Height",e="scroll"+h;if(!c(j).is("html,body")){return j[e]-c(j)[h.toLowerCase()]()}var g="client"+h,f=j.ownerDocument.documentElement,d=j.ownerDocument.body;return Math.max(f[e],d[e])-Math.min(f[g],d[g])};function b(d){return typeof d=="object"?d:{top:d,left:d}}})(jQuery);/*
+ PowerTip - v1.2.0 - 2013-04-03
+ http://stevenbenner.github.com/jquery-powertip/
+ Copyright (c) 2013 Steven Benner (http://stevenbenner.com/).
+ Released under MIT license.
+ https://raw.github.com/stevenbenner/jquery-powertip/master/LICENSE.txt
+*/
+(function(a){if(typeof define==="function"&&define.amd){define(["jquery"],a)}else{a(jQuery)}}(function(k){var A=k(document),s=k(window),w=k("body");var n="displayController",e="hasActiveHover",d="forcedOpen",u="hasMouseMove",f="mouseOnToPopup",g="originalTitle",y="powertip",o="powertipjq",l="powertiptarget",E=180/Math.PI;var c={isTipOpen:false,isFixedTipOpen:false,isClosing:false,tipOpenImminent:false,activeHover:null,currentX:0,currentY:0,previousX:0,previousY:0,desyncTimeout:null,mouseTrackingActive:false,delayInProgress:false,windowWidth:0,windowHeight:0,scrollTop:0,scrollLeft:0};var p={none:0,top:1,bottom:2,left:4,right:8};k.fn.powerTip=function(F,N){if(!this.length){return this}if(k.type(F)==="string"&&k.powerTip[F]){return k.powerTip[F].call(this,this,N)}var O=k.extend({},k.fn.powerTip.defaults,F),G=new x(O);h();this.each(function M(){var R=k(this),Q=R.data(y),P=R.data(o),T=R.data(l),S;if(R.data(n)){k.powerTip.destroy(R)}S=R.attr("title");if(!Q&&!T&&!P&&S){R.data(y,S);R.data(g,S);R.removeAttr("title")}R.data(n,new t(R,O,G))});if(!O.manual){this.on({"mouseenter.powertip":function J(P){k.powerTip.show(this,P)},"mouseleave.powertip":function L(){k.powerTip.hide(this)},"focus.powertip":function K(){k.powerTip.show(this)},"blur.powertip":function H(){k.powerTip.hide(this,true)},"keydown.powertip":function I(P){if(P.keyCode===27){k.powerTip.hide(this,true)}}})}return this};k.fn.powerTip.defaults={fadeInTime:200,fadeOutTime:100,followMouse:false,popupId:"powerTip",intentSensitivity:7,intentPollInterval:100,closeDelay:100,placement:"n",smartPlacement:false,offset:10,mouseOnToPopup:false,manual:false};k.fn.powerTip.smartPlacementLists={n:["n","ne","nw","s"],e:["e","ne","se","w","nw","sw","n","s","e"],s:["s","se","sw","n"],w:["w","nw","sw","e","ne","se","n","s","w"],nw:["nw","w","sw","n","s","se","nw"],ne:["ne","e","se","n","s","sw","ne"],sw:["sw","w","nw","s","n","ne","sw"],se:["se","e","ne","s","n","nw","se"],"nw-alt":["nw-alt","n","ne-alt","sw-alt","s","se-alt","w","e"],"ne-alt":["ne-alt","n","nw-alt","se-alt","s","sw-alt","e","w"],"sw-alt":["sw-alt","s","se-alt","nw-alt","n","ne-alt","w","e"],"se-alt":["se-alt","s","sw-alt","ne-alt","n","nw-alt","e","w"]};k.powerTip={show:function z(F,G){if(G){i(G);c.previousX=G.pageX;c.previousY=G.pageY;k(F).data(n).show()}else{k(F).first().data(n).show(true,true)}return F},reposition:function r(F){k(F).first().data(n).resetPosition();return F},hide:function D(G,F){if(G){k(G).first().data(n).hide(F)}else{if(c.activeHover){c.activeHover.data(n).hide(true)}}return G},destroy:function C(G){k(G).off(".powertip").each(function F(){var I=k(this),H=[g,n,e,d];if(I.data(g)){I.attr("title",I.data(g));H.push(y)}I.removeData(H)});return G}};k.powerTip.showTip=k.powerTip.show;k.powerTip.closeTip=k.powerTip.hide;function b(){var F=this;F.top="auto";F.left="auto";F.right="auto";F.bottom="auto";F.set=function(H,G){if(k.isNumeric(G)){F[H]=Math.round(G)}}}function t(K,N,F){var J=null;function L(P,Q){M();if(!K.data(e)){if(!P){c.tipOpenImminent=true;J=setTimeout(function O(){J=null;I()},N.intentPollInterval)}else{if(Q){K.data(d,true)}F.showTip(K)}}}function G(P){M();c.tipOpenImminent=false;if(K.data(e)){K.data(d,false);if(!P){c.delayInProgress=true;J=setTimeout(function O(){J=null;F.hideTip(K);c.delayInProgress=false},N.closeDelay)}else{F.hideTip(K)}}}function I(){var Q=Math.abs(c.previousX-c.currentX),O=Math.abs(c.previousY-c.currentY),P=Q+O;if(P<N.intentSensitivity){F.showTip(K)}else{c.previousX=c.currentX;c.previousY=c.currentY;L()}}function M(){J=clearTimeout(J);c.delayInProgress=false}function H(){F.resetPosition(K)}this.show=L;this.hide=G;this.cancel=M;this.resetPosition=H}function j(){function G(M,L,J,O,P){var K=L.split("-")[0],N=new b(),I;if(q(M)){I=H(M,K)}else{I=F(M,K)}switch(L){case"n":N.set("left",I.left-(J/2));N.set("bottom",c.windowHeight-I.top+P);break;case"e":N.set("left",I.left+P);N.set("top",I.top-(O/2));break;case"s":N.set("left",I.left-(J/2));N.set("top",I.top+P);break;case"w":N.set("top",I.top-(O/2));N.set("right",c.windowWidth-I.left+P);break;case"nw":N.set("bottom",c.windowHeight-I.top+P);N.set("right",c.windowWidth-I.left-20);break;case"nw-alt":N.set("left",I.left);N.set("bottom",c.windowHeight-I.top+P);break;case"ne":N.set("left",I.left-20);N.set("bottom",c.windowHeight-I.top+P);break;case"ne-alt":N.set("bottom",c.windowHeight-I.top+P);N.set("right",c.windowWidth-I.left);break;case"sw":N.set("top",I.top+P);N.set("right",c.windowWidth-I.left-20);break;case"sw-alt":N.set("left",I.left);N.set("top",I.top+P);break;case"se":N.set("left",I.left-20);N.set("top",I.top+P);break;case"se-alt":N.set("top",I.top+P);N.set("right",c.windowWidth-I.left);break}return N}function F(K,J){var O=K.offset(),N=K.outerWidth(),I=K.outerHeight(),M,L;switch(J){case"n":M=O.left+N/2;L=O.top;break;case"e":M=O.left+N;L=O.top+I/2;break;case"s":M=O.left+N/2;L=O.top+I;break;case"w":M=O.left;L=O.top+I/2;break;case"nw":M=O.left;L=O.top;break;case"ne":M=O.left+N;L=O.top;break;case"sw":M=O.left;L=O.top+I;break;case"se":M=O.left+N;L=O.top+I;break}return{top:L,left:M}}function H(O,K){var S=O.closest("svg")[0],N=O[0],W=S.createSVGPoint(),L=N.getBBox(),V=N.getScreenCTM(),M=L.width/2,Q=L.height/2,P=[],I=["nw","n","ne","e","se","s","sw","w"],U,X,R,T;function J(){P.push(W.matrixTransform(V))}W.x=L.x;W.y=L.y;J();W.x+=M;J();W.x+=M;J();W.y+=Q;J();W.y+=Q;J();W.x-=M;J();W.x-=M;J();W.y-=Q;J();if(P[0].y!==P[1].y||P[0].x!==P[7].x){X=Math.atan2(V.b,V.a)*E;R=Math.ceil(((X%360)-22.5)/45);if(R<1){R+=8}while(R--){I.push(I.shift())}}for(T=0;T<P.length;T++){if(I[T]===K){U=P[T];break}}return{top:U.y+c.scrollTop,left:U.x+c.scrollLeft}}this.compute=G}function x(Q){var P=new j(),O=k("#"+Q.popupId);if(O.length===0){O=k("<div/>",{id:Q.popupId});if(w.length===0){w=k("body")}w.append(O)}if(Q.followMouse){if(!O.data(u)){A.on("mousemove",M);s.on("scroll",M);O.data(u,true)}}if(Q.mouseOnToPopup){O.on({mouseenter:function L(){if(O.data(f)){if(c.activeHover){c.activeHover.data(n).cancel()}}},mouseleave:function N(){if(c.activeHover){c.activeHover.data(n).hide()}}})}function I(S){S.data(e,true);O.queue(function R(T){H(S);T()})}function H(S){var U;if(!S.data(e)){return}if(c.isTipOpen){if(!c.isClosing){K(c.activeHover)}O.delay(100).queue(function R(V){H(S);V()});return}S.trigger("powerTipPreRender");U=B(S);if(U){O.empty().append(U)}else{return}S.trigger("powerTipRender");c.activeHover=S;c.isTipOpen=true;O.data(f,Q.mouseOnToPopup);if(!Q.followMouse){G(S);c.isFixedTipOpen=true}else{M()}O.fadeIn(Q.fadeInTime,function T(){if(!c.desyncTimeout){c.desyncTimeout=setInterval(J,500)}S.trigger("powerTipOpen")})}function K(R){c.isClosing=true;c.activeHover=null;c.isTipOpen=false;c.desyncTimeout=clearInterval(c.desyncTimeout);R.data(e,false);R.data(d,false);O.fadeOut(Q.fadeOutTime,function S(){var T=new b();c.isClosing=false;c.isFixedTipOpen=false;O.removeClass();T.set("top",c.currentY+Q.offset);T.set("left",c.currentX+Q.offset);O.css(T);R.trigger("powerTipClose")})}function M(){if(!c.isFixedTipOpen&&(c.isTipOpen||(c.tipOpenImminent&&O.data(u)))){var R=O.outerWidth(),V=O.outerHeight(),U=new b(),S,T;U.set("top",c.currentY+Q.offset);U.set("left",c.currentX+Q.offset);S=m(U,R,V);if(S!==p.none){T=a(S);if(T===1){if(S===p.right){U.set("left",c.windowWidth-R)}else{if(S===p.bottom){U.set("top",c.scrollTop+c.windowHeight-V)}}}else{U.set("left",c.currentX-R-Q.offset);U.set("top",c.currentY-V-Q.offset)}}O.css(U)}}function G(S){var R,T;if(Q.smartPlacement){R=k.fn.powerTip.smartPlacementLists[Q.placement];k.each(R,function(U,W){var V=m(F(S,W),O.outerWidth(),O.outerHeight());T=W;if(V===p.none){return false}})}else{F(S,Q.placement);T=Q.placement}O.addClass(T)}function F(U,T){var R=0,S,W,V=new b();V.set("top",0);V.set("left",0);O.css(V);do{S=O.outerWidth();W=O.outerHeight();V=P.compute(U,T,S,W,Q.offset);O.css(V)}while(++R<=5&&(S!==O.outerWidth()||W!==O.outerHeight()));return V}function J(){var R=false;if(c.isTipOpen&&!c.isClosing&&!c.delayInProgress){if(c.activeHover.data(e)===false||c.activeHover.is(":disabled")){R=true}else{if(!v(c.activeHover)&&!c.activeHover.is(":focus")&&!c.activeHover.data(d)){if(O.data(f)){if(!v(O)){R=true}}else{R=true}}}if(R){K(c.activeHover)}}}this.showTip=I;this.hideTip=K;this.resetPosition=G}function q(F){return window.SVGElement&&F[0] instanceof SVGElement}function h(){if(!c.mouseTrackingActive){c.mouseTrackingActive=true;k(function H(){c.scrollLeft=s.scrollLeft();c.scrollTop=s.scrollTop();c.windowWidth=s.width();c.windowHeight=s.height()});A.on("mousemove",i);s.on({resize:function G(){c.windowWidth=s.width();c.windowHeight=s.height()},scroll:function F(){var I=s.scrollLeft(),J=s.scrollTop();if(I!==c.scrollLeft){c.currentX+=I-c.scrollLeft;c.scrollLeft=I}if(J!==c.scrollTop){c.currentY+=J-c.scrollTop;c.scrollTop=J}}})}}function i(F){c.currentX=F.pageX;c.currentY=F.pageY}function v(F){var H=F.offset(),J=F[0].getBoundingClientRect(),I=J.right-J.left,G=J.bottom-J.top;return c.currentX>=H.left&&c.currentX<=H.left+I&&c.currentY>=H.top&&c.currentY<=H.top+G}function B(I){var G=I.data(y),F=I.data(o),K=I.data(l),H,J;if(G){if(k.isFunction(G)){G=G.call(I[0])}J=G}else{if(F){if(k.isFunction(F)){F=F.call(I[0])}if(F.length>0){J=F.clone(true,true)}}else{if(K){H=k("#"+K);if(H.length>0){J=H.html()}}}}return J}function m(M,L,K){var G=c.scrollTop,J=c.scrollLeft,I=G+c.windowHeight,F=J+c.windowWidth,H=p.none;if(M.top<G||Math.abs(M.bottom-c.windowHeight)-K<G){H|=p.top}if(M.top+K>I||Math.abs(M.bottom-c.windowHeight)>I){H|=p.bottom}if(M.left<J||M.right+L>F){H|=p.left}if(M.left+L>F||M.right<J){H|=p.right}return H}function a(G){var F=0;while(G){G&=G-1;F++}return F}}));/*
+ * jQuery UI Touch Punch 0.2.3
+ *
+ * Copyright 2011–2014, Dave Furfero
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ *
+ * Depends:
+ *  jquery.ui.widget.js
+ *  jquery.ui.mouse.js
+ */
+(function(b){b.support.touch="ontouchend" in document;if(!b.support.touch){return}var d=b.ui.mouse.prototype,f=d._mouseInit,c=d._mouseDestroy,a;function e(h,i){if(h.originalEvent.touches.length>1){return}h.preventDefault();var j=h.originalEvent.changedTouches[0],g=document.createEvent("MouseEvents");g.initMouseEvent(i,true,true,window,1,j.screenX,j.screenY,j.clientX,j.clientY,false,false,false,false,0,null);h.target.dispatchEvent(g)}d._touchStart=function(h){var g=this;if(a||!g._mouseCapture(h.originalEvent.changedTouches[0])){return}a=true;g._touchMoved=false;e(h,"mouseover");e(h,"mousemove");e(h,"mousedown")};d._touchMove=function(g){if(!a){return}this._touchMoved=true;e(g,"mousemove")};d._touchEnd=function(g){if(!a){return}e(g,"mouseup");e(g,"mouseout");if(!this._touchMoved){e(g,"click")}a=false};d._mouseInit=function(){var g=this;g.element.bind({touchstart:b.proxy(g,"_touchStart"),touchmove:b.proxy(g,"_touchMove"),touchend:b.proxy(g,"_touchEnd")});f.call(g)};d._mouseDestroy=function(){var g=this;g.element.unbind({touchstart:b.proxy(g,"_touchStart"),touchmove:b.proxy(g,"_touchMove"),touchend:b.proxy(g,"_touchEnd")});c.call(g)}})(jQuery);/*
+ * SmartMenus jQuery Plugin - v1.0.0 - January 27, 2016
+ * http://www.smartmenus.org/
+ *
+ * Copyright Vasil Dinkov, Vadikom Web Ltd.
+ * http://vadikom.com
+ *
+ * Licensed MIT
+ */
+(function(a){if(typeof define==="function"&&define.amd){define(["jquery"],a)}else{if(typeof module==="object"&&typeof module.exports==="object"){module.exports=a(require("jquery"))}else{a(jQuery)}}}(function(a){var b=[],e=!!window.createPopup,f=false,d="ontouchstart" in window,h=false,g=window.requestAnimationFrame||function(l){return setTimeout(l,1000/60)},c=window.cancelAnimationFrame||function(l){clearTimeout(l)};function k(m){var n=".smartmenus_mouse";if(!h&&!m){var o=true,l=null;a(document).bind(i([["mousemove",function(s){var t={x:s.pageX,y:s.pageY,timeStamp:new Date().getTime()};if(l){var q=Math.abs(l.x-t.x),p=Math.abs(l.y-t.y);if((q>0||p>0)&&q<=2&&p<=2&&t.timeStamp-l.timeStamp<=300){f=true;if(o){var r=a(s.target).closest("a");if(r.is("a")){a.each(b,function(){if(a.contains(this.$root[0],r[0])){this.itemEnter({currentTarget:r[0]});return false}})}o=false}}}l=t}],[d?"touchstart":"pointerover pointermove pointerout MSPointerOver MSPointerMove MSPointerOut",function(p){if(j(p.originalEvent)){f=false}}]],n));h=true}else{if(h&&m){a(document).unbind(n);h=false}}}function j(l){return !/^(4|mouse)$/.test(l.pointerType)}function i(l,n){if(!n){n=""}var m={};a.each(l,function(o,p){m[p[0].split(" ").join(n+" ")+n]=p[1]});return m}a.SmartMenus=function(m,l){this.$root=a(m);this.opts=l;this.rootId="";this.accessIdPrefix="";this.$subArrow=null;this.activatedItems=[];this.visibleSubMenus=[];this.showTimeout=0;this.hideTimeout=0;this.scrollTimeout=0;this.clickActivated=false;this.focusActivated=false;this.zIndexInc=0;this.idInc=0;this.$firstLink=null;this.$firstSub=null;this.disabled=false;this.$disableOverlay=null;this.$touchScrollingSub=null;this.cssTransforms3d="perspective" in m.style||"webkitPerspective" in m.style;this.wasCollapsible=false;this.init()};a.extend(a.SmartMenus,{hideAll:function(){a.each(b,function(){this.menuHideAll()})},destroy:function(){while(b.length){b[0].destroy()}k(true)},prototype:{init:function(n){var l=this;if(!n){b.push(this);this.rootId=(new Date().getTime()+Math.random()+"").replace(/\D/g,"");this.accessIdPrefix="sm-"+this.rootId+"-";if(this.$root.hasClass("sm-rtl")){this.opts.rightToLeftSubMenus=true}var r=".smartmenus";this.$root.data("smartmenus",this).attr("data-smartmenus-id",this.rootId).dataSM("level",1).bind(i([["mouseover focusin",a.proxy(this.rootOver,this)],["mouseout focusout",a.proxy(this.rootOut,this)],["keydown",a.proxy(this.rootKeyDown,this)]],r)).delegate("a",i([["mouseenter",a.proxy(this.itemEnter,this)],["mouseleave",a.proxy(this.itemLeave,this)],["mousedown",a.proxy(this.itemDown,this)],["focus",a.proxy(this.itemFocus,this)],["blur",a.proxy(this.itemBlur,this)],["click",a.proxy(this.itemClick,this)]],r));r+=this.rootId;if(this.opts.hideOnClick){a(document).bind(i([["touchstart",a.proxy(this.docTouchStart,this)],["touchmove",a.proxy(this.docTouchMove,this)],["touchend",a.proxy(this.docTouchEnd,this)],["click",a.proxy(this.docClick,this)]],r))}a(window).bind(i([["resize orientationchange",a.proxy(this.winResize,this)]],r));if(this.opts.subIndicators){this.$subArrow=a("<span/>").addClass("sub-arrow");if(this.opts.subIndicatorsText){this.$subArrow.html(this.opts.subIndicatorsText)}}k()}this.$firstSub=this.$root.find("ul").each(function(){l.menuInit(a(this))}).eq(0);this.$firstLink=this.$root.find("a").eq(0);if(this.opts.markCurrentItem){var p=/(index|default)\.[^#\?\/]*/i,m=/#.*/,q=window.location.href.replace(p,""),o=q.replace(m,"");this.$root.find("a").each(function(){var s=this.href.replace(p,""),t=a(this);if(s==q||s==o){t.addClass("current");if(l.opts.markCurrentTree){t.parentsUntil("[data-smartmenus-id]","ul").each(function(){a(this).dataSM("parent-a").addClass("current")})}}})}this.wasCollapsible=this.isCollapsible()},destroy:function(m){if(!m){var n=".smartmenus";this.$root.removeData("smartmenus").removeAttr("data-smartmenus-id").removeDataSM("level").unbind(n).undelegate(n);n+=this.rootId;a(document).unbind(n);a(window).unbind(n);if(this.opts.subIndicators){this.$subArrow=null}}this.menuHideAll();var l=this;this.$root.find("ul").each(function(){var o=a(this);if(o.dataSM("scroll-arrows")){o.dataSM("scroll-arrows").remove()}if(o.dataSM("shown-before")){if(l.opts.subMenusMinWidth||l.opts.subMenusMaxWidth){o.css({width:"",minWidth:"",maxWidth:""}).removeClass("sm-nowrap")}if(o.dataSM("scroll-arrows")){o.dataSM("scroll-arrows").remove()}o.css({zIndex:"",top:"",left:"",marginLeft:"",marginTop:"",display:""})}if((o.attr("id")||"").indexOf(l.accessIdPrefix)==0){o.removeAttr("id")}}).removeDataSM("in-mega").removeDataSM("shown-before").removeDataSM("ie-shim").removeDataSM("scroll-arrows").removeDataSM("parent-a").removeDataSM("level").removeDataSM("beforefirstshowfired").removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeAttr("aria-expanded");this.$root.find("a.has-submenu").each(function(){var o=a(this);if(o.attr("id").indexOf(l.accessIdPrefix)==0){o.removeAttr("id")}}).removeClass("has-submenu").removeDataSM("sub").removeAttr("aria-haspopup").removeAttr("aria-controls").removeAttr("aria-expanded").closest("li").removeDataSM("sub");if(this.opts.subIndicators){this.$root.find("span.sub-arrow").remove()}if(this.opts.markCurrentItem){this.$root.find("a.current").removeClass("current")}if(!m){this.$root=null;this.$firstLink=null;this.$firstSub=null;if(this.$disableOverlay){this.$disableOverlay.remove();this.$disableOverlay=null}b.splice(a.inArray(this,b),1)}},disable:function(l){if(!this.disabled){this.menuHideAll();if(!l&&!this.opts.isPopup&&this.$root.is(":visible")){var m=this.$root.offset();this.$disableOverlay=a('<div class="sm-jquery-disable-overlay"/>').css({position:"absolute",top:m.top,left:m.left,width:this.$root.outerWidth(),height:this.$root.outerHeight(),zIndex:this.getStartZIndex(true),opacity:0}).appendTo(document.body)}this.disabled=true}},docClick:function(l){if(this.$touchScrollingSub){this.$touchScrollingSub=null;return}if(this.visibleSubMenus.length&&!a.contains(this.$root[0],l.target)||a(l.target).is("a")){this.menuHideAll()}},docTouchEnd:function(m){if(!this.lastTouch){return}if(this.visibleSubMenus.length&&(this.lastTouch.x2===undefined||this.lastTouch.x1==this.lastTouch.x2)&&(this.lastTouch.y2===undefined||this.lastTouch.y1==this.lastTouch.y2)&&(!this.lastTouch.target||!a.contains(this.$root[0],this.lastTouch.target))){if(this.hideTimeout){clearTimeout(this.hideTimeout);this.hideTimeout=0}var l=this;this.hideTimeout=setTimeout(function(){l.menuHideAll()},350)}this.lastTouch=null},docTouchMove:function(m){if(!this.lastTouch){return}var l=m.originalEvent.touches[0];this.lastTouch.x2=l.pageX;this.lastTouch.y2=l.pageY},docTouchStart:function(m){var l=m.originalEvent.touches[0];this.lastTouch={x1:l.pageX,y1:l.pageY,target:l.target}},enable:function(){if(this.disabled){if(this.$disableOverlay){this.$disableOverlay.remove();this.$disableOverlay=null}this.disabled=false}},getClosestMenu:function(m){var l=a(m).closest("ul");while(l.dataSM("in-mega")){l=l.parent().closest("ul")}return l[0]||null},getHeight:function(l){return this.getOffset(l,true)},getOffset:function(n,l){var m;if(n.css("display")=="none"){m={position:n[0].style.position,visibility:n[0].style.visibility};n.css({position:"absolute",visibility:"hidden"}).show()}var o=n[0].getBoundingClientRect&&n[0].getBoundingClientRect(),p=o&&(l?o.height||o.bottom-o.top:o.width||o.right-o.left);if(!p&&p!==0){p=l?n[0].offsetHeight:n[0].offsetWidth}if(m){n.hide().css(m)}return p},getStartZIndex:function(l){var m=parseInt(this[l?"$root":"$firstSub"].css("z-index"));if(!l&&isNaN(m)){m=parseInt(this.$root.css("z-index"))}return !isNaN(m)?m:1},getTouchPoint:function(l){return l.touches&&l.touches[0]||l.changedTouches&&l.changedTouches[0]||l},getViewport:function(l){var m=l?"Height":"Width",o=document.documentElement["client"+m],n=window["inner"+m];if(n){o=Math.min(o,n)}return o},getViewportHeight:function(){return this.getViewport(true)},getViewportWidth:function(){return this.getViewport()},getWidth:function(l){return this.getOffset(l)},handleEvents:function(){return !this.disabled&&this.isCSSOn()},handleItemEvents:function(l){return this.handleEvents()&&!this.isLinkInMegaMenu(l)},isCollapsible:function(){return this.$firstSub.css("position")=="static"},isCSSOn:function(){return this.$firstLink.css("display")=="block"},isFixed:function(){var l=this.$root.css("position")=="fixed";if(!l){this.$root.parentsUntil("body").each(function(){if(a(this).css("position")=="fixed"){l=true;return false}})}return l},isLinkInMegaMenu:function(l){return a(this.getClosestMenu(l[0])).hasClass("mega-menu")},isTouchMode:function(){return !f||this.opts.noMouseOver||this.isCollapsible()},itemActivate:function(p,l){var n=p.closest("ul"),q=n.dataSM("level");if(q>1&&(!this.activatedItems[q-2]||this.activatedItems[q-2][0]!=n.dataSM("parent-a")[0])){var m=this;a(n.parentsUntil("[data-smartmenus-id]","ul").get().reverse()).add(n).each(function(){m.itemActivate(a(this).dataSM("parent-a"))})}if(!this.isCollapsible()||l){this.menuHideSubMenus(!this.activatedItems[q-1]||this.activatedItems[q-1][0]!=p[0]?q-1:q)}this.activatedItems[q-1]=p;if(this.$root.triggerHandler("activate.smapi",p[0])===false){return}var o=p.dataSM("sub");if(o&&(this.isTouchMode()||(!this.opts.showOnClick||this.clickActivated))){this.menuShow(o)}},itemBlur:function(m){var l=a(m.currentTarget);if(!this.handleItemEvents(l)){return}this.$root.triggerHandler("blur.smapi",l[0])},itemClick:function(o){var n=a(o.currentTarget);if(!this.handleItemEvents(n)){return}if(this.$touchScrollingSub&&this.$touchScrollingSub[0]==n.closest("ul")[0]){this.$touchScrollingSub=null;o.stopPropagation();return false}if(this.$root.triggerHandler("click.smapi",n[0])===false){return false}var p=a(o.target).is("span.sub-arrow"),m=n.dataSM("sub"),l=m?m.dataSM("level")==2:false;if(m&&!m.is(":visible")){if(this.opts.showOnClick&&l){this.clickActivated=true}this.itemActivate(n);if(m.is(":visible")){this.focusActivated=true;return false}}else{if(this.isCollapsible()&&p){this.itemActivate(n);this.menuHide(m);return false}}if(this.opts.showOnClick&&l||n.hasClass("disabled")||this.$root.triggerHandler("select.smapi",n[0])===false){return false}},itemDown:function(m){var l=a(m.currentTarget);if(!this.handleItemEvents(l)){return}l.dataSM("mousedown",true)},itemEnter:function(n){var m=a(n.currentTarget);if(!this.handleItemEvents(m)){return}if(!this.isTouchMode()){if(this.showTimeout){clearTimeout(this.showTimeout);this.showTimeout=0}var l=this;this.showTimeout=setTimeout(function(){l.itemActivate(m)},this.opts.showOnClick&&m.closest("ul").dataSM("level")==1?1:this.opts.showTimeout)}this.$root.triggerHandler("mouseenter.smapi",m[0])},itemFocus:function(m){var l=a(m.currentTarget);if(!this.handleItemEvents(l)){return}if(this.focusActivated&&(!this.isTouchMode()||!l.dataSM("mousedown"))&&(!this.activatedItems.length||this.activatedItems[this.activatedItems.length-1][0]!=l[0])){this.itemActivate(l,true)}this.$root.triggerHandler("focus.smapi",l[0])},itemLeave:function(m){var l=a(m.currentTarget);if(!this.handleItemEvents(l)){return}if(!this.isTouchMode()){l[0].blur();if(this.showTimeout){clearTimeout(this.showTimeout);this.showTimeout=0}}l.removeDataSM("mousedown");this.$root.triggerHandler("mouseleave.smapi",l[0])},menuHide:function(m){if(this.$root.triggerHandler("beforehide.smapi",m[0])===false){return}m.stop(true,true);if(m.css("display")!="none"){var l=function(){m.css("z-index","")};if(this.isCollapsible()){if(this.opts.collapsibleHideFunction){this.opts.collapsibleHideFunction.call(this,m,l)}else{m.hide(this.opts.collapsibleHideDuration,l)}}else{if(this.opts.hideFunction){this.opts.hideFunction.call(this,m,l)}else{m.hide(this.opts.hideDuration,l)}}if(m.dataSM("ie-shim")){m.dataSM("ie-shim").remove().css({"-webkit-transform":"",transform:""})}if(m.dataSM("scroll")){this.menuScrollStop(m);m.css({"touch-action":"","-ms-touch-action":"","-webkit-transform":"",transform:""}).unbind(".smartmenus_scroll").removeDataSM("scroll").dataSM("scroll-arrows").hide()}m.dataSM("parent-a").removeClass("highlighted").attr("aria-expanded","false");m.attr({"aria-expanded":"false","aria-hidden":"true"});var n=m.dataSM("level");this.activatedItems.splice(n-1,1);this.visibleSubMenus.splice(a.inArray(m,this.visibleSubMenus),1);this.$root.triggerHandler("hide.smapi",m[0])}},menuHideAll:function(){if(this.showTimeout){clearTimeout(this.showTimeout);this.showTimeout=0}var m=this.opts.isPopup?1:0;for(var l=this.visibleSubMenus.length-1;l>=m;l--){this.menuHide(this.visibleSubMenus[l])}if(this.opts.isPopup){this.$root.stop(true,true);if(this.$root.is(":visible")){if(this.opts.hideFunction){this.opts.hideFunction.call(this,this.$root)}else{this.$root.hide(this.opts.hideDuration)}if(this.$root.dataSM("ie-shim")){this.$root.dataSM("ie-shim").remove()}}}this.activatedItems=[];this.visibleSubMenus=[];this.clickActivated=false;this.focusActivated=false;this.zIndexInc=0;this.$root.triggerHandler("hideAll.smapi")},menuHideSubMenus:function(n){for(var l=this.activatedItems.length-1;l>=n;l--){var m=this.activatedItems[l].dataSM("sub");if(m){this.menuHide(m)}}},menuIframeShim:function(l){if(e&&this.opts.overlapControlsInIE&&!l.dataSM("ie-shim")){l.dataSM("ie-shim",a("<iframe/>").attr({src:"javascript:0",tabindex:-9}).css({position:"absolute",top:"auto",left:"0",opacity:0,border:"0"}))}},menuInit:function(l){if(!l.dataSM("in-mega")){if(l.hasClass("mega-menu")){l.find("ul").dataSM("in-mega",true)}var q=2,m=l[0];while((m=m.parentNode.parentNode)!=this.$root[0]){q++}var n=l.prevAll("a").eq(-1);if(!n.length){n=l.prevAll().find("a").eq(-1)}n.addClass("has-submenu").dataSM("sub",l);l.dataSM("parent-a",n).dataSM("level",q).parent().dataSM("sub",l);var o=n.attr("id")||this.accessIdPrefix+(++this.idInc),p=l.attr("id")||this.accessIdPrefix+(++this.idInc);n.attr({id:o,"aria-haspopup":"true","aria-controls":p,"aria-expanded":"false"});l.attr({id:p,role:"group","aria-hidden":"true","aria-labelledby":o,"aria-expanded":"false"});if(this.opts.subIndicators){n[this.opts.subIndicatorsPos](this.$subArrow.clone())}}},menuPosition:function(K){var r=K.dataSM("parent-a"),D=r.closest("li"),E=D.parent(),l=K.dataSM("level"),t=this.getWidth(K),J=this.getHeight(K),u=r.offset(),o=u.left,m=u.top,q=this.getWidth(r),F=this.getHeight(r),H=a(window),v=H.scrollLeft(),s=H.scrollTop(),z=this.getViewportWidth(),L=this.getViewportHeight(),w=E.parent().is("[data-sm-horizontal-sub]")||l==2&&!E.hasClass("sm-vertical"),B=this.opts.rightToLeftSubMenus&&!D.is("[data-sm-reverse]")||!this.opts.rightToLeftSubMenus&&D.is("[data-sm-reverse]"),p=l==2?this.opts.mainMenuSubOffsetX:this.opts.subMenusSubOffsetX,n=l==2?this.opts.mainMenuSubOffsetY:this.opts.subMenusSubOffsetY,C,A;if(w){C=B?q-t-p:p;A=this.opts.bottomToTopSubMenus?-J-n:F+n}else{C=B?p-t:q-p;A=this.opts.bottomToTopSubMenus?F-n-J:n}if(this.opts.keepInViewport){var N=o+C,M=m+A;if(B&&N<v){C=w?v-N+C:q-p}else{if(!B&&N+t>v+z){C=w?v+z-t-N+C:p-t}}if(!w){if(J<L&&M+J>s+L){A+=s+L-J-M}else{if(J>=L||M<s){A+=s-M}}}if(w&&(M+J>s+L+0.49||M<s)||!w&&J>L+0.49){var G=this;if(!K.dataSM("scroll-arrows")){K.dataSM("scroll-arrows",a([a('<span class="scroll-up"><span class="scroll-up-arrow"></span></span>')[0],a('<span class="scroll-down"><span class="scroll-down-arrow"></span></span>')[0]]).bind({mouseenter:function(){K.dataSM("scroll").up=a(this).hasClass("scroll-up");G.menuScroll(K)},mouseleave:function(x){G.menuScrollStop(K);G.menuScrollOut(K,x)},"mousewheel DOMMouseScroll":function(x){x.preventDefault()}}).insertAfter(K))}var I=".smartmenus_scroll";K.dataSM("scroll",{y:this.cssTransforms3d?0:A-F,step:1,itemH:F,subH:J,arrowDownH:this.getHeight(K.dataSM("scroll-arrows").eq(1))}).bind(i([["mouseover",function(x){G.menuScrollOver(K,x)}],["mouseout",function(x){G.menuScrollOut(K,x)}],["mousewheel DOMMouseScroll",function(x){G.menuScrollMousewheel(K,x)}]],I)).dataSM("scroll-arrows").css({top:"auto",left:"0",marginLeft:C+(parseInt(K.css("border-left-width"))||0),width:t-(parseInt(K.css("border-left-width"))||0)-(parseInt(K.css("border-right-width"))||0),zIndex:K.css("z-index")}).eq(w&&this.opts.bottomToTopSubMenus?0:1).show();if(this.isFixed()){K.css({"touch-action":"none","-ms-touch-action":"none"}).bind(i([[d?"touchstart touchmove touchend":"pointerdown pointermove pointerup MSPointerDown MSPointerMove MSPointerUp",function(x){G.menuScrollTouch(K,x)}]],I))}}}K.css({top:"auto",left:"0",marginLeft:C,marginTop:A-F});this.menuIframeShim(K);if(K.dataSM("ie-shim")){K.dataSM("ie-shim").css({zIndex:K.css("z-index"),width:t,height:J,marginLeft:C,marginTop:A-F})}},menuScroll:function(r,m,n){var p=r.dataSM("scroll"),q=r.dataSM("scroll-arrows"),o=p.up?p.upEnd:p.downEnd,s;if(!m&&p.momentum){p.momentum*=0.92;s=p.momentum;if(s<0.5){this.menuScrollStop(r);return}}else{s=n||(m||!this.opts.scrollAccelerate?this.opts.scrollStep:Math.floor(p.step))}var l=r.dataSM("level");if(this.activatedItems[l-1]&&this.activatedItems[l-1].dataSM("sub")&&this.activatedItems[l-1].dataSM("sub").is(":visible")){this.menuHideSubMenus(l-1)}p.y=p.up&&o<=p.y||!p.up&&o>=p.y?p.y:(Math.abs(o-p.y)>s?p.y+(p.up?s:-s):o);r.add(r.dataSM("ie-shim")).css(this.cssTransforms3d?{"-webkit-transform":"translate3d(0, "+p.y+"px, 0)",transform:"translate3d(0, "+p.y+"px, 0)"}:{marginTop:p.y});if(f&&(p.up&&p.y>p.downEnd||!p.up&&p.y<p.upEnd)){q.eq(p.up?1:0).show()}if(p.y==o){if(f){q.eq(p.up?0:1).hide()}this.menuScrollStop(r)}else{if(!m){if(this.opts.scrollAccelerate&&p.step<this.opts.scrollStep){p.step+=0.2}var t=this;this.scrollTimeout=g(function(){t.menuScroll(r)})}}},menuScrollMousewheel:function(m,n){if(this.getClosestMenu(n.target)==m[0]){n=n.originalEvent;var l=(n.wheelDelta||-n.detail)>0;if(m.dataSM("scroll-arrows").eq(l?0:1).is(":visible")){m.dataSM("scroll").up=l;this.menuScroll(m,true)}}n.preventDefault()},menuScrollOut:function(l,m){if(f){if(!/^scroll-(up|down)/.test((m.relatedTarget||"").className)&&(l[0]!=m.relatedTarget&&!a.contains(l[0],m.relatedTarget)||this.getClosestMenu(m.relatedTarget)!=l[0])){l.dataSM("scroll-arrows").css("visibility","hidden")}}},menuScrollOver:function(n,o){if(f){if(!/^scroll-(up|down)/.test(o.target.className)&&this.getClosestMenu(o.target)==n[0]){this.menuScrollRefreshData(n);var m=n.dataSM("scroll"),l=a(window).scrollTop()-n.dataSM("parent-a").offset().top-m.itemH;n.dataSM("scroll-arrows").eq(0).css("margin-top",l).end().eq(1).css("margin-top",l+this.getViewportHeight()-m.arrowDownH).end().css("visibility","visible")}}},menuScrollRefreshData:function(n){var m=n.dataSM("scroll"),l=a(window).scrollTop()-n.dataSM("parent-a").offset().top-m.itemH;if(this.cssTransforms3d){l=-(parseFloat(n.css("margin-top"))-l)}a.extend(m,{upEnd:l,downEnd:l+this.getViewportHeight()-m.subH})},menuScrollStop:function(l){if(this.scrollTimeout){c(this.scrollTimeout);this.scrollTimeout=0;l.dataSM("scroll").step=1;return true}},menuScrollTouch:function(p,q){q=q.originalEvent;if(j(q)){var m=this.getTouchPoint(q);if(this.getClosestMenu(m.target)==p[0]){var o=p.dataSM("scroll");if(/(start|down)$/i.test(q.type)){if(this.menuScrollStop(p)){q.preventDefault();this.$touchScrollingSub=p}else{this.$touchScrollingSub=null}this.menuScrollRefreshData(p);a.extend(o,{touchStartY:m.pageY,touchStartTime:q.timeStamp})}else{if(/move$/i.test(q.type)){var n=o.touchY!==undefined?o.touchY:o.touchStartY;if(n!==undefined&&n!=m.pageY){this.$touchScrollingSub=p;var l=n<m.pageY;if(o.up!==undefined&&o.up!=l){a.extend(o,{touchStartY:m.pageY,touchStartTime:q.timeStamp})}a.extend(o,{up:l,touchY:m.pageY});this.menuScroll(p,true,Math.abs(m.pageY-n))}q.preventDefault()}else{if(o.touchY!==undefined){if(o.momentum=Math.pow(Math.abs(m.pageY-o.touchStartY)/(q.timeStamp-o.touchStartTime),2)*15){this.menuScrollStop(p);this.menuScroll(p);q.preventDefault()}delete o.touchY}}}}}},menuShow:function(n){if(!n.dataSM("beforefirstshowfired")){n.dataSM("beforefirstshowfired",true);if(this.$root.triggerHandler("beforefirstshow.smapi",n[0])===false){return}}if(this.$root.triggerHandler("beforeshow.smapi",n[0])===false){return}n.dataSM("shown-before",true).stop(true,true);if(!n.is(":visible")){var m=n.dataSM("parent-a");if(this.opts.keepHighlighted||this.isCollapsible()){m.addClass("highlighted")}if(this.isCollapsible()){n.removeClass("sm-nowrap").css({zIndex:"",width:"auto",minWidth:"",maxWidth:"",top:"",left:"",marginLeft:"",marginTop:""})}else{n.css("z-index",this.zIndexInc=(this.zIndexInc||this.getStartZIndex())+1);if(this.opts.subMenusMinWidth||this.opts.subMenusMaxWidth){n.css({width:"auto",minWidth:"",maxWidth:""}).addClass("sm-nowrap");if(this.opts.subMenusMinWidth){n.css("min-width",this.opts.subMenusMinWidth)}if(this.opts.subMenusMaxWidth){var o=this.getWidth(n);n.css("max-width",this.opts.subMenusMaxWidth);if(o>this.getWidth(n)){n.removeClass("sm-nowrap").css("width",this.opts.subMenusMaxWidth)}}}this.menuPosition(n);if(n.dataSM("ie-shim")){n.dataSM("ie-shim").insertBefore(n)}}var l=function(){n.css("overflow","")};if(this.isCollapsible()){if(this.opts.collapsibleShowFunction){this.opts.collapsibleShowFunction.call(this,n,l)}else{n.show(this.opts.collapsibleShowDuration,l)}}else{if(this.opts.showFunction){this.opts.showFunction.call(this,n,l)}else{n.show(this.opts.showDuration,l)}}m.attr("aria-expanded","true");n.attr({"aria-expanded":"true","aria-hidden":"false"});this.visibleSubMenus.push(n);this.$root.triggerHandler("show.smapi",n[0])}},popupHide:function(l){if(this.hideTimeout){clearTimeout(this.hideTimeout);this.hideTimeout=0}var m=this;this.hideTimeout=setTimeout(function(){m.menuHideAll()},l?1:this.opts.hideTimeout)},popupShow:function(o,n){if(!this.opts.isPopup){alert('SmartMenus jQuery Error:\n\nIf you want to show this menu via the "popupShow" method, set the isPopup:true option.');return}if(this.hideTimeout){clearTimeout(this.hideTimeout);this.hideTimeout=0}this.$root.dataSM("shown-before",true).stop(true,true);if(!this.$root.is(":visible")){this.$root.css({left:o,top:n});this.menuIframeShim(this.$root);if(this.$root.dataSM("ie-shim")){this.$root.dataSM("ie-shim").css({zIndex:this.$root.css("z-index"),width:this.getWidth(this.$root),height:this.getHeight(this.$root),left:o,top:n}).insertBefore(this.$root)}var m=this,l=function(){m.$root.css("overflow","")};if(this.opts.showFunction){this.opts.showFunction.call(this,this.$root,l)}else{this.$root.show(this.opts.showDuration,l)}this.visibleSubMenus[0]=this.$root}},refresh:function(){this.destroy(true);this.init(true)},rootKeyDown:function(o){if(!this.handleEvents()){return}switch(o.keyCode){case 27:var m=this.activatedItems[0];if(m){this.menuHideAll();m[0].focus();var n=m.dataSM("sub");if(n){this.menuHide(n)}}break;case 32:var l=a(o.target);if(l.is("a")&&this.handleItemEvents(l)){var n=l.dataSM("sub");if(n&&!n.is(":visible")){this.itemClick({currentTarget:o.target});o.preventDefault()}}break}},rootOut:function(m){if(!this.handleEvents()||this.isTouchMode()||m.target==this.$root[0]){return}if(this.hideTimeout){clearTimeout(this.hideTimeout);this.hideTimeout=0}if(!this.opts.showOnClick||!this.opts.hideOnClick){var l=this;this.hideTimeout=setTimeout(function(){l.menuHideAll()},this.opts.hideTimeout)}},rootOver:function(l){if(!this.handleEvents()||this.isTouchMode()||l.target==this.$root[0]){return}if(this.hideTimeout){clearTimeout(this.hideTimeout);this.hideTimeout=0}},winResize:function(m){if(!this.handleEvents()){if(this.$disableOverlay){var n=this.$root.offset();this.$disableOverlay.css({top:n.top,left:n.left,width:this.$root.outerWidth(),height:this.$root.outerHeight()})}return}if(!("onorientationchange" in window)||m.type=="orientationchange"){var l=this.isCollapsible();if(!(this.wasCollapsible&&l)){if(this.activatedItems.length){this.activatedItems[this.activatedItems.length-1][0].blur()}this.menuHideAll()}this.wasCollapsible=l}}}});a.fn.dataSM=function(l,m){if(m){return this.data(l+"_smartmenus",m)}return this.data(l+"_smartmenus")};a.fn.removeDataSM=function(l){return this.removeData(l+"_smartmenus")};a.fn.smartmenus=function(m){if(typeof m=="string"){var l=arguments,o=m;Array.prototype.shift.call(l);return this.each(function(){var p=a(this).data("smartmenus");if(p&&p[o]){p[o].apply(p,l)}})}var n=a.extend({},a.fn.smartmenus.defaults,m);return this.each(function(){new a.SmartMenus(this,n)})};a.fn.smartmenus.defaults={isPopup:false,mainMenuSubOffsetX:0,mainMenuSubOffsetY:0,subMenusSubOffsetX:0,subMenusSubOffsetY:0,subMenusMinWidth:"10em",subMenusMaxWidth:"20em",subIndicators:true,subIndicatorsPos:"prepend",subIndicatorsText:"+",scrollStep:30,scrollAccelerate:true,showTimeout:250,hideTimeout:500,showDuration:0,showFunction:null,hideDuration:0,hideFunction:function(m,l){m.fadeOut(200,l)},collapsibleShowDuration:0,collapsibleShowFunction:function(m,l){m.slideDown(200,l)},collapsibleHideDuration:0,collapsibleHideFunction:function(m,l){m.slideUp(200,l)},showOnClick:false,hideOnClick:true,noMouseOver:false,keepInViewport:true,keepHighlighted:true,markCurrentItem:false,markCurrentTree:true,rightToLeftSubMenus:false,bottomToTopSubMenus:false,overlapControlsInIE:true};return a}));
\ No newline at end of file
diff --git a/md__go_api.html b/md__go_api.html
index 98df5793d6604e0d642f610d2e6534a9d828a0e0..d4383ae198c29317ea82dc6c8544b49be6012023 100644
--- a/md__go_api.html
+++ b/md__go_api.html
@@ -4,23 +4,21 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <title>FlatBuffers: Go API</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
 <link href="navtree.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
 <script type="text/javascript" src="navtree.js"></script>
 <script type="text/javascript">
   $(document).ready(initResizable);
-  $(window).load(resizeHeight);
 </script>
 <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
 <script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
-  $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,500italic,700,700italic|Roboto+Mono:400,700" rel="stylesheet">
 <link href="style.css" rel="stylesheet" type="text/css"/>
@@ -46,39 +44,19 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.7 -->
+<!-- Generated by Doxygen 1.8.13 -->
 <script type="text/javascript">
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </script>
-  <div id="navrow1" class="tabs">
-    <ul class="tablist">
-      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
-      <li><a href="usergroup0.html"><span>Programmer's&#160;Guide</span></a></li>
-      <li><a href="flatbuffers_support.html"><span>Platform&#160;/&#160;Language&#160;/&#160;Feature&#160;support</span></a></li>
-      <li><a href="flatbuffers_benchmarks.html"><span>Benchmarks</span></a></li>
-      <li><a href="flatbuffers_white_paper.html"><span>FlatBuffers&#160;white&#160;paper</span></a></li>
-      <li><a href="flatbuffers_internals.html"><span>FlatBuffers&#160;internals</span></a></li>
-      <li><a href="flatbuffers_grammar.html"><span>Grammar&#160;of&#160;the&#160;schema&#160;language</span></a></li>
-      <li><a href="usergroup2.html"><span>API&#160;Reference</span></a></li>
-      <li><a href="contributing.html"><span>Contributing</span></a></li>
-      <li>
-        <div id="MSearchBox" class="MSearchBoxInactive">
-        <span class="left">
-          <img id="MSearchSelect" src="search/mag_sel.png"
-               onmouseover="return searchBox.OnSearchSelectShow()"
-               onmouseout="return searchBox.OnSearchSelectHide()"
-               alt=""/>
-          <input type="text" id="MSearchField" value="Search" accesskey="S"
-               onfocus="searchBox.OnSearchFieldFocus(true)" 
-               onblur="searchBox.OnSearchFieldFocus(false)" 
-               onkeyup="searchBox.OnSearchFieldChange(event)"/>
-          </span><span class="right">
-            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
-          </span>
-        </div>
-      </li>
-    </ul>
-  </div>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -99,7 +77,7 @@ $(document).ready(function(){initNavTree('md__go_api.html','');});
      onmouseover="return searchBox.OnSearchSelectShow()"
      onmouseout="return searchBox.OnSearchSelectHide()"
      onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Properties</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+</div>
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
diff --git a/menu.js b/menu.js
new file mode 100644
index 0000000000000000000000000000000000000000..97db4c2392278bf9ddbdff3e8d05ac757cb06db9
--- /dev/null
+++ b/menu.js
@@ -0,0 +1,26 @@
+function initMenu(relPath,searchEnabled,serverSide,searchPage,search) {
+  function makeTree(data,relPath) {
+    var result='';
+    if ('children' in data) {
+      result+='<ul>';
+      for (var i in data.children) {
+        result+='<li><a href="'+relPath+data.children[i].url+'">'+
+                                data.children[i].text+'</a>'+
+                                makeTree(data.children[i],relPath)+'</li>';
+      }
+      result+='</ul>';
+    }
+    return result;
+  }
+
+  $('#main-nav').append(makeTree(menudata,relPath));
+  $('#main-nav').children(':first').addClass('sm sm-dox').attr('id','main-menu');
+  if (searchEnabled) {
+    if (serverSide) {
+      $('#main-menu').append('<li style="float:right"><div id="MSearchBox" class="MSearchBoxInactive"><div class="left"><form id="FSearchBox" action="'+searchPage+'" method="get"><img id="MSearchSelect" src="'+relPath+'search/mag.png" alt=""/><input type="text" id="MSearchField" name="query" value="'+search+'" size="20" accesskey="S" onfocus="searchBox.OnSearchFieldFocus(true)" onblur="searchBox.OnSearchFieldFocus(false)"></form></div><div class="right"></div></div></li>');
+    } else {
+      $('#main-menu').append('<li style="float:right"><div id="MSearchBox" class="MSearchBoxInactive"><span class="left"><img id="MSearchSelect" src="'+relPath+'search/mag_sel.png" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()" alt=""/><input type="text" id="MSearchField" value="'+search+'" accesskey="S" onfocus="searchBox.OnSearchFieldFocus(true)" onblur="searchBox.OnSearchFieldFocus(false)" onkeyup="searchBox.OnSearchFieldChange(event)"/></span><span class="right"><a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="'+relPath+'search/close.png" alt=""/></a></span></div></li>');
+    }
+  }
+  $('#main-menu').smartmenus();
+}
diff --git a/menudata.js b/menudata.js
new file mode 100644
index 0000000000000000000000000000000000000000..934db23ecf8f9cbd482bec4bf56bedaa6403503c
--- /dev/null
+++ b/menudata.js
@@ -0,0 +1,61 @@
+var menudata={children:[
+{text:"Programmer's Guide",url:"usergroup0.html",children:[
+{text:"Building",url:"flatbuffers_guide_building.html"},
+{text:"Tutorial",url:"flatbuffers_guide_tutorial.html"},
+{text:"Using the schema compiler",url:"flatbuffers_guide_using_schema_compiler.html"},
+{text:"Writing a schema",url:"flatbuffers_guide_writing_schema.html"},
+{text:"Use in C++",url:"flatbuffers_guide_use_cpp.html"},
+{text:"Use in C",url:"flatbuffers_guide_use_c.html"},
+{text:"Use in Go",url:"flatbuffers_guide_use_go.html"},
+{text:"Use in Java/C#",url:"flatbuffers_guide_use_java_c-sharp.html"},
+{text:"Use in JavaScript",url:"flatbuffers_guide_use_javascript.html"},
+{text:"Use in PHP",url:"flatbuffers_guide_use_php.html"},
+{text:"Use in Python",url:"flatbuffers_guide_use_python.html"},
+{text:"Schema-less version",url:"flexbuffers.html"},
+{text:"gRPC",url:"usergroup1.html",children:[
+{text:"Use in C++",url:"flatbuffers_grpc_guide_use_cpp.html"}]}]},
+{text:"Platform / Language / Feature support",url:"flatbuffers_support.html"},
+{text:"Benchmarks",url:"flatbuffers_benchmarks.html"},
+{text:"FlatBuffers white paper",url:"flatbuffers_white_paper.html"},
+{text:"FlatBuffers internals",url:"flatbuffers_internals.html"},
+{text:"Grammar of the schema language",url:"flatbuffers_grammar.html"},
+{text:"API Reference",url:"usergroup2.html",children:[
+{text:"APIs",url:"modules.html"},
+{text:"Class List",url:"annotated.html",children:[
+{text:"Class List",url:"annotated.html"},
+{text:"Class Index",url:"classes.html"},
+{text:"Class Hierarchy",url:"hierarchy.html"},
+{text:"Class Members",url:"functions.html",children:[
+{text:"All",url:"functions.html",children:[
+{text:"$",url:"functions.html#index_0x24"},
+{text:"_",url:"functions.html#index__"},
+{text:"a",url:"functions.html#index_a"},
+{text:"c",url:"functions.html#index_c"},
+{text:"d",url:"functions.html#index_d"},
+{text:"e",url:"functions.html#index_e"},
+{text:"f",url:"functions.html#index_f"},
+{text:"g",url:"functions.html#index_g"},
+{text:"i",url:"functions.html#index_i"},
+{text:"k",url:"functions.html#index_k"},
+{text:"n",url:"functions.html#index_n"},
+{text:"o",url:"functions.html#index_o"},
+{text:"p",url:"functions.html#index_p"},
+{text:"r",url:"functions.html#index_r"},
+{text:"s",url:"functions.html#index_s"}]},
+{text:"Functions",url:"functions_func.html",children:[
+{text:"_",url:"functions_func.html#index__"},
+{text:"a",url:"functions_func.html#index_a"},
+{text:"c",url:"functions_func.html#index_c"},
+{text:"d",url:"functions_func.html#index_d"},
+{text:"e",url:"functions_func.html#index_e"},
+{text:"f",url:"functions_func.html#index_f"},
+{text:"g",url:"functions_func.html#index_g"},
+{text:"i",url:"functions_func.html#index_i"},
+{text:"n",url:"functions_func.html#index_n"},
+{text:"o",url:"functions_func.html#index_o"},
+{text:"p",url:"functions_func.html#index_p"},
+{text:"r",url:"functions_func.html#index_r"},
+{text:"s",url:"functions_func.html#index_s"}]},
+{text:"Variables",url:"functions_vars.html"},
+{text:"Properties",url:"functions_prop.html"}]}]}]},
+{text:"Contributing",url:"contributing.html"}]}
diff --git a/modules.html b/modules.html
index 64c023a31edb8cf16d9b7ff0ba672db7882afa19..555927ee0a2dd53da53df21819a608477c6a4dc7 100644
--- a/modules.html
+++ b/modules.html
@@ -4,23 +4,21 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <title>FlatBuffers: APIs</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
 <link href="navtree.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
 <script type="text/javascript" src="navtree.js"></script>
 <script type="text/javascript">
   $(document).ready(initResizable);
-  $(window).load(resizeHeight);
 </script>
 <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
 <script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
-  $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,500italic,700,700italic|Roboto+Mono:400,700" rel="stylesheet">
 <link href="style.css" rel="stylesheet" type="text/css"/>
@@ -46,45 +44,19 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.7 -->
+<!-- Generated by Doxygen 1.8.13 -->
 <script type="text/javascript">
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </script>
-  <div id="navrow1" class="tabs">
-    <ul class="tablist">
-      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
-      <li><a href="usergroup0.html"><span>Programmer's&#160;Guide</span></a></li>
-      <li><a href="flatbuffers_support.html"><span>Platform&#160;/&#160;Language&#160;/&#160;Feature&#160;support</span></a></li>
-      <li><a href="flatbuffers_benchmarks.html"><span>Benchmarks</span></a></li>
-      <li><a href="flatbuffers_white_paper.html"><span>FlatBuffers&#160;white&#160;paper</span></a></li>
-      <li><a href="flatbuffers_internals.html"><span>FlatBuffers&#160;internals</span></a></li>
-      <li><a href="flatbuffers_grammar.html"><span>Grammar&#160;of&#160;the&#160;schema&#160;language</span></a></li>
-      <li class="current"><a href="usergroup2.html"><span>API&#160;Reference</span></a></li>
-      <li><a href="contributing.html"><span>Contributing</span></a></li>
-      <li>
-        <div id="MSearchBox" class="MSearchBoxInactive">
-        <span class="left">
-          <img id="MSearchSelect" src="search/mag_sel.png"
-               onmouseover="return searchBox.OnSearchSelectShow()"
-               onmouseout="return searchBox.OnSearchSelectHide()"
-               alt=""/>
-          <input type="text" id="MSearchField" value="Search" accesskey="S"
-               onfocus="searchBox.OnSearchFieldFocus(true)" 
-               onblur="searchBox.OnSearchFieldFocus(false)" 
-               onkeyup="searchBox.OnSearchFieldChange(event)"/>
-          </span><span class="right">
-            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
-          </span>
-        </div>
-      </li>
-    </ul>
-  </div>
-  <div id="navrow2" class="tabs2">
-    <ul class="tablist">
-      <li class="current"><a href="modules.html"><span>APIs</span></a></li>
-      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
-    </ul>
-  </div>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -105,7 +77,7 @@ $(document).ready(function(){initNavTree('modules.html','');});
      onmouseover="return searchBox.OnSearchSelectShow()"
      onmouseout="return searchBox.OnSearchSelectHide()"
      onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Properties</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+</div>
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
@@ -121,13 +93,11 @@ $(document).ready(function(){initNavTree('modules.html','');});
 <div class="contents">
 <div class="textblock">Here is a list of all modules:</div><div class="directory">
 <table class="directory">
-<tr id="row_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a class="el" href="group__flatbuffers__cpp__api.html" target="_self">C++ API</a></td><td class="desc">FlatBuffers API for C++ </td></tr>
-<tr id="row_1_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a class="el" href="group__flatbuffers__csharp__api.html" target="_self">C# API</a></td><td class="desc">FlatBuffers API for C# </td></tr>
-<tr id="row_2_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a class="el" href="group__flatbuffers__go__api.html" target="_self">Go API</a></td><td class="desc">FlatBuffers API for Go </td></tr>
-<tr id="row_3_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a class="el" href="group__flatbuffers__java__api.html" target="_self">Java API</a></td><td class="desc">FlatBuffers API for Java </td></tr>
-<tr id="row_4_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a class="el" href="group__flatbuffers__javascript__api.html" target="_self">JavaScript API</a></td><td class="desc">FlatBuffers API for JavaScript </td></tr>
-<tr id="row_5_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a class="el" href="group__flatbuffers__php__api.html" target="_self">PHP API</a></td><td class="desc">FlatBuffers API for PHP </td></tr>
-<tr id="row_6_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a class="el" href="group__flatbuffers__python__api.html" target="_self">Python API</a></td><td class="desc">FlatBuffers API for Python </td></tr>
+<tr id="row_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a class="el" href="group__flatbuffers__go__api.html" target="_self">Flatbuffers_go_api</a></td><td class="desc"></td></tr>
+<tr id="row_1_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a class="el" href="group__flatbuffers__java__api.html" target="_self">Flatbuffers_java_api</a></td><td class="desc"></td></tr>
+<tr id="row_2_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a class="el" href="group__flatbuffers__php__api.html" target="_self">Flatbuffers_php_api</a></td><td class="desc"></td></tr>
+<tr id="row_3_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a class="el" href="group__flatbuffers__csharp__api.html" target="_self">Flatbuffers_csharp_api</a></td><td class="desc"></td></tr>
+<tr id="row_4_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a class="el" href="group__flatbuffers__cpp__api.html" target="_self">Flatbuffers_cpp_api</a></td><td class="desc"></td></tr>
 </table>
 </div><!-- directory -->
 </div><!-- contents -->
diff --git a/modules.js b/modules.js
index ac1515c32a83495a0d86678dd83a5ea9dd76ad4f..eacff4d350dee82943f1d3d4bbba1bcc4fca76c3 100644
--- a/modules.js
+++ b/modules.js
@@ -1,10 +1,8 @@
 var modules =
 [
-    [ "C++ API", "group__flatbuffers__cpp__api.html", "group__flatbuffers__cpp__api" ],
-    [ "C# API", "group__flatbuffers__csharp__api.html", "group__flatbuffers__csharp__api" ],
-    [ "Go API", "group__flatbuffers__go__api.html", null ],
-    [ "Java API", "group__flatbuffers__java__api.html", "group__flatbuffers__java__api" ],
-    [ "JavaScript API", "group__flatbuffers__javascript__api.html", "group__flatbuffers__javascript__api" ],
-    [ "PHP API", "group__flatbuffers__php__api.html", "group__flatbuffers__php__api" ],
-    [ "Python API", "group__flatbuffers__python__api.html", null ]
+    [ "Flatbuffers_go_api", "group__flatbuffers__go__api.html", null ],
+    [ "Flatbuffers_java_api", "group__flatbuffers__java__api.html", "group__flatbuffers__java__api" ],
+    [ "Flatbuffers_php_api", "group__flatbuffers__php__api.html", "group__flatbuffers__php__api" ],
+    [ "Flatbuffers_csharp_api", "group__flatbuffers__csharp__api.html", "group__flatbuffers__csharp__api" ],
+    [ "Flatbuffers_cpp_api", "group__flatbuffers__cpp__api.html", "group__flatbuffers__cpp__api" ]
 ];
\ No newline at end of file
diff --git a/namespace_flat_buffers.html b/namespace_flat_buffers.html
index c77536b167098950f17d5e5b6f88d036d1ffe49f..79735911499219e9d334a84ce381402aa2e1e393 100644
--- a/namespace_flat_buffers.html
+++ b/namespace_flat_buffers.html
@@ -4,23 +4,21 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
-<title>FlatBuffers: Package FlatBuffers</title>
+<meta name="generator" content="Doxygen 1.8.13"/>
+<title>FlatBuffers: FlatBuffers Namespace Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
 <link href="navtree.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
 <script type="text/javascript" src="navtree.js"></script>
 <script type="text/javascript">
   $(document).ready(initResizable);
-  $(window).load(resizeHeight);
 </script>
 <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
 <script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
-  $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,500italic,700,700italic|Roboto+Mono:400,700" rel="stylesheet">
 <link href="style.css" rel="stylesheet" type="text/css"/>
@@ -46,39 +44,19 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.7 -->
+<!-- Generated by Doxygen 1.8.13 -->
 <script type="text/javascript">
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </script>
-  <div id="navrow1" class="tabs">
-    <ul class="tablist">
-      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
-      <li><a href="usergroup0.html"><span>Programmer's&#160;Guide</span></a></li>
-      <li><a href="flatbuffers_support.html"><span>Platform&#160;/&#160;Language&#160;/&#160;Feature&#160;support</span></a></li>
-      <li><a href="flatbuffers_benchmarks.html"><span>Benchmarks</span></a></li>
-      <li><a href="flatbuffers_white_paper.html"><span>FlatBuffers&#160;white&#160;paper</span></a></li>
-      <li><a href="flatbuffers_internals.html"><span>FlatBuffers&#160;internals</span></a></li>
-      <li><a href="flatbuffers_grammar.html"><span>Grammar&#160;of&#160;the&#160;schema&#160;language</span></a></li>
-      <li><a href="usergroup2.html"><span>API&#160;Reference</span></a></li>
-      <li><a href="contributing.html"><span>Contributing</span></a></li>
-      <li>
-        <div id="MSearchBox" class="MSearchBoxInactive">
-        <span class="left">
-          <img id="MSearchSelect" src="search/mag_sel.png"
-               onmouseover="return searchBox.OnSearchSelectShow()"
-               onmouseout="return searchBox.OnSearchSelectHide()"
-               alt=""/>
-          <input type="text" id="MSearchField" value="Search" accesskey="S"
-               onfocus="searchBox.OnSearchFieldFocus(true)" 
-               onblur="searchBox.OnSearchFieldFocus(false)" 
-               onkeyup="searchBox.OnSearchFieldChange(event)"/>
-          </span><span class="right">
-            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
-          </span>
-        </div>
-      </li>
-    </ul>
-  </div>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -99,7 +77,7 @@ $(document).ready(function(){initNavTree('namespace_flat_buffers.html','');});
      onmouseover="return searchBox.OnSearchSelectShow()"
      onmouseout="return searchBox.OnSearchSelectHide()"
      onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Properties</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+</div>
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
@@ -112,7 +90,7 @@ $(document).ready(function(){initNavTree('namespace_flat_buffers.html','');});
   <div class="summary">
 <a href="#nested-classes">Classes</a>  </div>
   <div class="headertitle">
-<div class="title">Package FlatBuffers<div class="ingroups"><a class="el" href="group__flatbuffers__csharp__api.html">C# API</a></div></div>  </div>
+<div class="title">FlatBuffers Namespace Reference<div class="ingroups"><a class="el" href="group__flatbuffers__csharp__api.html">Flatbuffers_csharp_api</a></div></div>  </div>
 </div><!--header-->
 <div class="contents">
 <table class="memberdecls">
diff --git a/navtree.css b/navtree.css
index 41a9cb96942beb392d6e62a1ec7a20aca467c602..0cc7e776c3bcced883837e49911a6b694038a814 100644
--- a/navtree.css
+++ b/navtree.css
@@ -94,8 +94,11 @@
 }
 
 .ui-resizable-e {
-  background:url("ftv2splitbar.png") repeat scroll right center transparent;
-  cursor:e-resize;
+  background-image:url("splitbar.png");
+  background-size:100%;
+  background-repeat:no-repeat;
+  background-attachment: scroll;
+  cursor:ew-resize;
   height:100%;
   right:0;
   top:0;
diff --git a/navtree.js b/navtree.js
index 2197759a9e4ebf94f47a4fef5ef15c46e5e67746..e6d31b00d4aa662120b347e15c083f9c083b081d 100644
--- a/navtree.js
+++ b/navtree.js
@@ -1,56 +1,6 @@
-var NAVTREE =
-[
-  [ "FlatBuffers", "index.html", [
-    [ "Overview", "index.html#flatbuffers_overview", null ],
-    [ "Programmer's Guide", "usergroup0.html", [
-      [ "Building", "flatbuffers_guide_building.html", null ],
-      [ "Tutorial", "flatbuffers_guide_tutorial.html", null ],
-      [ "Using the schema compiler", "flatbuffers_guide_using_schema_compiler.html", null ],
-      [ "Writing a schema", "flatbuffers_guide_writing_schema.html", null ],
-      [ "Use in C++", "flatbuffers_guide_use_cpp.html", null ],
-      [ "Use in C", "flatbuffers_guide_use_c.html", null ],
-      [ "Use in Go", "flatbuffers_guide_use_go.html", null ],
-      [ "Use in Java/C#", "flatbuffers_guide_use_java_c-sharp.html", null ],
-      [ "Use in JavaScript", "flatbuffers_guide_use_javascript.html", null ],
-      [ "Use in PHP", "flatbuffers_guide_use_php.html", null ],
-      [ "Use in Python", "flatbuffers_guide_use_python.html", null ],
-      [ "Schema-less version", "flexbuffers.html", null ],
-      [ "gRPC", "usergroup1.html", [
-        [ "Use in C++", "flatbuffers_grpc_guide_use_cpp.html", null ]
-      ] ]
-    ] ],
-    [ "Platform / Language / Feature support", "flatbuffers_support.html", null ],
-    [ "Benchmarks", "flatbuffers_benchmarks.html", null ],
-    [ "FlatBuffers white paper", "flatbuffers_white_paper.html", null ],
-    [ "FlatBuffers internals", "flatbuffers_internals.html", null ],
-    [ "Grammar of the schema language", "flatbuffers_grammar.html", null ],
-    [ "API Reference", "usergroup2.html", [
-      [ "APIs", "modules.html", "modules" ],
-      [ "Class List", null, [
-        [ "Class List", "annotated.html", "annotated" ],
-        [ "Class Index", "classes.html", null ],
-        [ "Class Hierarchy", "hierarchy.html", "hierarchy" ],
-        [ "Class Members", "functions.html", [
-          [ "All", "functions.html", null ],
-          [ "Functions", "functions_func.html", null ],
-          [ "Variables", "functions_vars.html", null ],
-          [ "Properties", "functions_prop.html", null ]
-        ] ]
-      ] ]
-    ] ],
-    [ "Contributing", "contributing.html", null ]
-  ] ]
-];
-
-var NAVTREEINDEX =
-[
-".html",
-"flatbuffers_white_paper.html"
-];
-
-var SYNCONMSG = 'click to disable panel synchronisation';
-var SYNCOFFMSG = 'click to enable panel synchronisation';
 var navTreeSubIndices = new Array();
+var arrowDown = '&#9660;';
+var arrowRight = '&#9658;';
 
 function getData(varName)
 {
@@ -123,17 +73,17 @@ function cachedLink()
 
 function getScript(scriptName,func,show)
 {
-  var head = document.getElementsByTagName("head")[0]; 
+  var head = document.getElementsByTagName("head")[0];
   var script = document.createElement('script');
   script.id = scriptName;
   script.type = 'text/javascript';
-  script.onload = func; 
-  script.src = scriptName+'.js'; 
-  if ($.browser.msie && $.browser.version<=8) { 
+  script.onload = func;
+  script.src = scriptName+'.js';
+  if ($.browser.msie && $.browser.version<=8) {
     // script.onload does not work with older versions of IE
     script.onreadystatechange = function() {
-      if (script.readyState=='complete' || script.readyState=='loaded') { 
-        func(); if (show) showRoot(); 
+      if (script.readyState=='complete' || script.readyState=='loaded') {
+        func(); if (show) showRoot();
       }
     }
   }
@@ -146,18 +96,17 @@ function createIndent(o,domNode,node,level)
   var n = node;
   while (n.parentNode) { level++; n=n.parentNode; }
   if (node.childrenData) {
-    var imgNode = document.createElement("img");
+    var imgNode = document.createElement("span");
+    imgNode.className = 'arrow';
     imgNode.style.paddingLeft=(16*level).toString()+'px';
-    imgNode.width  = 16;
-    imgNode.height = 22;
-    imgNode.border = 0;
+    imgNode.innerHTML=arrowRight;
     node.plus_img = imgNode;
     node.expandToggle = document.createElement("a");
     node.expandToggle.href = "javascript:void(0)";
     node.expandToggle.onclick = function() {
       if (node.expanded) {
         $(node.getChildrenUL()).slideUp("fast");
-        node.plus_img.src = node.relpath+"ftv2pnode.png";
+        node.plus_img.innerHTML=arrowRight;
         node.expanded = false;
       } else {
         expandNode(o, node, false, false);
@@ -165,15 +114,13 @@ function createIndent(o,domNode,node,level)
     }
     node.expandToggle.appendChild(imgNode);
     domNode.appendChild(node.expandToggle);
-    imgNode.src = node.relpath+"ftv2pnode.png";
   } else {
     var span = document.createElement("span");
-    span.style.display = 'inline-block';
+    span.className = 'arrow';
     span.style.width   = 16*(level+1)+'px';
-    span.style.height  = '22px';
     span.innerHTML = '&#160;';
     domNode.appendChild(span);
-  } 
+  }
 }
 
 var animationInProgress = false;
@@ -247,7 +194,7 @@ function newNode(o, po, text, link, childrenData, lastNode)
       var aname = '#'+link.split('#')[1];
       var srcPage = stripPath(pathName());
       var targetPage = stripPath(link.split('#')[0]);
-      a.href = srcPage!=targetPage ? url : "javascript:void(0)"; 
+      a.href = srcPage!=targetPage ? url : "javascript:void(0)";
       a.onclick = function(){
         storeLink(link);
         if (!$(a).parent().parent().hasClass('selected'))
@@ -265,7 +212,7 @@ function newNode(o, po, text, link, childrenData, lastNode)
       a.onclick = function() { storeLink(link); }
     }
   } else {
-    if (childrenData != null) 
+    if (childrenData != null)
     {
       a.className = "nolink";
       a.href = "javascript:void(0)";
@@ -314,17 +261,13 @@ function expandNode(o, node, imm, showRoot)
     } else {
       if (!node.childrenVisited) {
         getNode(o, node);
-      } if (imm || ($.browser.msie && $.browser.version>8)) { 
+      } if (imm || ($.browser.msie && $.browser.version>8)) {
         // somehow slideDown jumps to the start of tree for IE9 :-(
         $(node.getChildrenUL()).show();
       } else {
         $(node.getChildrenUL()).slideDown("fast");
       }
-      if (node.isLast) {
-        node.plus_img.src = node.relpath+"ftv2mlastnode.png";
-      } else {
-        node.plus_img.src = node.relpath+"ftv2mnode.png";
-      }
+      node.plus_img.innerHTML = arrowDown;
       node.expanded = true;
     }
   }
@@ -393,11 +336,7 @@ function showNode(o, node, index, hash)
         getNode(o, node);
       }
       $(node.getChildrenUL()).css({'display':'block'});
-      if (node.isLast) {
-        node.plus_img.src = node.relpath+"ftv2mlastnode.png";
-      } else {
-        node.plus_img.src = node.relpath+"ftv2mnode.png";
-      }
+      node.plus_img.innerHTML = arrowDown;
       node.expanded = true;
       var n = node.children[o.breadcrumbs[index]];
       if (index+1<o.breadcrumbs.length) {
@@ -534,10 +473,9 @@ function initNavTree(toroot,relpath)
   o.node.relpath = relpath;
   o.node.expanded = false;
   o.node.isLast = true;
-  o.node.plus_img = document.createElement("img");
-  o.node.plus_img.src = relpath+"ftv2pnode.png";
-  o.node.plus_img.width = 16;
-  o.node.plus_img.height = 22;
+  o.node.plus_img = document.createElement("span");
+  o.node.plus_img.className = 'arrow';
+  o.node.plus_img.innerHTML = arrowRight;
 
   if (localStorageSupported()) {
     var navSync = $('#nav-sync');
diff --git a/navtreedata.js b/navtreedata.js
new file mode 100644
index 0000000000000000000000000000000000000000..7a3c5763f02ec7c1733bc18bc091e88774cd7b90
--- /dev/null
+++ b/navtreedata.js
@@ -0,0 +1,52 @@
+var NAVTREE =
+[
+  [ "FlatBuffers", "index.html", [
+    [ "Overview", "index.html#flatbuffers_overview", null ],
+    [ "Programmer's Guide", "usergroup0.html", [
+      [ "Building", "flatbuffers_guide_building.html", null ],
+      [ "Tutorial", "flatbuffers_guide_tutorial.html", null ],
+      [ "Using the schema compiler", "flatbuffers_guide_using_schema_compiler.html", null ],
+      [ "Writing a schema", "flatbuffers_guide_writing_schema.html", null ],
+      [ "Use in C++", "flatbuffers_guide_use_cpp.html", null ],
+      [ "Use in C", "flatbuffers_guide_use_c.html", null ],
+      [ "Use in Go", "flatbuffers_guide_use_go.html", null ],
+      [ "Use in Java/C#", "flatbuffers_guide_use_java_c-sharp.html", null ],
+      [ "Use in JavaScript", "flatbuffers_guide_use_javascript.html", null ],
+      [ "Use in PHP", "flatbuffers_guide_use_php.html", null ],
+      [ "Use in Python", "flatbuffers_guide_use_python.html", null ],
+      [ "Schema-less version", "flexbuffers.html", null ],
+      [ "gRPC", "usergroup1.html", [
+        [ "Use in C++", "flatbuffers_grpc_guide_use_cpp.html", null ]
+      ] ]
+    ] ],
+    [ "Platform / Language / Feature support", "flatbuffers_support.html", null ],
+    [ "Benchmarks", "flatbuffers_benchmarks.html", null ],
+    [ "FlatBuffers white paper", "flatbuffers_white_paper.html", null ],
+    [ "FlatBuffers internals", "flatbuffers_internals.html", null ],
+    [ "Grammar of the schema language", "flatbuffers_grammar.html", null ],
+    [ "API Reference", "usergroup2.html", [
+      [ "APIs", "modules.html", "modules" ],
+      [ "Class List", "annotated.html", [
+        [ "Class List", "annotated.html", "annotated_dup" ],
+        [ "Class Index", "classes.html", null ],
+        [ "Class Hierarchy", "hierarchy.html", "hierarchy" ],
+        [ "Class Members", "functions.html", [
+          [ "All", "functions.html", null ],
+          [ "Functions", "functions_func.html", null ],
+          [ "Variables", "functions_vars.html", null ],
+          [ "Properties", "functions_prop.html", null ]
+        ] ]
+      ] ]
+    ] ],
+    [ "Contributing", "contributing.html", null ]
+  ] ]
+];
+
+var NAVTREEINDEX =
+[
+".html",
+"contributing.html"
+];
+
+var SYNCONMSG = 'click to disable panel synchronisation';
+var SYNCOFFMSG = 'click to enable panel synchronisation';
\ No newline at end of file
diff --git a/navtreeindex0.js b/navtreeindex0.js
index ed09fdc5c9e43b349fcc8c7883267868f78f5b5f..515610af168ed07c89298426e4363d4b833959dc 100644
--- a/navtreeindex0.js
+++ b/navtreeindex0.js
@@ -3,98 +3,110 @@ var NAVTREEINDEX0 =
 ".html":[7,1,0,0],
 ".html":[7,1,0,0,0],
 ".html":[7,1,0,0,0,0],
+".html":[7,1,0,1],
 ".html":[7,1,0,3],
 ".html":[7,1,0,3,0],
-".html":[7,1,0,1],
 "annotated.html":[7,1,0],
 "class_flat_buffers_1_1_flat_buffer_builder.html":[7,1,0,2,0],
 "class_flat_buffers_1_1_flat_buffer_builder.html#a0b2addc87bde29213424a187b7b08707":[7,1,0,2,0,8],
 "class_flat_buffers_1_1_flat_buffer_builder.html#a0d182e151b4f57d47069885cc1d05893":[7,1,0,2,0,6],
-"class_flat_buffers_1_1_flat_buffer_builder.html#a1afc6853539aaff7ac6937ed03ff5c7b":[7,1,0,2,0,17],
+"class_flat_buffers_1_1_flat_buffer_builder.html#a1afc6853539aaff7ac6937ed03ff5c7b":[7,1,0,2,0,18],
 "class_flat_buffers_1_1_flat_buffer_builder.html#a3b6e42519f278e4a060895633d048070":[7,1,0,2,0,14],
-"class_flat_buffers_1_1_flat_buffer_builder.html#a40d549b2db96b91b2345d1a44ff3fe13":[7,1,0,2,0,21],
+"class_flat_buffers_1_1_flat_buffer_builder.html#a40d549b2db96b91b2345d1a44ff3fe13":[7,1,0,2,0,25],
 "class_flat_buffers_1_1_flat_buffer_builder.html#a41a1e6f7e7b9098a9d8c1af7157ef2bf":[7,1,0,2,0,4],
+"class_flat_buffers_1_1_flat_buffer_builder.html#a425ab2bd13a0e4331a7190ec2d17c3b2":[7,1,0,2,0,21],
 "class_flat_buffers_1_1_flat_buffer_builder.html#a52c19b3daa97b0272da0dd7121b2ff5f":[7,1,0,2,0,12],
 "class_flat_buffers_1_1_flat_buffer_builder.html#a6b66d785555d19cd0f141978eff78e2e":[7,1,0,2,0,1],
-"class_flat_buffers_1_1_flat_buffer_builder.html#a6f0cbd075878e2c0f021c0947cc8a211":[7,1,0,2,0,20],
+"class_flat_buffers_1_1_flat_buffer_builder.html#a6f0cbd075878e2c0f021c0947cc8a211":[7,1,0,2,0,24],
+"class_flat_buffers_1_1_flat_buffer_builder.html#a703062d740b32a77d26c5f6d1928c75f":[7,1,0,2,0,19],
+"class_flat_buffers_1_1_flat_buffer_builder.html#a709d1ded4ffd922b61bc6f7f4a12fb97":[7,1,0,2,0,17],
 "class_flat_buffers_1_1_flat_buffer_builder.html#a74ed0e43043c6e486dbe40b0d2ff63d6":[7,1,0,2,0,13],
 "class_flat_buffers_1_1_flat_buffer_builder.html#a7970bfc069caeee5dfd994e6c1106ab9":[7,1,0,2,0,5],
 "class_flat_buffers_1_1_flat_buffer_builder.html#a7cacff748cbf996b52de2e31e731af41":[7,1,0,2,0,16],
 "class_flat_buffers_1_1_flat_buffer_builder.html#a82219d659221dfc4c271399d9e56c47a":[7,1,0,2,0,15],
+"class_flat_buffers_1_1_flat_buffer_builder.html#a92de6a8a35e1ae5a07f5578bb0fda16c":[7,1,0,2,0,22],
 "class_flat_buffers_1_1_flat_buffer_builder.html#a93b38c262a248e625ea3719dddf903eb":[7,1,0,2,0,9],
 "class_flat_buffers_1_1_flat_buffer_builder.html#aa9cc4371456b85d6393958ab56cbc515":[7,1,0,2,0,11],
-"class_flat_buffers_1_1_flat_buffer_builder.html#abfd2f4e19cf51f62290a0272683f23b2":[7,1,0,2,0,19],
+"class_flat_buffers_1_1_flat_buffer_builder.html#abfd2f4e19cf51f62290a0272683f23b2":[7,1,0,2,0,23],
 "class_flat_buffers_1_1_flat_buffer_builder.html#ac11b10888152d4f687e8ce4d60022254":[7,1,0,2,0,2],
-"class_flat_buffers_1_1_flat_buffer_builder.html#ac7a48fd125d3f65f1bc1bc67d74eae73":[7,1,0,2,0,18],
+"class_flat_buffers_1_1_flat_buffer_builder.html#ac7a48fd125d3f65f1bc1bc67d74eae73":[7,1,0,2,0,20],
 "class_flat_buffers_1_1_flat_buffer_builder.html#ae1d6d927d400c330cae48951eae546e5":[7,1,0,2,0,7],
 "class_flat_buffers_1_1_flat_buffer_builder.html#ae24f93e3f9672846dd241d585d62c63d":[7,1,0,2,0,0],
 "class_flat_buffers_1_1_flat_buffer_builder.html#aef3581dee532ab763b99947ca43ddcfa":[7,1,0,2,0,10],
 "class_flat_buffers_1_1_flat_buffer_builder.html#aef6feaf282148043e6a1c9c1ba9e2094":[7,1,0,2,0,3],
-"class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html":[7,0,5,0],
-"class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html#a01be3a805c221796997b023b64e90826":[7,0,5,0,11],
-"class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html#a127fe515651f4b4347ea8e01b3951934":[7,0,5,0,7],
-"class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html#a1e11aa1f080749100de6e153e88f9dd5":[7,0,5,0,9],
-"class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html#a23a5478774e8909117d31b62dde51e86":[7,0,5,0,3],
-"class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html#a570a0024a8a54e2f73374c94b8fa6c42":[7,0,5,0,12],
-"class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html#a5aa5323732b1efe0da24fa235a40f5d4":[7,0,5,0,0],
-"class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html#a5ce6215b65e222b8ee22d3eb4436e404":[7,0,5,0,4],
-"class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html#a5d75bca1a17d58bb6e383a73761ba45f":[7,0,5,0,16],
-"class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html#a63c9d66329dff15855d11c89134599e0":[7,0,5,0,5],
-"class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html#a6add2b19644657fbe0925cb0238618c6":[7,0,5,0,8],
-"class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html#a6f4a37444fca01dcbd0922d18cf2be5c":[7,0,5,0,10],
-"class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html#a723a1053d3a17d5433c37bdbd015844e":[7,0,5,0,1],
-"class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html#a799f0d1cf0fff359d6d04768108cb2a5":[7,0,5,0,15],
-"class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html#a7b78098530190cb90d315419fb1d21fc":[7,0,5,0,2],
-"class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html#a8875bff7ef67af16938cabe719ceac70":[7,0,5,0,6],
-"class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html#a967e7dc8f051d4e73b3155e3b281d7b4":[7,0,5,0,17],
-"class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html#aa01f9205792614930138e19d3e310b7b":[7,0,5,0,18],
-"class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html#ac54a8acfac1dda020b610da53b2d9a0f":[7,0,5,0,13],
-"class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html#ae7e97c2d21da04ef483e6940d442938f":[7,0,5,0,14],
-"classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html":[7,0,3,0],
-"classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a083507c3c359c28bb008142e8ad41a7d":[7,0,3,0,34],
-"classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a0e1215f334989ecc59b49a3239aed5b5":[7,0,3,0,12],
-"classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a0e3fae083ea9c9bff3b80cde3f4581bb":[7,0,3,0,32],
-"classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a108d4c3d931b4f2a63a71aeefa562bba":[7,0,3,0,33],
-"classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a189de474e0c39d663cc65fa21a63f071":[7,0,3,0,23],
-"classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a1c0ae381bf6adb84b18e613aadf8d4db":[7,0,3,0,11],
-"classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a2023123a33f19d670182d5f00ef9aa59":[7,0,3,0,28],
-"classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a24114cfb1adb89f1e3d72736b06a8df0":[7,0,3,0,29],
-"classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a24ea4649f508a7843e429737a4a9fad1":[7,0,3,0,20],
-"classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a3388cd4dc6e5233283fb4927b71a1c39":[7,0,3,0,5],
-"classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a36bc3231cc9f86e6fd2750dcec8b7336":[7,0,3,0,31],
-"classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a37b5debda58afd1fcb71ec82efe663b9":[7,0,3,0,16],
-"classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a3a5dd461dc86a2132eaa4f0348b4c001":[7,0,3,0,15],
-"classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a4a2e8c6430c6538509147225b8a4697e":[7,0,3,0,27],
-"classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a53e6356cfef3d6be298efb9a0d67be06":[7,0,3,0,7],
-"classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a55c20e99ba68be516dfbddfddb9efd4d":[7,0,3,0,10],
-"classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a5a98de8b6e8fc5df984c435ba3181690":[7,0,3,0,35],
-"classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a61ad1938219bcdbe99cc4b668f4c0f99":[7,0,3,0,6],
-"classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a67a9f5dcd251735d6b96e1ad46de9d94":[7,0,3,0,14],
-"classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a81a5c2d7ab36e913cc16d9499aabe078":[7,0,3,0,36],
-"classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a86b42641d0c600afa11f8c8493f5e6a3":[7,0,3,0,30],
-"classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a8d676eb9973ecba574a220cdef725577":[7,0,3,0,18],
-"classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#aa636cf5190524c43212b6d96239d7672":[7,0,3,0,37],
-"classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#aaadff3772bfdff756b4f269afae5ac69":[7,0,3,0,24],
-"classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#ab8fc86fe501b182b4a1a50fcdbcb3e6b":[7,0,3,0,38],
-"classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#abd3b2f9b239a702ffaa8a1e97894f09e":[7,0,3,0,17],
-"classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#abf0fd34f0d93a9d89f595fddf752feb7":[7,0,3,0,21],
-"classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#ac36c1fc72851b17129fc763da00cff32":[7,0,3,0,9],
-"classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#ac8a8a558ce1d2531447a765636db2387":[7,0,3,0,4],
-"classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#acc889115f91460ca89ce981cb02c2039":[7,0,3,0,19],
-"classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#adf671e70a4d30c85f37393c47a7a7dd1":[7,0,3,0,25],
-"classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#ae019d7ee089c95a37421365d5fb9533b":[7,0,3,0,8],
-"classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#ae3a3fbf645e64ce784a524f935a6e6f2":[7,0,3,0,26],
-"classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#ae817751382089b603753452cc1e56790":[7,0,3,0,13],
-"classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#aed1e475e75409625c8df85dc3d396e4c":[7,0,3,0,2],
-"classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#aee9ed3214a7b35075773c506e3d95a14":[7,0,3,0,22],
-"classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#af49427a6a8a6ec24f3c9cf812f30812d":[7,0,3,0,3],
-"classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder_1_1_heap_byte_buffer_factory.html":[7,0,3,0,1],
-"classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder_1_1_heap_byte_buffer_factory.html#aac26ff51a8162b37a072792ec9068644":[7,0,3,0,1,0],
+"class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html":[7,0,2,0],
+"class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html#a01be3a805c221796997b023b64e90826":[7,0,2,0,11],
+"class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html#a127fe515651f4b4347ea8e01b3951934":[7,0,2,0,7],
+"class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html#a1e11aa1f080749100de6e153e88f9dd5":[7,0,2,0,9],
+"class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html#a23a5478774e8909117d31b62dde51e86":[7,0,2,0,3],
+"class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html#a570a0024a8a54e2f73374c94b8fa6c42":[7,0,2,0,12],
+"class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html#a5aa5323732b1efe0da24fa235a40f5d4":[7,0,2,0,0],
+"class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html#a5ce6215b65e222b8ee22d3eb4436e404":[7,0,2,0,4],
+"class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html#a5d75bca1a17d58bb6e383a73761ba45f":[7,0,2,0,16],
+"class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html#a63c9d66329dff15855d11c89134599e0":[7,0,2,0,5],
+"class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html#a6add2b19644657fbe0925cb0238618c6":[7,0,2,0,8],
+"class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html#a6f4a37444fca01dcbd0922d18cf2be5c":[7,0,2,0,10],
+"class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html#a723a1053d3a17d5433c37bdbd015844e":[7,0,2,0,1],
+"class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html#a799f0d1cf0fff359d6d04768108cb2a5":[7,0,2,0,15],
+"class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html#a7b78098530190cb90d315419fb1d21fc":[7,0,2,0,2],
+"class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html#a8875bff7ef67af16938cabe719ceac70":[7,0,2,0,6],
+"class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html#a967e7dc8f051d4e73b3155e3b281d7b4":[7,0,2,0,17],
+"class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html#aa01f9205792614930138e19d3e310b7b":[7,0,2,0,18],
+"class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html#ac54a8acfac1dda020b610da53b2d9a0f":[7,0,2,0,13],
+"class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html#ae7e97c2d21da04ef483e6940d442938f":[7,0,2,0,14],
+"classcom_1_1google_1_1flatbuffers_1_1_byte_buffer_util.html":[7,0,1,0],
+"classcom_1_1google_1_1flatbuffers_1_1_byte_buffer_util.html#a4c87c63fa8d31e039b344bbaef00a3be":[7,0,1,0,0],
+"classcom_1_1google_1_1flatbuffers_1_1_byte_buffer_util.html#a58d6c39c53a0c981a2f72a5eca7d992c":[7,0,1,0,1],
+"classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html":[7,0,1,1],
+"classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a083507c3c359c28bb008142e8ad41a7d":[7,0,1,1,38],
+"classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a0e1215f334989ecc59b49a3239aed5b5":[7,0,1,1,12],
+"classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a0e3fae083ea9c9bff3b80cde3f4581bb":[7,0,1,1,36],
+"classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a108d4c3d931b4f2a63a71aeefa562bba":[7,0,1,1,37],
+"classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a189de474e0c39d663cc65fa21a63f071":[7,0,1,1,25],
+"classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a1c0ae381bf6adb84b18e613aadf8d4db":[7,0,1,1,11],
+"classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a2023123a33f19d670182d5f00ef9aa59":[7,0,1,1,32],
+"classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a24114cfb1adb89f1e3d72736b06a8df0":[7,0,1,1,33],
+"classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a24ea4649f508a7843e429737a4a9fad1":[7,0,1,1,20],
+"classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a3388cd4dc6e5233283fb4927b71a1c39":[7,0,1,1,5],
+"classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a36bc3231cc9f86e6fd2750dcec8b7336":[7,0,1,1,35],
+"classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a37b5debda58afd1fcb71ec82efe663b9":[7,0,1,1,16],
+"classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a3a5dd461dc86a2132eaa4f0348b4c001":[7,0,1,1,15],
+"classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a4a2e8c6430c6538509147225b8a4697e":[7,0,1,1,31],
+"classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a53e6356cfef3d6be298efb9a0d67be06":[7,0,1,1,7],
+"classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a55c20e99ba68be516dfbddfddb9efd4d":[7,0,1,1,10],
+"classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a5a98de8b6e8fc5df984c435ba3181690":[7,0,1,1,39],
+"classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a61ad1938219bcdbe99cc4b668f4c0f99":[7,0,1,1,6],
+"classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a67a9f5dcd251735d6b96e1ad46de9d94":[7,0,1,1,14],
+"classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a81a5c2d7ab36e913cc16d9499aabe078":[7,0,1,1,40],
+"classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a86b42641d0c600afa11f8c8493f5e6a3":[7,0,1,1,34],
+"classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a8d676eb9973ecba574a220cdef725577":[7,0,1,1,18],
+"classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#aa00c035b0f60abe32a5f1467ebd4ec54":[7,0,1,1,26],
+"classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#aa636cf5190524c43212b6d96239d7672":[7,0,1,1,41],
+"classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#aaadff3772bfdff756b4f269afae5ac69":[7,0,1,1,28],
+"classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#ab179d8aa4c4b782d83b3817a6b08ee35":[7,0,1,1,27],
+"classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#ab8fc86fe501b182b4a1a50fcdbcb3e6b":[7,0,1,1,42],
+"classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#abd3b2f9b239a702ffaa8a1e97894f09e":[7,0,1,1,17],
+"classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#abf0fd34f0d93a9d89f595fddf752feb7":[7,0,1,1,21],
+"classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#ac36c1fc72851b17129fc763da00cff32":[7,0,1,1,9],
+"classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#ac8a8a558ce1d2531447a765636db2387":[7,0,1,1,4],
+"classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#acc889115f91460ca89ce981cb02c2039":[7,0,1,1,19],
+"classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#adf671e70a4d30c85f37393c47a7a7dd1":[7,0,1,1,29],
+"classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#ae019d7ee089c95a37421365d5fb9533b":[7,0,1,1,8],
+"classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#ae3a3fbf645e64ce784a524f935a6e6f2":[7,0,1,1,30],
+"classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#ae817751382089b603753452cc1e56790":[7,0,1,1,13],
+"classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#aed1e475e75409625c8df85dc3d396e4c":[7,0,1,1,2],
+"classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#aee9ed3214a7b35075773c506e3d95a14":[7,0,1,1,23],
+"classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#af344604d66e9e8524fef826fc516d5b2":[7,0,1,1,22],
+"classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#af49427a6a8a6ec24f3c9cf812f30812d":[7,0,1,1,3],
+"classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#afc31aba1a9523fde4be3558f8f19f49b":[7,0,1,1,24],
+"classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder_1_1_heap_byte_buffer_factory.html":[7,0,1,1,1],
+"classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder_1_1_heap_byte_buffer_factory.html#aac26ff51a8162b37a072792ec9068644":[7,0,1,1,1,0],
 "classes.html":[7,1,1],
 "classflatbuffers_1_1_allocator.html":[7,1,0,1,0],
+"classflatbuffers_1_1_allocator.html#a1344ebeb1c1ab40a6d5b78b4e20ed187":[7,1,0,1,0,4],
 "classflatbuffers_1_1_allocator.html#a96abc6f31fe94e932d7f4daac10388b9":[7,1,0,1,0,0],
 "classflatbuffers_1_1_allocator.html#ab72efb51f31b9238373f5922ac282a89":[7,1,0,1,0,2],
-"classflatbuffers_1_1_allocator.html#ae94248cd85a8abf1aa5c0cc957d1cb69":[7,1,0,1,0,3],
+"classflatbuffers_1_1_allocator.html#afa22a0382f1886795440785d7e3bb478":[7,1,0,1,0,3],
 "classflatbuffers_1_1_allocator.html#afbce153366f4087f2876384ecc9d0674":[7,1,0,1,0,1],
 "classflatbuffers_1_1_default_allocator.html":[7,1,0,1,1],
 "classflatbuffers_1_1_default_allocator.html#a57604c8749237a162bb22fcea09482ef":[7,1,0,1,1,2],
@@ -105,149 +117,137 @@ var NAVTREEINDEX0 =
 "classflatbuffers_1_1_detached_buffer.html#a0a33d382b1306177f5b0e5bc8ad4d3fd":[7,1,0,1,2,10],
 "classflatbuffers_1_1_detached_buffer.html#a0f138004d6acacc5aab3ce69bf5a8ebd":[7,1,0,1,2,18],
 "classflatbuffers_1_1_detached_buffer.html#a1fadd8be4586d8a6a0df5e26e90f3f79":[7,1,0,1,2,11],
+"classflatbuffers_1_1_detached_buffer.html#a2d645442b005d309191812714ffd6e3f":[7,1,0,1,2,12],
 "classflatbuffers_1_1_detached_buffer.html#a3a4bb3269ce95d77a8765f43fefe44ab":[7,1,0,1,2,6],
+"classflatbuffers_1_1_detached_buffer.html#a4a38b710f767376d6817f4336fea8075":[7,1,0,1,2,4],
 "classflatbuffers_1_1_detached_buffer.html#a587b562bcee4d600272ae25845e9f197":[7,1,0,1,2,0],
 "classflatbuffers_1_1_detached_buffer.html#a63229682fea7e65b8ecd0678d5d1996b":[7,1,0,1,2,15],
 "classflatbuffers_1_1_detached_buffer.html#a7e6327751066fe086a18b881ec3a07ce":[7,1,0,1,2,14],
-"classflatbuffers_1_1_detached_buffer.html#a9056cfb89cf255efda378a5155c26c2b":[7,1,0,1,2,13],
 "classflatbuffers_1_1_detached_buffer.html#a9979d17b00f354dce4c7d9a6dca43d4d":[7,1,0,1,2,3],
-"classflatbuffers_1_1_detached_buffer.html#aa4805376aebda238661d5ac1107bac9a":[7,1,0,1,2,4],
-"classflatbuffers_1_1_detached_buffer.html#aaede53d7b7efc586eaeca5688619acf1":[7,1,0,1,2,8],
+"classflatbuffers_1_1_detached_buffer.html#a9d96770d0432416c76980019b8007c3e":[7,1,0,1,2,8],
 "classflatbuffers_1_1_detached_buffer.html#ab3fb53f0c57d06cd5848cfb59fd656f2":[7,1,0,1,2,16],
 "classflatbuffers_1_1_detached_buffer.html#abae2caaa17d721325235755e6a4feea0":[7,1,0,1,2,1],
-"classflatbuffers_1_1_detached_buffer.html#ac4c234e815adc9d30f97281546162f5c":[7,1,0,1,2,12],
+"classflatbuffers_1_1_detached_buffer.html#ac231641a14b0d365931cd64e0dee867f":[7,1,0,1,2,13],
 "classflatbuffers_1_1_detached_buffer.html#adad27e36c1df5169d35fde21c6fa6745":[7,1,0,1,2,5],
 "classflatbuffers_1_1_detached_buffer.html#aeabe28bec13ac0fe7465142969d467d7":[7,1,0,1,2,17],
 "classflatbuffers_1_1_detached_buffer.html#aebfcd21e5ce5a906684d573e59503556":[7,1,0,1,2,2],
 "classflatbuffers_1_1_detached_buffer.html#aef5440a10f42f2c067f2857dc74fc15b":[7,1,0,1,2,7],
-"classflatbuffers_1_1_flat_buffer_builder.html":[7,0,0,0],
-"classflatbuffers_1_1_flat_buffer_builder.html#a01dabf5cdd6b1b2881337e1e84aa1683":[7,0,0,0,4],
-"classflatbuffers_1_1_flat_buffer_builder.html#a0c9e507b373d598b51052fab4fa34912":[7,0,0,0,39],
-"classflatbuffers_1_1_flat_buffer_builder.html#a0e715d9019060b4b753c4e5228be56e8":[7,0,0,0,49],
-"classflatbuffers_1_1_flat_buffer_builder.html#a1080c9e370e2d9d9d872dadd1131436b":[7,0,0,0,23],
-"classflatbuffers_1_1_flat_buffer_builder.html#a10e8ec7d1c8fbdc21b1c7047bbbe38d9":[7,0,0,0,9],
-"classflatbuffers_1_1_flat_buffer_builder.html#a11c291ccd2159604c149600ee6180b95":[7,0,0,0,26],
-"classflatbuffers_1_1_flat_buffer_builder.html#a16a8fd46b34ad7727406c37b65b6b27a":[7,0,0,0,42],
-"classflatbuffers_1_1_flat_buffer_builder.html#a17c05ea503f311eaf6e56a1be3ac1c49":[7,0,0,0,61],
-"classflatbuffers_1_1_flat_buffer_builder.html#a2130ef232ff405eebe2e7f184ecd06e6":[7,0,0,0,31],
-"classflatbuffers_1_1_flat_buffer_builder.html#a2305b63d367845972b51669dd995cc50":[7,0,0,0,18],
-"classflatbuffers_1_1_flat_buffer_builder.html#a23aa4c910e053446cc404bc486012e54":[7,0,0,0,27],
-"classflatbuffers_1_1_flat_buffer_builder.html#a274b1afcfa16bab2c884129b2788db19":[7,0,0,0,22],
-"classflatbuffers_1_1_flat_buffer_builder.html#a2cca5c89246a53e80e6ad9487f4c36f3":[7,0,0,0,19],
-"classflatbuffers_1_1_flat_buffer_builder.html#a2e4de5642bad6dcd01eb7e7eaf719c89":[7,0,0,0,40],
-"classflatbuffers_1_1_flat_buffer_builder.html#a376bb6858e8b1baab9a437f3f9f0b334":[7,0,0,0,47],
-"classflatbuffers_1_1_flat_buffer_builder.html#a3d57074082aaab8cdeb8474ff9df0b53":[7,0,0,0,25],
-"classflatbuffers_1_1_flat_buffer_builder.html#a3eb68613e5883dc4b8fff6cf7d1223d7":[7,0,0,0,8],
-"classflatbuffers_1_1_flat_buffer_builder.html#a3f4252e9bc005ba6c700469544fdccc9":[7,0,0,0,45],
-"classflatbuffers_1_1_flat_buffer_builder.html#a43f51ba9c8f4f24ea2247a3979d095b8":[7,0,0,0,16],
-"classflatbuffers_1_1_flat_buffer_builder.html#a44960c5aca0227f960c96a7ed4b881b4":[7,0,0,0,20],
-"classflatbuffers_1_1_flat_buffer_builder.html#a53504fc2cab681a7980b03260f8b2f7a":[7,0,0,0,24],
-"classflatbuffers_1_1_flat_buffer_builder.html#a592110519a6c8db1926f1365bf2a58e6":[7,0,0,0,33],
-"classflatbuffers_1_1_flat_buffer_builder.html#a5e2c3a1e47f0ab4a3a3f07a07a52fb45":[7,0,0,0,48],
-"classflatbuffers_1_1_flat_buffer_builder.html#a5e604e3caf95fd0f0e74545af5a8420a":[7,0,0,0,56],
-"classflatbuffers_1_1_flat_buffer_builder.html#a6b31b32fb478a9ec68164e1579c7ebe7":[7,0,0,0,52],
-"classflatbuffers_1_1_flat_buffer_builder.html#a6e90ada59d9553636f72ce8e4a892f72":[7,0,0,0,35],
-"classflatbuffers_1_1_flat_buffer_builder.html#a799701af34c398d8eb86e049b73bcecf":[7,0,0,0,28],
-"classflatbuffers_1_1_flat_buffer_builder.html#a7ba8462e408431054c99d25120326220":[7,0,0,0,41],
-"classflatbuffers_1_1_flat_buffer_builder.html#a7cc10b709dfa3e72083843d1a5e36c15":[7,0,0,0,29],
-"classflatbuffers_1_1_flat_buffer_builder.html#a840b769fbb4148f97d3eed266e4690c3":[7,0,0,0,10],
-"classflatbuffers_1_1_flat_buffer_builder.html#a8704709a2e25ad04679212ee4126b1a1":[7,0,0,0,37],
-"classflatbuffers_1_1_flat_buffer_builder.html#a89c2d7c686a2df8014cb453ec70fdccd":[7,0,0,0,54],
-"classflatbuffers_1_1_flat_buffer_builder.html#a8c3af55e64f5cda9aefa38ac5287ef9f":[7,0,0,0,13],
-"classflatbuffers_1_1_flat_buffer_builder.html#a8dc35f792179df4ca850492c1796d8b8":[7,0,0,0,44],
-"classflatbuffers_1_1_flat_buffer_builder.html#a9190cb2d5a4324ab0c52263b834fff09":[7,0,0,0,2],
-"classflatbuffers_1_1_flat_buffer_builder.html#a952495120d5c56d600640091334b5341":[7,0,0,0,50],
-"classflatbuffers_1_1_flat_buffer_builder.html#a9a3886be63710d8bb88f2ade4ac8420d":[7,0,0,0,51],
-"classflatbuffers_1_1_flat_buffer_builder.html#a9cc09fa59ff9732e972877cfe911c8a5":[7,0,0,0,36],
-"classflatbuffers_1_1_flat_buffer_builder.html#aa1ebce1f3f46832946a95952af1e9c2b":[7,0,0,0,43],
-"classflatbuffers_1_1_flat_buffer_builder.html#aa7e64b654cef62869c3dfd27def92e5d":[7,0,0,0,60],
-"classflatbuffers_1_1_flat_buffer_builder.html#aa905b29dce19a1795c7bce375cf29961":[7,0,0,0,38],
-"classflatbuffers_1_1_flat_buffer_builder.html#aad93d113ac24e86ed04b5236b3f4c0c5":[7,0,0,0,12],
-"classflatbuffers_1_1_flat_buffer_builder.html#ab1f44cc1b130e13b41e9a80de76e25cf":[7,0,0,0,30],
-"classflatbuffers_1_1_flat_buffer_builder.html#ab2cc618aeb6f6c411c7ab734649e1a81":[7,0,0,0,53],
-"classflatbuffers_1_1_flat_buffer_builder.html#ab478a645216d2d613fc7b7c29b0ff9d1":[7,0,0,0,7],
-"classflatbuffers_1_1_flat_buffer_builder.html#ab77d800e77fa76bc758a6c399fd37685":[7,0,0,0,15],
-"classflatbuffers_1_1_flat_buffer_builder.html#ab9942e76ff29eefc702b006b19ce02ba":[7,0,0,0,57],
-"classflatbuffers_1_1_flat_buffer_builder.html#ac0b6a1c5d949f20ad84367fc0f9e1506":[7,0,0,0,14],
-"classflatbuffers_1_1_flat_buffer_builder.html#ac1bfd609f7f736e9a37cedae77448b63":[7,0,0,0,46],
-"classflatbuffers_1_1_flat_buffer_builder.html#ac2b96292fa0fb1534fe7fd218a094d0c":[7,0,0,0,17],
-"classflatbuffers_1_1_flat_buffer_builder.html#ac64d11c219559ea51567eab556e13135":[7,0,0,0,32],
-"classflatbuffers_1_1_flat_buffer_builder.html#ace4606286a25d3fedfb1532934d4cea1":[7,0,0,0,5],
-"classflatbuffers_1_1_flat_buffer_builder.html#add6d502accf426e35f91f2539baff6b2":[7,0,0,0,58],
-"classflatbuffers_1_1_flat_buffer_builder.html#adda5db5eceb1465e9a71ddc012d70839":[7,0,0,0,59],
-"classflatbuffers_1_1_flat_buffer_builder.html#ae4ab74f53187e6c3e6041d34e01904c4":[7,0,0,0,3],
-"classflatbuffers_1_1_flat_buffer_builder.html#ae94b94ba71ea0aeb2d9a98c43b713412":[7,0,0,0,6],
-"classflatbuffers_1_1_flat_buffer_builder.html#aec6f9df2a0366b540b24822414d92cbe":[7,0,0,0,11],
-"classflatbuffers_1_1_flat_buffer_builder.html#af715dd24dd37cb0151dc7a980ad0f207":[7,0,0,0,21],
-"classflatbuffers_1_1_flat_buffer_builder.html#af8c7583c92e1d1d6f438977da5158d19":[7,0,0,0,55],
-"classflatbuffers_1_1_flat_buffer_builder.html#afede51fd9c32d146cbb1832f57c5e1b7":[7,0,0,0,34],
+"classflatbuffers_1_1_flat_buffer_builder.html":[7,0,4,0],
+"classflatbuffers_1_1_flat_buffer_builder.html#a01dabf5cdd6b1b2881337e1e84aa1683":[7,0,4,0,4],
+"classflatbuffers_1_1_flat_buffer_builder.html#a099810f03046139d1854d20a1c2a2e41":[7,0,4,0,46],
+"classflatbuffers_1_1_flat_buffer_builder.html#a0c9e507b373d598b51052fab4fa34912":[7,0,4,0,40],
+"classflatbuffers_1_1_flat_buffer_builder.html#a0e715d9019060b4b753c4e5228be56e8":[7,0,4,0,50],
+"classflatbuffers_1_1_flat_buffer_builder.html#a1080c9e370e2d9d9d872dadd1131436b":[7,0,4,0,24],
+"classflatbuffers_1_1_flat_buffer_builder.html#a10e8ec7d1c8fbdc21b1c7047bbbe38d9":[7,0,4,0,9],
+"classflatbuffers_1_1_flat_buffer_builder.html#a110c2a3298aebef1a9dfa3c44ee84f42":[7,0,4,0,38],
+"classflatbuffers_1_1_flat_buffer_builder.html#a11c291ccd2159604c149600ee6180b95":[7,0,4,0,27],
+"classflatbuffers_1_1_flat_buffer_builder.html#a16a8fd46b34ad7727406c37b65b6b27a":[7,0,4,0,43],
+"classflatbuffers_1_1_flat_buffer_builder.html#a2130ef232ff405eebe2e7f184ecd06e6":[7,0,4,0,32],
+"classflatbuffers_1_1_flat_buffer_builder.html#a2305b63d367845972b51669dd995cc50":[7,0,4,0,19],
+"classflatbuffers_1_1_flat_buffer_builder.html#a23aa4c910e053446cc404bc486012e54":[7,0,4,0,28],
+"classflatbuffers_1_1_flat_buffer_builder.html#a274b1afcfa16bab2c884129b2788db19":[7,0,4,0,23],
+"classflatbuffers_1_1_flat_buffer_builder.html#a2cca5c89246a53e80e6ad9487f4c36f3":[7,0,4,0,20],
+"classflatbuffers_1_1_flat_buffer_builder.html#a2e4de5642bad6dcd01eb7e7eaf719c89":[7,0,4,0,41],
+"classflatbuffers_1_1_flat_buffer_builder.html#a376bb6858e8b1baab9a437f3f9f0b334":[7,0,4,0,48],
+"classflatbuffers_1_1_flat_buffer_builder.html#a3d57074082aaab8cdeb8474ff9df0b53":[7,0,4,0,26],
+"classflatbuffers_1_1_flat_buffer_builder.html#a3eb68613e5883dc4b8fff6cf7d1223d7":[7,0,4,0,8],
+"classflatbuffers_1_1_flat_buffer_builder.html#a43f51ba9c8f4f24ea2247a3979d095b8":[7,0,4,0,17],
+"classflatbuffers_1_1_flat_buffer_builder.html#a44960c5aca0227f960c96a7ed4b881b4":[7,0,4,0,21],
+"classflatbuffers_1_1_flat_buffer_builder.html#a53504fc2cab681a7980b03260f8b2f7a":[7,0,4,0,25],
+"classflatbuffers_1_1_flat_buffer_builder.html#a592110519a6c8db1926f1365bf2a58e6":[7,0,4,0,34],
+"classflatbuffers_1_1_flat_buffer_builder.html#a5e2c3a1e47f0ab4a3a3f07a07a52fb45":[7,0,4,0,49],
+"classflatbuffers_1_1_flat_buffer_builder.html#a5e604e3caf95fd0f0e74545af5a8420a":[7,0,4,0,57],
+"classflatbuffers_1_1_flat_buffer_builder.html#a66c8fd33ab9b3b237954c9ea38648f7f":[7,0,4,0,47],
+"classflatbuffers_1_1_flat_buffer_builder.html#a6b31b32fb478a9ec68164e1579c7ebe7":[7,0,4,0,53],
+"classflatbuffers_1_1_flat_buffer_builder.html#a6e90ada59d9553636f72ce8e4a892f72":[7,0,4,0,36],
+"classflatbuffers_1_1_flat_buffer_builder.html#a799701af34c398d8eb86e049b73bcecf":[7,0,4,0,29],
+"classflatbuffers_1_1_flat_buffer_builder.html#a7ba8462e408431054c99d25120326220":[7,0,4,0,42],
+"classflatbuffers_1_1_flat_buffer_builder.html#a7cc10b709dfa3e72083843d1a5e36c15":[7,0,4,0,30],
+"classflatbuffers_1_1_flat_buffer_builder.html#a840b769fbb4148f97d3eed266e4690c3":[7,0,4,0,10],
+"classflatbuffers_1_1_flat_buffer_builder.html#a89c2d7c686a2df8014cb453ec70fdccd":[7,0,4,0,55],
+"classflatbuffers_1_1_flat_buffer_builder.html#a8c3af55e64f5cda9aefa38ac5287ef9f":[7,0,4,0,14],
+"classflatbuffers_1_1_flat_buffer_builder.html#a9190cb2d5a4324ab0c52263b834fff09":[7,0,4,0,2],
+"classflatbuffers_1_1_flat_buffer_builder.html#a952495120d5c56d600640091334b5341":[7,0,4,0,51],
+"classflatbuffers_1_1_flat_buffer_builder.html#a9a3886be63710d8bb88f2ade4ac8420d":[7,0,4,0,52],
+"classflatbuffers_1_1_flat_buffer_builder.html#a9cc09fa59ff9732e972877cfe911c8a5":[7,0,4,0,37],
+"classflatbuffers_1_1_flat_buffer_builder.html#aa1ebce1f3f46832946a95952af1e9c2b":[7,0,4,0,44],
+"classflatbuffers_1_1_flat_buffer_builder.html#aa7e64b654cef62869c3dfd27def92e5d":[7,0,4,0,61],
+"classflatbuffers_1_1_flat_buffer_builder.html#aa905b29dce19a1795c7bce375cf29961":[7,0,4,0,39],
+"classflatbuffers_1_1_flat_buffer_builder.html#aad93d113ac24e86ed04b5236b3f4c0c5":[7,0,4,0,12],
+"classflatbuffers_1_1_flat_buffer_builder.html#ab0173786ea4ec3e4ae10555639b2996c":[7,0,4,0,3],
+"classflatbuffers_1_1_flat_buffer_builder.html#ab1f44cc1b130e13b41e9a80de76e25cf":[7,0,4,0,31],
+"classflatbuffers_1_1_flat_buffer_builder.html#ab2cc618aeb6f6c411c7ab734649e1a81":[7,0,4,0,54],
+"classflatbuffers_1_1_flat_buffer_builder.html#ab478a645216d2d613fc7b7c29b0ff9d1":[7,0,4,0,7],
+"classflatbuffers_1_1_flat_buffer_builder.html#ab77d800e77fa76bc758a6c399fd37685":[7,0,4,0,16],
+"classflatbuffers_1_1_flat_buffer_builder.html#ab81ab8aa273c270b0942fd81489cad83":[7,0,4,0,45],
+"classflatbuffers_1_1_flat_buffer_builder.html#ab9942e76ff29eefc702b006b19ce02ba":[7,0,4,0,58],
+"classflatbuffers_1_1_flat_buffer_builder.html#ac0b6a1c5d949f20ad84367fc0f9e1506":[7,0,4,0,15],
+"classflatbuffers_1_1_flat_buffer_builder.html#ac2b96292fa0fb1534fe7fd218a094d0c":[7,0,4,0,18],
+"classflatbuffers_1_1_flat_buffer_builder.html#ac51db9083ac815eb81420b6d51f42154":[7,0,4,0,13],
+"classflatbuffers_1_1_flat_buffer_builder.html#ac64d11c219559ea51567eab556e13135":[7,0,4,0,33],
+"classflatbuffers_1_1_flat_buffer_builder.html#ace4606286a25d3fedfb1532934d4cea1":[7,0,4,0,5],
+"classflatbuffers_1_1_flat_buffer_builder.html#adb473c5fd1305213b91eecaa779ecafa":[7,0,4,0,60],
+"classflatbuffers_1_1_flat_buffer_builder.html#add6d502accf426e35f91f2539baff6b2":[7,0,4,0,59],
+"classflatbuffers_1_1_flat_buffer_builder.html#ae94b94ba71ea0aeb2d9a98c43b713412":[7,0,4,0,6],
+"classflatbuffers_1_1_flat_buffer_builder.html#aec6f9df2a0366b540b24822414d92cbe":[7,0,4,0,11],
+"classflatbuffers_1_1_flat_buffer_builder.html#af715dd24dd37cb0151dc7a980ad0f207":[7,0,4,0,22],
+"classflatbuffers_1_1_flat_buffer_builder.html#af8c7583c92e1d1d6f438977da5158d19":[7,0,4,0,56],
+"classflatbuffers_1_1_flat_buffer_builder.html#afede51fd9c32d146cbb1832f57c5e1b7":[7,0,4,0,35],
 "classflatbuffers_1_1_vector.html":[7,1,0,1,9],
-"classflatbuffers_1_1_vector.html#a06d6b1b963b1d738d74afb1cd7ed973c":[7,1,0,1,9,13],
 "classflatbuffers_1_1_vector.html#a0ab8113b331fb069dbaa0a108f6077e1":[7,1,0,1,9,8],
+"classflatbuffers_1_1_vector.html#a0c322798bd0cebd2d20b0b0f92de2f9b":[7,1,0,1,9,13],
 "classflatbuffers_1_1_vector.html#a0eeca1798d12e29e1003e6f831668986":[7,1,0,1,9,1],
-"classflatbuffers_1_1_vector.html#a248da154992320d3ebf75cba205628eb":[7,1,0,1,9,6],
+"classflatbuffers_1_1_vector.html#a161e5fb2aa923fbf2ce210ceea785942":[7,1,0,1,9,15],
+"classflatbuffers_1_1_vector.html#a1dc52eb3974e0484a5421752589d436b":[7,1,0,1,9,18],
+"classflatbuffers_1_1_vector.html#a22b4449883dc8e24e87cde27839294c4":[7,1,0,1,9,16],
 "classflatbuffers_1_1_vector.html#a28dab085738663f5c866cf6570bb6289":[7,1,0,1,9,3],
 "classflatbuffers_1_1_vector.html#a29803cd584a620bf076a69b6e97ecf5c":[7,1,0,1,9,22],
-"classflatbuffers_1_1_vector.html#a39668795e4e5462568cf985291a27f21":[7,1,0,1,9,18],
-"classflatbuffers_1_1_vector.html#a3a78e000a9301e5310adc014c36137cd":[7,1,0,1,9,7],
-"classflatbuffers_1_1_vector.html#a3aa5f37912192c5adf734ed24145174d":[7,1,0,1,9,24],
-"classflatbuffers_1_1_vector.html#a4155ce66380a2cb863e005164ce8ec33":[7,1,0,1,9,14],
-"classflatbuffers_1_1_vector.html#a417d1d01e6d7580042aa6bd5eb35fadd":[7,1,0,1,9,9],
-"classflatbuffers_1_1_vector.html#a4aab53d31e0f3048fceeee9658efdf41":[7,1,0,1,9,16],
+"classflatbuffers_1_1_vector.html#a36bbc83839910913cb0dd0699b1cccf7":[7,1,0,1,9,14],
 "classflatbuffers_1_1_vector.html#a53e9c0cb1d27e4bd355034dbd43f0127":[7,1,0,1,9,11],
+"classflatbuffers_1_1_vector.html#a602e093850b2984a95581edc0b47b2f3":[7,1,0,1,9,24],
 "classflatbuffers_1_1_vector.html#a62170e531ab5fcef8b4c717c0e84553d":[7,1,0,1,9,25],
 "classflatbuffers_1_1_vector.html#a66212ee5146550ed418a358a8b756dc6":[7,1,0,1,9,0],
 "classflatbuffers_1_1_vector.html#a7703f4b1cbb1f99087b48cd58abb740e":[7,1,0,1,9,2],
-"classflatbuffers_1_1_vector.html#a7f62ee2a80431226cf14dd7348613f35":[7,1,0,1,9,23],
+"classflatbuffers_1_1_vector.html#a7ad86e7c749fd750a4e506439a358b06":[7,1,0,1,9,19],
 "classflatbuffers_1_1_vector.html#a8342962f2f9d5e872c90abdeaea8d24e":[7,1,0,1,9,21],
 "classflatbuffers_1_1_vector.html#a874b185e7dec18bb24b1f0ee42afb7cb":[7,1,0,1,9,10],
-"classflatbuffers_1_1_vector.html#a88a9fb17715f2845e3aebd4193007d61":[7,1,0,1,9,20],
-"classflatbuffers_1_1_vector.html#a92d04847cc257e3ec9c75b7514988f13":[7,1,0,1,9,15],
-"classflatbuffers_1_1_vector.html#aa2372140c6a4331774fe15dff81d1d7b":[7,1,0,1,9,19],
-"classflatbuffers_1_1_vector.html#ab0a55bc4f498fbbd81efc47f3435be97":[7,1,0,1,9,17],
+"classflatbuffers_1_1_vector.html#a9fcfb2e218f49d6d66a8b4a22aa58755":[7,1,0,1,9,12],
+"classflatbuffers_1_1_vector.html#aa754e17cb08c36fb8442784c6bc442da":[7,1,0,1,9,7],
 "classflatbuffers_1_1_vector.html#ab51b30f24f9841203b4364af38d424b8":[7,1,0,1,9,4],
+"classflatbuffers_1_1_vector.html#abf919e27aa3e9b60ac30386972c94e65":[7,1,0,1,9,20],
 "classflatbuffers_1_1_vector.html#ac1ab40cdffad6cd50c222fe42c51437b":[7,1,0,1,9,5],
-"classflatbuffers_1_1_vector.html#afb74addfd0fd7ae205c02ebf33d25ea2":[7,1,0,1,9,12],
+"classflatbuffers_1_1_vector.html#ac3ac8d3a0c31f1c822d8f2d37e8099cc":[7,1,0,1,9,23],
+"classflatbuffers_1_1_vector.html#ac4633f563a5a52980ff0b56fa683a4de":[7,1,0,1,9,6],
+"classflatbuffers_1_1_vector.html#ad806c60362e99576ec5706aef30c2a67":[7,1,0,1,9,17],
+"classflatbuffers_1_1_vector.html#ae8e4163ff0781720c5ddb3a6f625d435":[7,1,0,1,9,9],
 "classflatbuffers_1_1_vector_of_any.html":[7,1,0,1,12],
+"classflatbuffers_1_1_vector_of_any.html#a12e968418ca9e4e1d9136ee592ac87e0":[7,1,0,1,12,3],
 "classflatbuffers_1_1_vector_of_any.html#a4ddb1c5d56cf35be5705a63c97b780ed":[7,1,0,1,12,2],
+"classflatbuffers_1_1_vector_of_any.html#a6dd4c5eb58d26510c1e75b104428e078":[7,1,0,1,12,1],
 "classflatbuffers_1_1_vector_of_any.html#a6fb11905e2ac4ad77193151bbe47030a":[7,1,0,1,12,0],
 "classflatbuffers_1_1_vector_of_any.html#ab299b866b29e7010b4b0572daa38c95f":[7,1,0,1,12,4],
-"classflatbuffers_1_1_vector_of_any.html#ae7445c6c623cf74d9b77b11cd87bdf4e":[7,1,0,1,12,3],
-"classflatbuffers_1_1_vector_of_any.html#af84f1a5138506c8835ff1ef1b5194767":[7,1,0,1,12,1],
 "classflatbuffers_1_1vector__downward.html":[7,1,0,1,10],
-"classflatbuffers_1_1vector__downward.html#a00f9fca894e2a2963ae0867ff443d0c2":[7,1,0,1,10,10],
+"classflatbuffers_1_1vector__downward.html#a05dca3cd52b334b0643e2ae9e88b8b87":[7,1,0,1,10,4],
 "classflatbuffers_1_1vector__downward.html#a23cd3d0692fe86eacc6324ea4b58a599":[7,1,0,1,10,12],
 "classflatbuffers_1_1vector__downward.html#a23d309dc71c82cc13d1edefff0e7dd8f":[7,1,0,1,10,14],
-"classflatbuffers_1_1vector__downward.html#a30d500190ca6fe63296b751b37004945":[7,1,0,1,10,2],
-"classflatbuffers_1_1vector__downward.html#a403cfdb1088a2f95ca5a4899dd45e313":[7,1,0,1,10,5],
+"classflatbuffers_1_1vector__downward.html#a297ab537a68b0a02b4577cfc4b5269a9":[7,1,0,1,10,17],
+"classflatbuffers_1_1vector__downward.html#a37856c0e5288338080818681b8aedb5d":[7,1,0,1,10,21],
+"classflatbuffers_1_1vector__downward.html#a44f77c18fb0aed4b9c22020ea69ff8c9":[7,1,0,1,10,20],
+"classflatbuffers_1_1vector__downward.html#a46e8f7f5035f87fe202419d6c5446eb3":[7,1,0,1,10,7],
 "classflatbuffers_1_1vector__downward.html#a4a0686bb0afe2feefec0502f527a11bf":[7,1,0,1,10,11],
 "classflatbuffers_1_1vector__downward.html#a4a5203e2960492f54ac4428d4caee0fc":[7,1,0,1,10,16],
-"classflatbuffers_1_1vector__downward.html#a551fe42b05fef8fc3f6dc6b955c6196b":[7,1,0,1,10,17],
-"classflatbuffers_1_1vector__downward.html#a5edea7ae27f81a770547ec1aada6a666":[7,1,0,1,10,3],
-"classflatbuffers_1_1vector__downward.html#a692f950a105db47f983ff80d4e5c3772":[7,1,0,1,10,7],
+"classflatbuffers_1_1vector__downward.html#a692f950a105db47f983ff80d4e5c3772":[7,1,0,1,10,8],
+"classflatbuffers_1_1vector__downward.html#a70c8de02d393caddcedde603a5a45ae7":[7,1,0,1,10,22],
+"classflatbuffers_1_1vector__downward.html#a784ae8d43071ce644df0c0e8d59772d3":[7,1,0,1,10,18],
 "classflatbuffers_1_1vector__downward.html#a8cfd1b66f93043acb9905519e9998ced":[7,1,0,1,10,13],
-"classflatbuffers_1_1vector__downward.html#a909d38da327dbe36825d059cff0c96e4":[7,1,0,1,10,0],
-"classflatbuffers_1_1vector__downward.html#a99e13c5b83569b07df357c76feb1e614":[7,1,0,1,10,8],
-"classflatbuffers_1_1vector__downward.html#abc8846756ed814d1722913105e0da7a3":[7,1,0,1,10,9],
-"classflatbuffers_1_1vector__downward.html#ac2983200e66457e256301e5bb6ffa2a8":[7,1,0,1,10,6],
+"classflatbuffers_1_1vector__downward.html#a91d7ec62e1b729276605355d12f3456c":[7,1,0,1,10,0],
+"classflatbuffers_1_1vector__downward.html#a96a36503bc1103a11c4a17d26dcaf770":[7,1,0,1,10,19],
+"classflatbuffers_1_1vector__downward.html#a99e13c5b83569b07df357c76feb1e614":[7,1,0,1,10,9],
+"classflatbuffers_1_1vector__downward.html#aa1f13e25b0c619ba9a9c2d6b408e2587":[7,1,0,1,10,5],
+"classflatbuffers_1_1vector__downward.html#abc8846756ed814d1722913105e0da7a3":[7,1,0,1,10,10],
 "classflatbuffers_1_1vector__downward.html#ad99943ac8c66263f3587e18539e9f176":[7,1,0,1,10,1],
-"classflatbuffers_1_1vector__downward.html#ae701e8e1cc468d1a3141e0fa22dc3a70":[7,1,0,1,10,4],
-"classflatbuffers_1_1vector__downward.html#aefa75049c70c00591f7786aeb9def1fe":[7,1,0,1,10,15],
-"contributing.html":[8],
-"flatbuffers_benchmarks.html":[3],
-"flatbuffers_grammar.html":[6],
-"flatbuffers_grpc_guide_use_cpp.html":[1,12,0],
-"flatbuffers_guide_building.html":[1,0],
-"flatbuffers_guide_tutorial.html":[1,1],
-"flatbuffers_guide_use_c.html":[1,5],
-"flatbuffers_guide_use_cpp.html":[1,4],
-"flatbuffers_guide_use_go.html":[1,6],
-"flatbuffers_guide_use_java_c-sharp.html":[1,7],
-"flatbuffers_guide_use_javascript.html":[1,8],
-"flatbuffers_guide_use_php.html":[1,9],
-"flatbuffers_guide_use_python.html":[1,10],
-"flatbuffers_guide_using_schema_compiler.html":[1,2],
-"flatbuffers_guide_writing_schema.html":[1,3],
-"flatbuffers_internals.html":[5],
-"flatbuffers_support.html":[2]
+"classflatbuffers_1_1vector__downward.html#ae701e8e1cc468d1a3141e0fa22dc3a70":[7,1,0,1,10,3],
+"classflatbuffers_1_1vector__downward.html#ae965771454bef2a2f7ad306bfda275f7":[7,1,0,1,10,6],
+"classflatbuffers_1_1vector__downward.html#aec8308b5b544432362049b94c3802800":[7,1,0,1,10,2],
+"classflatbuffers_1_1vector__downward.html#aefa75049c70c00591f7786aeb9def1fe":[7,1,0,1,10,15]
 };
diff --git a/navtreeindex1.js b/navtreeindex1.js
index 5b4f2e8e0d6e1e452ae576cd0dcd21f8425f9b36..8624ffdaf982258067e94734d15e30e01c6afbbc 100644
--- a/navtreeindex1.js
+++ b/navtreeindex1.js
@@ -1,47 +1,48 @@
 var NAVTREEINDEX1 =
 {
+"contributing.html":[8],
+"flatbuffers_benchmarks.html":[3],
+"flatbuffers_grammar.html":[6],
+"flatbuffers_grpc_guide_use_cpp.html":[1,12,0],
+"flatbuffers_guide_building.html":[1,0],
+"flatbuffers_guide_tutorial.html":[1,1],
+"flatbuffers_guide_use_c.html":[1,5],
+"flatbuffers_guide_use_cpp.html":[1,4],
+"flatbuffers_guide_use_go.html":[1,6],
+"flatbuffers_guide_use_java_c-sharp.html":[1,7],
+"flatbuffers_guide_use_javascript.html":[1,8],
+"flatbuffers_guide_use_php.html":[1,9],
+"flatbuffers_guide_use_python.html":[1,10],
+"flatbuffers_guide_using_schema_compiler.html":[1,2],
+"flatbuffers_guide_writing_schema.html":[1,3],
+"flatbuffers_internals.html":[5],
+"flatbuffers_support.html":[2],
 "flatbuffers_white_paper.html":[4],
 "flexbuffers.html":[1,11],
 "functions.html":[7,1,3,0],
 "functions_func.html":[7,1,3,1],
 "functions_prop.html":[7,1,3,3],
 "functions_vars.html":[7,1,3,2],
-"group__flatbuffers__cpp__api.html":[7,0,0],
-"group__flatbuffers__csharp__api.html":[7,0,1],
-"group__flatbuffers__go__api.html":[7,0,2],
-"group__flatbuffers__java__api.html":[7,0,3],
-"group__flatbuffers__javascript__api.html":[7,0,4],
-"group__flatbuffers__javascript__api.html#ga0d1738111b83dffb2c2a7fc8bca19b33":[7,0,4,13],
-"group__flatbuffers__javascript__api.html#ga17a48cc241b10348fd6751ed3a973e2d":[7,0,4,4],
-"group__flatbuffers__javascript__api.html#ga1c36e9d7e294c61d1d6ab0923ea91e8e":[7,0,4,0],
-"group__flatbuffers__javascript__api.html#ga21ba7dd4c33dafd6abb89568e4d9c8b8":[7,0,4,6],
-"group__flatbuffers__javascript__api.html#ga53af3baf50f96de783c06a35934d63bf":[7,0,4,1],
-"group__flatbuffers__javascript__api.html#ga62c5cf622a7bbcfd49f21bddd8b9bef7":[7,0,4,12],
-"group__flatbuffers__javascript__api.html#ga674814e0816f06c8a29ab364d19bed60":[7,0,4,11],
-"group__flatbuffers__javascript__api.html#ga7963cbb1ae0a8589b183f9b26fb25b45":[7,0,4,5],
-"group__flatbuffers__javascript__api.html#ga8260b8431cb8b1c32b5997646cb102a9":[7,0,4,2],
-"group__flatbuffers__javascript__api.html#ga8c5bb4a00c46fb6665787fa9ff52089b":[7,0,4,9],
-"group__flatbuffers__javascript__api.html#ga997af48d5c8f757fcb962168d67e33fb":[7,0,4,7],
-"group__flatbuffers__javascript__api.html#gaa7a7bd67cb1c3190792d4b2b3e66376f":[7,0,4,10],
-"group__flatbuffers__javascript__api.html#gaba2edd0e1e53d1c2815bb1a6ee54abf5":[7,0,4,3],
-"group__flatbuffers__javascript__api.html#gabd00b65bbe9e9fbac55fe4982eb6cec8":[7,0,4,8],
-"group__flatbuffers__php__api.html":[7,0,5],
-"group__flatbuffers__python__api.html":[7,0,6],
+"group__flatbuffers__cpp__api.html":[7,0,4],
+"group__flatbuffers__csharp__api.html":[7,0,3],
+"group__flatbuffers__go__api.html":[7,0,0],
+"group__flatbuffers__java__api.html":[7,0,1],
+"group__flatbuffers__php__api.html":[7,0,2],
 "hierarchy.html":[7,1,2],
 "index.html":[],
 "index.html#flatbuffers_overview":[0],
-"interfacecom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder_1_1_byte_buffer_factory.html":[7,0,3,0,0],
-"interfacecom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder_1_1_byte_buffer_factory.html#a0db9a9033d232d584443a433d7576f4a":[7,0,3,0,0,0],
+"interfacecom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder_1_1_byte_buffer_factory.html":[7,0,1,1,0],
+"interfacecom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder_1_1_byte_buffer_factory.html#a0db9a9033d232d584443a433d7576f4a":[7,0,1,1,0,0],
 "modules.html":[7,0],
 "namespace_flat_buffers.html":[7,1,0,2],
 "pages.html":[],
-"structflatbuffers_1_1_flat_buffer_builder_1_1_field_loc.html":[7,0,0,0,0],
-"structflatbuffers_1_1_flat_buffer_builder_1_1_field_loc.html#a7b6ea8220d21e6fb72ee5ba0258e01c4":[7,0,0,0,0,1],
-"structflatbuffers_1_1_flat_buffer_builder_1_1_field_loc.html#ad46ccd8333f92b41f4e0999554574dde":[7,0,0,0,0,0],
-"structflatbuffers_1_1_flat_buffer_builder_1_1_string_offset_compare.html":[7,0,0,0,1],
-"structflatbuffers_1_1_flat_buffer_builder_1_1_string_offset_compare.html#a014debbfd9bde2a99f960a2123e54d33":[7,0,0,0,1,0],
-"structflatbuffers_1_1_flat_buffer_builder_1_1_string_offset_compare.html#a615f77ed71ea836aa9dc42d0b8722389":[7,0,0,0,1,1],
-"structflatbuffers_1_1_flat_buffer_builder_1_1_string_offset_compare.html#ada9a5bf2a061d414f73b1c176168877b":[7,0,0,0,1,2],
+"structflatbuffers_1_1_flat_buffer_builder_1_1_field_loc.html":[7,0,4,0,0],
+"structflatbuffers_1_1_flat_buffer_builder_1_1_field_loc.html#a7b6ea8220d21e6fb72ee5ba0258e01c4":[7,0,4,0,0,1],
+"structflatbuffers_1_1_flat_buffer_builder_1_1_field_loc.html#ad46ccd8333f92b41f4e0999554574dde":[7,0,4,0,0,0],
+"structflatbuffers_1_1_flat_buffer_builder_1_1_string_offset_compare.html":[7,0,4,0,1],
+"structflatbuffers_1_1_flat_buffer_builder_1_1_string_offset_compare.html#a014debbfd9bde2a99f960a2123e54d33":[7,0,4,0,1,0],
+"structflatbuffers_1_1_flat_buffer_builder_1_1_string_offset_compare.html#a7aa28a410c7eb4c1154702af8b773080":[7,0,4,0,1,1],
+"structflatbuffers_1_1_flat_buffer_builder_1_1_string_offset_compare.html#ada9a5bf2a061d414f73b1c176168877b":[7,0,4,0,1,2],
 "structflatbuffers_1_1_indirect_helper.html":[7,1,0,1,4],
 "structflatbuffers_1_1_indirect_helper.html#a1361c89f203e090c49ece38ad98b9f3a":[7,1,0,1,4,3],
 "structflatbuffers_1_1_indirect_helper.html#a22f780c354a407364894991bfbdf84f6":[7,1,0,1,4,0],
@@ -58,18 +59,21 @@ var NAVTREEINDEX1 =
 "structflatbuffers_1_1_indirect_helper_3_01const_01_t_01_5_01_4.html#ab5e80d3e49909bc37c1d0f11b7fe9200":[7,1,0,1,5,0],
 "structflatbuffers_1_1_indirect_helper_3_01const_01_t_01_5_01_4.html#af05256f82faaed8f706105194245aec5":[7,1,0,1,5,2],
 "structflatbuffers_1_1_offset.html":[7,1,0,1,7],
-"structflatbuffers_1_1_offset.html#a1e7e8a81eae90ce9ac45da57268331fc":[7,1,0,1,7,2],
 "structflatbuffers_1_1_offset.html#a67d328892dd0d940950e8128d6bf795b":[7,1,0,1,7,1],
 "structflatbuffers_1_1_offset.html#a69571197b0da57e6484ef8191ac205a7":[7,1,0,1,7,4],
 "structflatbuffers_1_1_offset.html#a7f8a5b6f29f1edbaad7ed5a850f9f0f7":[7,1,0,1,7,0],
-"structflatbuffers_1_1_offset.html#aef6b640637a58c4a1715346977cd892f":[7,1,0,1,7,3],
+"structflatbuffers_1_1_offset.html#a9aa246b9a824a15c79883f64d162ed3a":[7,1,0,1,7,2],
+"structflatbuffers_1_1_offset.html#acb3e46d417d2c3ee804763bf2eae2109":[7,1,0,1,7,3],
 "structflatbuffers_1_1_string.html":[7,1,0,1,8],
-"structflatbuffers_1_1_string.html#a4690a7167b39c091f03320e17e751c88":[7,1,0,1,8,2],
-"structflatbuffers_1_1_string.html#a533b1aa0d76e4afa7b3b02992621ff6a":[7,1,0,1,8,1],
-"structflatbuffers_1_1_string.html#a859788ba800f24c7c99310c38eb7e195":[7,1,0,1,8,0],
+"structflatbuffers_1_1_string.html#a1028f4733cff070adae7d57bf4325726":[7,1,0,1,8,1],
+"structflatbuffers_1_1_string.html#a4c49c553dfec1da5a6fd8852a97d508e":[7,1,0,1,8,2],
+"structflatbuffers_1_1_string.html#a4d0c586883282e5b93ddbb02f3d71eef":[7,1,0,1,8,0],
 "structflatbuffers_1_1_vector_iterator.html":[7,1,0,1,11],
+"structflatbuffers_1_1_vector_iterator.html#a0b6a5544a9c48f2409690de7bfff6a63":[7,1,0,1,11,7],
 "structflatbuffers_1_1_vector_iterator.html#a105a4e408b45c324f2ad445f5145bf51":[7,1,0,1,11,16],
+"structflatbuffers_1_1_vector_iterator.html#a19fde04fa43b5967564883517ed10a82":[7,1,0,1,11,8],
 "structflatbuffers_1_1_vector_iterator.html#a368b4ee9b89ab783045f96a2f69dec67":[7,1,0,1,11,12],
+"structflatbuffers_1_1_vector_iterator.html#a3f537a771b03e39218f7c77df9a243c8":[7,1,0,1,11,19],
 "structflatbuffers_1_1_vector_iterator.html#a415a449a3d8a04271260ecb380c3fa49":[7,1,0,1,11,5],
 "structflatbuffers_1_1_vector_iterator.html#a428a3df67f852563e25a040e41f3aef9":[7,1,0,1,11,11],
 "structflatbuffers_1_1_vector_iterator.html#a4b0747db5a2080cf4bd8bdbdeb1ceda2":[7,1,0,1,11,20],
@@ -77,20 +81,17 @@ var NAVTREEINDEX1 =
 "structflatbuffers_1_1_vector_iterator.html#a5fae31cf992a81412140a17dde196890":[7,1,0,1,11,10],
 "structflatbuffers_1_1_vector_iterator.html#a67b44f6c5e62b325e8cb4b91c99f60be":[7,1,0,1,11,0],
 "structflatbuffers_1_1_vector_iterator.html#a74d61458dfc1c25d94f80cae8cebaa2a":[7,1,0,1,11,2],
-"structflatbuffers_1_1_vector_iterator.html#a7d2af5bdf25869708ae89ee598f11346":[7,1,0,1,11,8],
-"structflatbuffers_1_1_vector_iterator.html#a7da0129573fc128410b7f0d5f2994301":[7,1,0,1,11,19],
+"structflatbuffers_1_1_vector_iterator.html#a78eb60f8754af75c1b2b5e0d8710ae6c":[7,1,0,1,11,18],
 "structflatbuffers_1_1_vector_iterator.html#a7e10ae7b14f5f79bf0da6bbed7c17b5d":[7,1,0,1,11,6],
-"structflatbuffers_1_1_vector_iterator.html#aa0bc0de48d01ab1ca7bfb73924192451":[7,1,0,1,11,9],
-"structflatbuffers_1_1_vector_iterator.html#aa489e5381af5c940b0fb8e7f54aef1f4":[7,1,0,1,11,7],
-"structflatbuffers_1_1_vector_iterator.html#aa7bd6c57906c8263d184750296d4d4b4":[7,1,0,1,11,13],
+"structflatbuffers_1_1_vector_iterator.html#a9418ef8352fb8010aa2173a46220225c":[7,1,0,1,11,13],
 "structflatbuffers_1_1_vector_iterator.html#aaf71b80a66b9d7f5220e1cd4d2b27b3c":[7,1,0,1,11,21],
 "structflatbuffers_1_1_vector_iterator.html#aaf980961b89f2b647a07135246b75088":[7,1,0,1,11,4],
+"structflatbuffers_1_1_vector_iterator.html#ab8f96b2057c464d22dd03286ee8af5c0":[7,1,0,1,11,22],
 "structflatbuffers_1_1_vector_iterator.html#ac9e9c7cb6d2cc0a69c22b954bb73dc42":[7,1,0,1,11,1],
 "structflatbuffers_1_1_vector_iterator.html#acb8ab7ba9e8ce289a1c8234e872c708b":[7,1,0,1,11,3],
 "structflatbuffers_1_1_vector_iterator.html#ae33269dea219a9a690f00c23d67c0208":[7,1,0,1,11,15],
-"structflatbuffers_1_1_vector_iterator.html#af0e098e805b8a387a108e0d156145329":[7,1,0,1,11,18],
 "structflatbuffers_1_1_vector_iterator.html#af17653cb8a120a9bbd35dcb35a570729":[7,1,0,1,11,17],
-"structflatbuffers_1_1_vector_iterator.html#af7d486593808b4d955cb5f8d424d18ee":[7,1,0,1,11,22],
+"structflatbuffers_1_1_vector_iterator.html#aff7a7187d818290ee71274335f079191":[7,1,0,1,11,9],
 "usergroup0.html":[1],
 "usergroup1.html":[1,12],
 "usergroup2.html":[7]
diff --git a/resize.js b/resize.js
index 304fcb6badde4fd456b1a9996098ff1a49736e7c..56e4a023c18347fdd785d1abda16d4149b5976cd 100644
--- a/resize.js
+++ b/resize.js
@@ -1,73 +1,104 @@
-var cookie_namespace = 'doxygen'; 
-var sidenav,navtree,content,header;
-
-function readCookie(cookie) 
+function initResizable()
 {
-  var myCookie = cookie_namespace+"_"+cookie+"=";
-  if (document.cookie) 
+  var cookie_namespace = 'doxygen';
+  var sidenav,navtree,content,header,collapsed,collapsedWidth=0,barWidth=6,desktop_vp=768,titleHeight;
+
+  function readCookie(cookie)
   {
-    var index = document.cookie.indexOf(myCookie);
-    if (index != -1) 
-    {
-      var valStart = index + myCookie.length;
-      var valEnd = document.cookie.indexOf(";", valStart);
-      if (valEnd == -1) 
-      {
-        valEnd = document.cookie.length;
+    var myCookie = cookie_namespace+"_"+cookie+"=";
+    if (document.cookie) {
+      var index = document.cookie.indexOf(myCookie);
+      if (index != -1) {
+        var valStart = index + myCookie.length;
+        var valEnd = document.cookie.indexOf(";", valStart);
+        if (valEnd == -1) {
+          valEnd = document.cookie.length;
+        }
+        var val = document.cookie.substring(valStart, valEnd);
+        return val;
       }
-      var val = document.cookie.substring(valStart, valEnd);
-      return val;
     }
+    return 0;
   }
-  return 0;
-}
 
-function writeCookie(cookie, val, expiration) 
-{
-  if (val==undefined) return;
-  if (expiration == null) 
+  function writeCookie(cookie, val, expiration)
   {
-    var date = new Date();
-    date.setTime(date.getTime()+(10*365*24*60*60*1000)); // default expiration is one week
-    expiration = date.toGMTString();
+    if (val==undefined) return;
+    if (expiration == null) {
+      var date = new Date();
+      date.setTime(date.getTime()+(10*365*24*60*60*1000)); // default expiration is one week
+      expiration = date.toGMTString();
+    }
+    document.cookie = cookie_namespace + "_" + cookie + "=" + val + "; expires=" + expiration+"; path=/";
   }
-  document.cookie = cookie_namespace + "_" + cookie + "=" + val + "; expires=" + expiration+"; path=/";
-}
- 
-function resizeWidth() 
-{
-  var windowWidth = $(window).width() + "px";
-  var sidenavWidth = $(sidenav).outerWidth();
-  content.css({marginLeft:parseInt(sidenavWidth)+"px"}); 
-  writeCookie('width',sidenavWidth, null);
-}
 
-function restoreWidth(navWidth)
-{
-  var windowWidth = $(window).width() + "px";
-  content.css({marginLeft:parseInt(navWidth)+6+"px"});
-  sidenav.css({width:navWidth + "px"});
-}
+  function resizeWidth()
+  {
+    var windowWidth = $(window).width() + "px";
+    var sidenavWidth = $(sidenav).outerWidth();
+    content.css({marginLeft:parseInt(sidenavWidth)+"px"});
+    writeCookie('width',sidenavWidth-barWidth, null);
+  }
 
-function resizeHeight() 
-{
-  var headerHeight = header.outerHeight();
-  var footerHeight = footer.outerHeight();
-  var windowHeight = $(window).height() - headerHeight - footerHeight;
-  content.css({height:windowHeight + "px"});
-  navtree.css({height:windowHeight + "px"});
-  sidenav.css({height:windowHeight + "px",top: headerHeight+"px"});
-}
+  function restoreWidth(navWidth)
+  {
+    var windowWidth = $(window).width() + "px";
+    content.css({marginLeft:parseInt(navWidth)+barWidth+"px"});
+    sidenav.css({width:navWidth + "px"});
+  }
+
+  function resizeHeight()
+  {
+    var headerHeight = header.outerHeight();
+    var footerHeight = footer.outerHeight();
+    var windowHeight = $(window).height() - headerHeight - footerHeight;
+    content.css({height:windowHeight + "px"});
+    navtree.css({height:windowHeight + "px"});
+    sidenav.css({height:windowHeight + "px"});
+    var width=$(window).width();
+    if (width!=collapsedWidth) {
+      if (width<desktop_vp && collapsedWidth>=desktop_vp) {
+        if (!collapsed) {
+          collapseExpand();
+        }
+      } else if (width>desktop_vp && collapsedWidth<desktop_vp) {
+        if (collapsed) {
+          collapseExpand();
+        }
+      }
+      collapsedWidth=width;
+    }
+  }
+
+  function collapseExpand()
+  {
+    if (sidenav.width()>0) {
+      restoreWidth(0);
+      collapsed=true;
+    }
+    else {
+      var width = readCookie('width');
+      if (width>200 && width<$(window).width()) { restoreWidth(width); } else { restoreWidth(200); }
+      collapsed=false;
+    }
+  }
 
-function initResizable()
-{
   header  = $("#top");
   sidenav = $("#side-nav");
   content = $("#doc-content");
   navtree = $("#nav-tree");
   footer  = $("#nav-path");
   $(".side-nav-resizable").resizable({resize: function(e, ui) { resizeWidth(); } });
+  $(sidenav).resizable({ minWidth: 0 });
   $(window).resize(function() { resizeHeight(); });
+  var device = navigator.userAgent.toLowerCase();
+  var touch_device = device.match(/(iphone|ipod|ipad|android)/);
+  if (touch_device) { /* wider split bar for touch only devices */
+    $(sidenav).css({ paddingRight:'20px' });
+    $('.ui-resizable-e').css({ width:'20px' });
+    $('#nav-sync').css({ right:'34px' });
+    barWidth=20;
+  }
   var width = readCookie('width');
   if (width) { restoreWidth(width); } else { resizeWidth(); }
   resizeHeight();
@@ -76,22 +107,8 @@ function initResizable()
   if (i>=0) window.location.hash=url.substr(i);
   var _preventDefault = function(evt) { evt.preventDefault(); };
   $("#splitbar").bind("dragstart", _preventDefault).bind("selectstart", _preventDefault);
-  $(document).bind('touchmove',function(e){
-    var device = navigator.userAgent.toLowerCase();
-    var ios = device.match(/(iphone|ipod|ipad)/);
-    if (ios) {
-      try {
-        var target = e.target;
-        while (target) {
-          if ($(target).css('-webkit-overflow-scrolling')=='touch') return;
-          target = target.parentNode;
-        }
-        e.preventDefault();
-      } catch(err) {
-        e.preventDefault();
-      }
-    }
-  });
+  $(".ui-resizable-handle").dblclick(collapseExpand);
+  $(window).load(resizeHeight);
 }
 
 
diff --git a/search/all_0.html b/search/all_0.html
index 86e6c08c53a1e050eb995cc4504aaca11d37b79c..f25360b71b0466ad657ea813f4503fd5af0c610f 100644
--- a/search/all_0.html
+++ b/search/all_0.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="all_0.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/search/all_1.html b/search/all_1.html
index 122fcbb863f3f9e27700f33d387f52205a18d63c..b13f0f7f38526ad07c057f6fe19d89c825f6dcc7 100644
--- a/search/all_1.html
+++ b/search/all_1.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="all_1.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/search/all_10.html b/search/all_10.html
index ae54baf77f820c13e75eade7190da7a586e4f80b..d1345a1f0dc5927e9a0d276631958a680b7f2053 100644
--- a/search/all_10.html
+++ b/search/all_10.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="all_10.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/search/all_10.js b/search/all_10.js
index 17fea3b11d7b503eb2778632f352ea5b43e44f5b..114993b1cc336fe8446545e6f1b7cc23b9fb975d 100644
--- a/search/all_10.js
+++ b/search/all_10.js
@@ -1,5 +1,7 @@
 var searchData=
 [
-  ['release',['Release',['../classflatbuffers_1_1_flat_buffer_builder.html#a5e2c3a1e47f0ab4a3a3f07a07a52fb45',1,'flatbuffers::FlatBufferBuilder']]],
-  ['releasebufferpointer',['ReleaseBufferPointer',['../classflatbuffers_1_1_flat_buffer_builder.html#a0e715d9019060b4b753c4e5228be56e8',1,'flatbuffers::FlatBufferBuilder']]]
+  ['sizedbytearray',['sizedByteArray',['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a81a5c2d7ab36e913cc16d9499aabe078',1,'com.google.flatbuffers.FlatBufferBuilder.sizedByteArray(int start, int length)'],['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#aa636cf5190524c43212b6d96239d7672',1,'com.google.flatbuffers.FlatBufferBuilder.sizedByteArray()'],['../class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html#a967e7dc8f051d4e73b3155e3b281d7b4',1,'Google\FlatBuffers\FlatbufferBuilder\sizedByteArray()'],['../class_flat_buffers_1_1_flat_buffer_builder.html#abfd2f4e19cf51f62290a0272683f23b2',1,'FlatBuffers.FlatBufferBuilder.SizedByteArray()']]],
+  ['sizedinputstream',['sizedInputStream',['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#ab8fc86fe501b182b4a1a50fcdbcb3e6b',1,'com::google::flatbuffers::FlatBufferBuilder']]],
+  ['string',['String',['../structflatbuffers_1_1_string.html',1,'flatbuffers']]],
+  ['stringoffsetcompare',['StringOffsetCompare',['../structflatbuffers_1_1_flat_buffer_builder_1_1_string_offset_compare.html',1,'flatbuffers::FlatBufferBuilder']]]
 ];
diff --git a/search/all_11.html b/search/all_11.html
index 547f179784dec05f24975c266c49dc09b4a3eee4..2be8b7111117544e4aa61925e06adeb94304eeac 100644
--- a/search/all_11.html
+++ b/search/all_11.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="all_11.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/search/all_11.js b/search/all_11.js
index 114993b1cc336fe8446545e6f1b7cc23b9fb975d..54de4eed2371bd8f085012b169a87d6c24df2833 100644
--- a/search/all_11.js
+++ b/search/all_11.js
@@ -1,7 +1,4 @@
 var searchData=
 [
-  ['sizedbytearray',['sizedByteArray',['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a81a5c2d7ab36e913cc16d9499aabe078',1,'com.google.flatbuffers.FlatBufferBuilder.sizedByteArray(int start, int length)'],['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#aa636cf5190524c43212b6d96239d7672',1,'com.google.flatbuffers.FlatBufferBuilder.sizedByteArray()'],['../class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html#a967e7dc8f051d4e73b3155e3b281d7b4',1,'Google\FlatBuffers\FlatbufferBuilder\sizedByteArray()'],['../class_flat_buffers_1_1_flat_buffer_builder.html#abfd2f4e19cf51f62290a0272683f23b2',1,'FlatBuffers.FlatBufferBuilder.SizedByteArray()']]],
-  ['sizedinputstream',['sizedInputStream',['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#ab8fc86fe501b182b4a1a50fcdbcb3e6b',1,'com::google::flatbuffers::FlatBufferBuilder']]],
-  ['string',['String',['../structflatbuffers_1_1_string.html',1,'flatbuffers']]],
-  ['stringoffsetcompare',['StringOffsetCompare',['../structflatbuffers_1_1_flat_buffer_builder_1_1_string_offset_compare.html',1,'flatbuffers::FlatBufferBuilder']]]
+  ['tutorial',['Tutorial',['../flatbuffers_guide_tutorial.html',1,'']]]
 ];
diff --git a/search/all_12.html b/search/all_12.html
index ea2030d309913396431929d048b01a1717d9bc10..13c526372b98ae65a5d39de55ad0049b683891e6 100644
--- a/search/all_12.html
+++ b/search/all_12.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="all_12.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/search/all_12.js b/search/all_12.js
index 54de4eed2371bd8f085012b169a87d6c24df2833..9c2265086da636eb7b58254ec179cd9781f83382 100644
--- a/search/all_12.js
+++ b/search/all_12.js
@@ -1,4 +1,12 @@
 var searchData=
 [
-  ['tutorial',['Tutorial',['../flatbuffers_guide_tutorial.html',1,'']]]
+  ['use_20in_20c_2b_2b',['Use in C++',['../flatbuffers_grpc_guide_use_cpp.html',1,'']]],
+  ['use_20in_20c',['Use in C',['../flatbuffers_guide_use_c.html',1,'']]],
+  ['use_20in_20c_2b_2b',['Use in C++',['../flatbuffers_guide_use_cpp.html',1,'']]],
+  ['use_20in_20go',['Use in Go',['../flatbuffers_guide_use_go.html',1,'']]],
+  ['use_20in_20java_2fc_23',['Use in Java/C#',['../flatbuffers_guide_use_java_c-sharp.html',1,'']]],
+  ['use_20in_20javascript',['Use in JavaScript',['../flatbuffers_guide_use_javascript.html',1,'']]],
+  ['use_20in_20php',['Use in PHP',['../flatbuffers_guide_use_php.html',1,'']]],
+  ['use_20in_20python',['Use in Python',['../flatbuffers_guide_use_python.html',1,'']]],
+  ['using_20the_20schema_20compiler',['Using the schema compiler',['../flatbuffers_guide_using_schema_compiler.html',1,'']]]
 ];
diff --git a/search/all_13.html b/search/all_13.html
index 8e206b22e18ce6f4dba3b07792f45628eb152e07..b4a8bca69e451151486229ab19e722a6d06399b5 100644
--- a/search/all_13.html
+++ b/search/all_13.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="all_13.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/search/all_13.js b/search/all_13.js
index 9c2265086da636eb7b58254ec179cd9781f83382..dc590db5ad4279592391cf7e72d11329c7de1644 100644
--- a/search/all_13.js
+++ b/search/all_13.js
@@ -1,12 +1,8 @@
 var searchData=
 [
-  ['use_20in_20c_2b_2b',['Use in C++',['../flatbuffers_grpc_guide_use_cpp.html',1,'']]],
-  ['use_20in_20c',['Use in C',['../flatbuffers_guide_use_c.html',1,'']]],
-  ['use_20in_20c_2b_2b',['Use in C++',['../flatbuffers_guide_use_cpp.html',1,'']]],
-  ['use_20in_20go',['Use in Go',['../flatbuffers_guide_use_go.html',1,'']]],
-  ['use_20in_20java_2fc_23',['Use in Java/C#',['../flatbuffers_guide_use_java_c-sharp.html',1,'']]],
-  ['use_20in_20javascript',['Use in JavaScript',['../flatbuffers_guide_use_javascript.html',1,'']]],
-  ['use_20in_20php',['Use in PHP',['../flatbuffers_guide_use_php.html',1,'']]],
-  ['use_20in_20python',['Use in Python',['../flatbuffers_guide_use_python.html',1,'']]],
-  ['using_20the_20schema_20compiler',['Using the schema compiler',['../flatbuffers_guide_using_schema_compiler.html',1,'']]]
+  ['vector',['Vector',['../classflatbuffers_1_1_vector.html',1,'flatbuffers']]],
+  ['vector_3c_20char_20_3e',['Vector&lt; char &gt;',['../classflatbuffers_1_1_vector.html',1,'flatbuffers']]],
+  ['vector_5fdownward',['vector_downward',['../classflatbuffers_1_1vector__downward.html',1,'flatbuffers']]],
+  ['vectoriterator',['VectorIterator',['../structflatbuffers_1_1_vector_iterator.html',1,'flatbuffers']]],
+  ['vectorofany',['VectorOfAny',['../classflatbuffers_1_1_vector_of_any.html',1,'flatbuffers']]]
 ];
diff --git a/search/all_14.html b/search/all_14.html
index e274eb35b0cffe7ab42a821712a230793ebcf302..fb4d0ecc7bd511419d65a51178a60ec2f6de57c3 100644
--- a/search/all_14.html
+++ b/search/all_14.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="all_14.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/search/all_14.js b/search/all_14.js
index dc590db5ad4279592391cf7e72d11329c7de1644..a86f934aa99ffd075974f9b75723190e22f2ae58 100644
--- a/search/all_14.js
+++ b/search/all_14.js
@@ -1,8 +1,4 @@
 var searchData=
 [
-  ['vector',['Vector',['../classflatbuffers_1_1_vector.html',1,'flatbuffers']]],
-  ['vector_3c_20char_20_3e',['Vector&lt; char &gt;',['../classflatbuffers_1_1_vector.html',1,'flatbuffers']]],
-  ['vector_5fdownward',['vector_downward',['../classflatbuffers_1_1vector__downward.html',1,'flatbuffers']]],
-  ['vectoriterator',['VectorIterator',['../structflatbuffers_1_1_vector_iterator.html',1,'flatbuffers']]],
-  ['vectorofany',['VectorOfAny',['../classflatbuffers_1_1_vector_of_any.html',1,'flatbuffers']]]
+  ['writing_20a_20schema',['Writing a schema',['../flatbuffers_guide_writing_schema.html',1,'']]]
 ];
diff --git a/search/all_2.html b/search/all_2.html
index 6850d19b3f6913aad43cb5b203fb945e0f8af317..9543c57b1d268fbd22a0d71b0df96e0223cf633e 100644
--- a/search/all_2.html
+++ b/search/all_2.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="all_2.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/search/all_2.js b/search/all_2.js
index d7491a820a4e56af7d3bf93c6137ca544a863e6b..4346a54520545659bb4a23912b259559c91bd35c 100644
--- a/search/all_2.js
+++ b/search/all_2.js
@@ -2,23 +2,16 @@ var searchData=
 [
   ['addbool',['addBool',['../class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html#a723a1053d3a17d5433c37bdbd015844e',1,'Google\FlatBuffers\FlatbufferBuilder\addBool()'],['../class_flat_buffers_1_1_flat_buffer_builder.html#a6b66d785555d19cd0f141978eff78e2e',1,'FlatBuffers.FlatBufferBuilder.AddBool()']]],
   ['addboolean',['addBoolean',['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a53e6356cfef3d6be298efb9a0d67be06',1,'com::google::flatbuffers::FlatBufferBuilder']]],
-  ['addbyte',['AddByte',['../class_flat_buffers_1_1_flat_buffer_builder.html#ac11b10888152d4f687e8ce4d60022254',1,'FlatBuffers.FlatBufferBuilder.AddByte()'],['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#ae019d7ee089c95a37421365d5fb9533b',1,'com.google.flatbuffers.FlatBufferBuilder.addByte()'],['../class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html#a7b78098530190cb90d315419fb1d21fc',1,'Google\FlatBuffers\FlatbufferBuilder\addByte()']]],
+  ['addbyte',['addByte',['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#ae019d7ee089c95a37421365d5fb9533b',1,'com.google.flatbuffers.FlatBufferBuilder.addByte()'],['../class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html#a7b78098530190cb90d315419fb1d21fc',1,'Google\FlatBuffers\FlatbufferBuilder\addByte()'],['../class_flat_buffers_1_1_flat_buffer_builder.html#ac11b10888152d4f687e8ce4d60022254',1,'FlatBuffers.FlatBufferBuilder.AddByte()']]],
   ['adddouble',['addDouble',['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#ac36c1fc72851b17129fc763da00cff32',1,'com.google.flatbuffers.FlatBufferBuilder.addDouble()'],['../class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html#a23a5478774e8909117d31b62dde51e86',1,'Google\FlatBuffers\FlatbufferBuilder\addDouble()'],['../class_flat_buffers_1_1_flat_buffer_builder.html#aef6feaf282148043e6a1c9c1ba9e2094',1,'FlatBuffers.FlatBufferBuilder.AddDouble()']]],
   ['addfloat',['addFloat',['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a55c20e99ba68be516dfbddfddb9efd4d',1,'com.google.flatbuffers.FlatBufferBuilder.addFloat()'],['../class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html#a5ce6215b65e222b8ee22d3eb4436e404',1,'Google\FlatBuffers\FlatbufferBuilder\addFloat()'],['../class_flat_buffers_1_1_flat_buffer_builder.html#a41a1e6f7e7b9098a9d8c1af7157ef2bf',1,'FlatBuffers.FlatBufferBuilder.AddFloat()']]],
-  ['addfloat32',['addFloat32',['../group__flatbuffers__javascript__api.html#ga1c36e9d7e294c61d1d6ab0923ea91e8e',1,'flatbuffers.js']]],
-  ['addfloat64',['addFloat64',['../group__flatbuffers__javascript__api.html#ga53af3baf50f96de783c06a35934d63bf',1,'flatbuffers.js']]],
   ['addint',['addInt',['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a1c0ae381bf6adb84b18e613aadf8d4db',1,'com.google.flatbuffers.FlatBufferBuilder.addInt()'],['../class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html#a63c9d66329dff15855d11c89134599e0',1,'Google\FlatBuffers\FlatbufferBuilder\addInt()'],['../class_flat_buffers_1_1_flat_buffer_builder.html#a7970bfc069caeee5dfd994e6c1106ab9',1,'FlatBuffers.FlatBufferBuilder.AddInt()']]],
-  ['addint16',['addInt16',['../group__flatbuffers__javascript__api.html#ga8260b8431cb8b1c32b5997646cb102a9',1,'flatbuffers.js']]],
-  ['addint32',['addInt32',['../group__flatbuffers__javascript__api.html#gaba2edd0e1e53d1c2815bb1a6ee54abf5',1,'flatbuffers.js']]],
-  ['addint64',['addInt64',['../group__flatbuffers__javascript__api.html#ga17a48cc241b10348fd6751ed3a973e2d',1,'flatbuffers.js']]],
-  ['addint8',['addInt8',['../group__flatbuffers__javascript__api.html#ga7963cbb1ae0a8589b183f9b26fb25b45',1,'flatbuffers.js']]],
   ['addlong',['addLong',['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a0e1215f334989ecc59b49a3239aed5b5',1,'com.google.flatbuffers.FlatBufferBuilder.addLong()'],['../class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html#a8875bff7ef67af16938cabe719ceac70',1,'Google\FlatBuffers\FlatbufferBuilder\addLong()'],['../class_flat_buffers_1_1_flat_buffer_builder.html#a0d182e151b4f57d47069885cc1d05893',1,'FlatBuffers.FlatBufferBuilder.AddLong()']]],
-  ['addoffset',['addOffset',['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#ae817751382089b603753452cc1e56790',1,'com.google.flatbuffers.FlatBufferBuilder.addOffset()'],['../class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html#a127fe515651f4b4347ea8e01b3951934',1,'Google\FlatBuffers\FlatbufferBuilder\addOffset()'],['../class_flat_buffers_1_1_flat_buffer_builder.html#ae1d6d927d400c330cae48951eae546e5',1,'FlatBuffers.FlatBufferBuilder.AddOffset()'],['../group__flatbuffers__javascript__api.html#ga21ba7dd4c33dafd6abb89568e4d9c8b8',1,'addOffset():&#160;flatbuffers.js']]],
+  ['addoffset',['addOffset',['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#ae817751382089b603753452cc1e56790',1,'com.google.flatbuffers.FlatBufferBuilder.addOffset()'],['../class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html#a127fe515651f4b4347ea8e01b3951934',1,'Google\FlatBuffers\FlatbufferBuilder\addOffset()'],['../class_flat_buffers_1_1_flat_buffer_builder.html#ae1d6d927d400c330cae48951eae546e5',1,'FlatBuffers.FlatBufferBuilder.AddOffset()']]],
   ['addsbyte',['addSbyte',['../class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html#a6add2b19644657fbe0925cb0238618c6',1,'Google\FlatBuffers\FlatbufferBuilder\addSbyte()'],['../class_flat_buffers_1_1_flat_buffer_builder.html#a0b2addc87bde29213424a187b7b08707',1,'FlatBuffers.FlatBufferBuilder.AddSbyte()']]],
-  ['addshort',['AddShort',['../class_flat_buffers_1_1_flat_buffer_builder.html#a93b38c262a248e625ea3719dddf903eb',1,'FlatBuffers.FlatBufferBuilder.AddShort()'],['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a67a9f5dcd251735d6b96e1ad46de9d94',1,'com.google.flatbuffers.FlatBufferBuilder.addShort()'],['../class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html#a1e11aa1f080749100de6e153e88f9dd5',1,'Google\FlatBuffers\FlatbufferBuilder\addShort()']]],
+  ['addshort',['addShort',['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a67a9f5dcd251735d6b96e1ad46de9d94',1,'com.google.flatbuffers.FlatBufferBuilder.addShort()'],['../class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html#a1e11aa1f080749100de6e153e88f9dd5',1,'Google\FlatBuffers\FlatbufferBuilder\addShort()'],['../class_flat_buffers_1_1_flat_buffer_builder.html#a93b38c262a248e625ea3719dddf903eb',1,'FlatBuffers.FlatBufferBuilder.AddShort()']]],
   ['adduint',['addUint',['../class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html#a6f4a37444fca01dcbd0922d18cf2be5c',1,'Google\FlatBuffers\FlatbufferBuilder\addUint()'],['../class_flat_buffers_1_1_flat_buffer_builder.html#aef3581dee532ab763b99947ca43ddcfa',1,'FlatBuffers.FlatBufferBuilder.AddUint()']]],
   ['addulong',['addUlong',['../class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html#a01be3a805c221796997b023b64e90826',1,'Google\FlatBuffers\FlatbufferBuilder\addUlong()'],['../class_flat_buffers_1_1_flat_buffer_builder.html#aa9cc4371456b85d6393958ab56cbc515',1,'FlatBuffers.FlatBufferBuilder.AddUlong()']]],
   ['addushort',['addUshort',['../class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html#a570a0024a8a54e2f73374c94b8fa6c42',1,'Google\FlatBuffers\FlatbufferBuilder\addUshort()'],['../class_flat_buffers_1_1_flat_buffer_builder.html#a52c19b3daa97b0272da0dd7121b2ff5f',1,'FlatBuffers.FlatBufferBuilder.AddUshort()']]],
-  ['allocator',['Allocator',['../classflatbuffers_1_1_allocator.html',1,'flatbuffers']]],
-  ['asuint8array',['asUint8Array',['../group__flatbuffers__javascript__api.html#ga997af48d5c8f757fcb962168d67e33fb',1,'flatbuffers.js']]]
+  ['allocator',['Allocator',['../classflatbuffers_1_1_allocator.html',1,'flatbuffers']]]
 ];
diff --git a/search/all_3.html b/search/all_3.html
index 914288c2685220c8a112bd7fee5701a784add0c6..03405c0fb220c4f68ac1cb184cb7e256588449cd 100644
--- a/search/all_3.html
+++ b/search/all_3.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="all_3.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/search/all_3.js b/search/all_3.js
index f307af068f50b5a9c18fba2e53e182dfceed3b71..e5692dbafc04115c49406c5d1fd75604150664f9 100644
--- a/search/all_3.js
+++ b/search/all_3.js
@@ -1,6 +1,7 @@
 var searchData=
 [
-  ['builder',['Builder',['../group__flatbuffers__javascript__api.html#gabd00b65bbe9e9fbac55fe4982eb6cec8',1,'flatbuffers.js']]],
   ['bytebufferfactory',['ByteBufferFactory',['../interfacecom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder_1_1_byte_buffer_factory.html',1,'com::google::flatbuffers::FlatBufferBuilder']]],
+  ['bytebufferutil',['ByteBufferUtil',['../classcom_1_1google_1_1flatbuffers_1_1_byte_buffer_util.html',1,'com::google::flatbuffers']]],
+  ['bytebufferutil_2ejava',['ByteBufferUtil.java',['../_byte_buffer_util_8java.html',1,'']]],
   ['building',['Building',['../flatbuffers_guide_building.html',1,'']]]
 ];
diff --git a/search/all_4.html b/search/all_4.html
index 47becb88408a9eb1a3136bd88aaa061edef94582..8e1f4b9cd9d6012635eab86c12ef5adf015dcf8f 100644
--- a/search/all_4.html
+++ b/search/all_4.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="all_4.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/search/all_4.js b/search/all_4.js
index 0c3cbec75f0550ea3e1a487dae0d0c029273ed10..d9880398b51416a356fe47d7870b5476816c9956 100644
--- a/search/all_4.js
+++ b/search/all_4.js
@@ -3,9 +3,8 @@ var searchData=
   ['clear',['Clear',['../class_flat_buffers_1_1_flat_buffer_builder.html#a74ed0e43043c6e486dbe40b0d2ff63d6',1,'FlatBuffers.FlatBufferBuilder.Clear()'],['../classflatbuffers_1_1_flat_buffer_builder.html#ae94b94ba71ea0aeb2d9a98c43b713412',1,'flatbuffers::FlatBufferBuilder::Clear()'],['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a3a5dd461dc86a2132eaa4f0348b4c001',1,'com.google.flatbuffers.FlatBufferBuilder.clear()']]],
   ['contributing',['Contributing',['../contributing.html',1,'']]],
   ['createbytevector',['createByteVector',['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a37b5debda58afd1fcb71ec82efe663b9',1,'com::google::flatbuffers::FlatBufferBuilder']]],
-  ['createlong',['createLong',['../group__flatbuffers__javascript__api.html#ga8c5bb4a00c46fb6665787fa9ff52089b',1,'flatbuffers.js']]],
   ['createsharedstring',['CreateSharedString',['../classflatbuffers_1_1_flat_buffer_builder.html#ab478a645216d2d613fc7b7c29b0ff9d1',1,'flatbuffers::FlatBufferBuilder::CreateSharedString(const char *str, size_t len)'],['../classflatbuffers_1_1_flat_buffer_builder.html#a3eb68613e5883dc4b8fff6cf7d1223d7',1,'flatbuffers::FlatBufferBuilder::CreateSharedString(const char *str)'],['../classflatbuffers_1_1_flat_buffer_builder.html#a10e8ec7d1c8fbdc21b1c7047bbbe38d9',1,'flatbuffers::FlatBufferBuilder::CreateSharedString(const std::string &amp;str)'],['../classflatbuffers_1_1_flat_buffer_builder.html#a840b769fbb4148f97d3eed266e4690c3',1,'flatbuffers::FlatBufferBuilder::CreateSharedString(const String *str)']]],
-  ['createstring',['createString',['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#abd3b2f9b239a702ffaa8a1e97894f09e',1,'com.google.flatbuffers.FlatBufferBuilder.createString(CharSequence s)'],['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a8d676eb9973ecba574a220cdef725577',1,'com.google.flatbuffers.FlatBufferBuilder.createString(ByteBuffer s)'],['../class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html#ac54a8acfac1dda020b610da53b2d9a0f',1,'Google\FlatBuffers\FlatbufferBuilder\createString()'],['../class_flat_buffers_1_1_flat_buffer_builder.html#a3b6e42519f278e4a060895633d048070',1,'FlatBuffers.FlatBufferBuilder.CreateString()'],['../classflatbuffers_1_1_flat_buffer_builder.html#aec6f9df2a0366b540b24822414d92cbe',1,'flatbuffers::FlatBufferBuilder::CreateString(const char *str, size_t len)'],['../classflatbuffers_1_1_flat_buffer_builder.html#aad93d113ac24e86ed04b5236b3f4c0c5',1,'flatbuffers::FlatBufferBuilder::CreateString(const char *str)'],['../classflatbuffers_1_1_flat_buffer_builder.html#a8c3af55e64f5cda9aefa38ac5287ef9f',1,'flatbuffers::FlatBufferBuilder::CreateString(const std::string &amp;str)'],['../classflatbuffers_1_1_flat_buffer_builder.html#ac0b6a1c5d949f20ad84367fc0f9e1506',1,'flatbuffers::FlatBufferBuilder::CreateString(const String *str)'],['../classflatbuffers_1_1_flat_buffer_builder.html#ab77d800e77fa76bc758a6c399fd37685',1,'flatbuffers::FlatBufferBuilder::CreateString(const T &amp;str)'],['../group__flatbuffers__javascript__api.html#gaa7a7bd67cb1c3190792d4b2b3e66376f',1,'createString():&#160;flatbuffers.js']]],
+  ['createstring',['createString',['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#abd3b2f9b239a702ffaa8a1e97894f09e',1,'com.google.flatbuffers.FlatBufferBuilder.createString(CharSequence s)'],['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a8d676eb9973ecba574a220cdef725577',1,'com.google.flatbuffers.FlatBufferBuilder.createString(ByteBuffer s)'],['../class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html#ac54a8acfac1dda020b610da53b2d9a0f',1,'Google\FlatBuffers\FlatbufferBuilder\createString()'],['../class_flat_buffers_1_1_flat_buffer_builder.html#a3b6e42519f278e4a060895633d048070',1,'FlatBuffers.FlatBufferBuilder.CreateString()'],['../classflatbuffers_1_1_flat_buffer_builder.html#aec6f9df2a0366b540b24822414d92cbe',1,'flatbuffers::FlatBufferBuilder::CreateString(const char *str, size_t len)'],['../classflatbuffers_1_1_flat_buffer_builder.html#aad93d113ac24e86ed04b5236b3f4c0c5',1,'flatbuffers::FlatBufferBuilder::CreateString(const char *str)'],['../classflatbuffers_1_1_flat_buffer_builder.html#ac51db9083ac815eb81420b6d51f42154',1,'flatbuffers::FlatBufferBuilder::CreateString(char *str)'],['../classflatbuffers_1_1_flat_buffer_builder.html#a8c3af55e64f5cda9aefa38ac5287ef9f',1,'flatbuffers::FlatBufferBuilder::CreateString(const std::string &amp;str)'],['../classflatbuffers_1_1_flat_buffer_builder.html#ac0b6a1c5d949f20ad84367fc0f9e1506',1,'flatbuffers::FlatBufferBuilder::CreateString(const String *str)'],['../classflatbuffers_1_1_flat_buffer_builder.html#ab77d800e77fa76bc758a6c399fd37685',1,'flatbuffers::FlatBufferBuilder::CreateString(const T &amp;str)']]],
   ['createstruct',['CreateStruct',['../classflatbuffers_1_1_flat_buffer_builder.html#a43f51ba9c8f4f24ea2247a3979d095b8',1,'flatbuffers::FlatBufferBuilder']]],
   ['createuninitializedvector',['CreateUninitializedVector',['../classflatbuffers_1_1_flat_buffer_builder.html#ac2b96292fa0fb1534fe7fd218a094d0c',1,'flatbuffers::FlatBufferBuilder::CreateUninitializedVector(size_t len, size_t elemsize, uint8_t **buf)'],['../classflatbuffers_1_1_flat_buffer_builder.html#a2305b63d367845972b51669dd995cc50',1,'flatbuffers::FlatBufferBuilder::CreateUninitializedVector(size_t len, T **buf)']]],
   ['createunintializedvector',['createUnintializedVector',['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#acc889115f91460ca89ce981cb02c2039',1,'com::google::flatbuffers::FlatBufferBuilder']]],
@@ -15,10 +14,8 @@ var searchData=
   ['createvectorofsortedstructs',['CreateVectorOfSortedStructs',['../classflatbuffers_1_1_flat_buffer_builder.html#a7cc10b709dfa3e72083843d1a5e36c15',1,'flatbuffers::FlatBufferBuilder::CreateVectorOfSortedStructs(std::vector&lt; T &gt; *v)'],['../classflatbuffers_1_1_flat_buffer_builder.html#ab1f44cc1b130e13b41e9a80de76e25cf',1,'flatbuffers::FlatBufferBuilder::CreateVectorOfSortedStructs(T *v, size_t len)']]],
   ['createvectorofsortedtables',['CreateVectorOfSortedTables',['../classflatbuffers_1_1_flat_buffer_builder.html#a2130ef232ff405eebe2e7f184ecd06e6',1,'flatbuffers::FlatBufferBuilder::CreateVectorOfSortedTables(Offset&lt; T &gt; *v, size_t len)'],['../classflatbuffers_1_1_flat_buffer_builder.html#ac64d11c219559ea51567eab556e13135',1,'flatbuffers::FlatBufferBuilder::CreateVectorOfSortedTables(std::vector&lt; Offset&lt; T &gt;&gt; *v)']]],
   ['createvectorofstrings',['CreateVectorOfStrings',['../classflatbuffers_1_1_flat_buffer_builder.html#a592110519a6c8db1926f1365bf2a58e6',1,'flatbuffers::FlatBufferBuilder']]],
-  ['createvectorofstructs',['CreateVectorOfStructs',['../classflatbuffers_1_1_flat_buffer_builder.html#afede51fd9c32d146cbb1832f57c5e1b7',1,'flatbuffers::FlatBufferBuilder::CreateVectorOfStructs(const T *v, size_t len)'],['../classflatbuffers_1_1_flat_buffer_builder.html#a6e90ada59d9553636f72ce8e4a892f72',1,'flatbuffers::FlatBufferBuilder::CreateVectorOfStructs(size_t vector_size, const std::function&lt; void(size_t i, T *)&gt; &amp;filler)'],['../classflatbuffers_1_1_flat_buffer_builder.html#a9cc09fa59ff9732e972877cfe911c8a5',1,'flatbuffers::FlatBufferBuilder::CreateVectorOfStructs(size_t vector_size, F f, S *state)'],['../classflatbuffers_1_1_flat_buffer_builder.html#a8704709a2e25ad04679212ee4126b1a1',1,'flatbuffers::FlatBufferBuilder::CreateVectorOfStructs(const std::vector&lt; T &gt; &amp;v)']]],
+  ['createvectorofstructs',['CreateVectorOfStructs',['../classflatbuffers_1_1_flat_buffer_builder.html#afede51fd9c32d146cbb1832f57c5e1b7',1,'flatbuffers::FlatBufferBuilder::CreateVectorOfStructs(const T *v, size_t len)'],['../classflatbuffers_1_1_flat_buffer_builder.html#a6e90ada59d9553636f72ce8e4a892f72',1,'flatbuffers::FlatBufferBuilder::CreateVectorOfStructs(size_t vector_size, const std::function&lt; void(size_t i, T *)&gt; &amp;filler)'],['../classflatbuffers_1_1_flat_buffer_builder.html#a9cc09fa59ff9732e972877cfe911c8a5',1,'flatbuffers::FlatBufferBuilder::CreateVectorOfStructs(size_t vector_size, F f, S *state)'],['../classflatbuffers_1_1_flat_buffer_builder.html#a110c2a3298aebef1a9dfa3c44ee84f42',1,'flatbuffers::FlatBufferBuilder::CreateVectorOfStructs(const std::vector&lt; T, Alloc &gt; &amp;v)']]],
   ['createvectoroftables',['createVectorOfTables',['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a24ea4649f508a7843e429737a4a9fad1',1,'com::google::flatbuffers::FlatBufferBuilder']]],
   ['createvectoroftables_3c_20t_20_3e',['CreateVectorOfTables&lt; T &gt;',['../class_flat_buffers_1_1_flat_buffer_builder.html#a82219d659221dfc4c271399d9e56c47a',1,'FlatBuffers::FlatBufferBuilder']]],
-  ['c_2b_2b_20benchmarks',['C++ Benchmarks',['../flatbuffers_benchmarks.html',1,'']]],
-  ['c_2b_2b_20api',['C++ API',['../group__flatbuffers__cpp__api.html',1,'']]],
-  ['c_23_20api',['C# API',['../group__flatbuffers__csharp__api.html',1,'']]]
+  ['c_2b_2b_20benchmarks',['C++ Benchmarks',['../flatbuffers_benchmarks.html',1,'']]]
 ];
diff --git a/search/all_5.html b/search/all_5.html
index b11c1d19dd50a532e621cf94b2e99a2facbe7ff3..89a879ea9b6aa5e5dc663a2fc3fbdcbd0aadb888 100644
--- a/search/all_5.html
+++ b/search/all_5.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="all_5.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/search/all_5.js b/search/all_5.js
index 2f60f287587ab348870207829a8923529face110..1ccee7b6c8ec61ec2294802a56bff1109b8f5711 100644
--- a/search/all_5.js
+++ b/search/all_5.js
@@ -1,6 +1,6 @@
 var searchData=
 [
-  ['databuffer',['dataBuffer',['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#abf0fd34f0d93a9d89f595fddf752feb7',1,'com.google.flatbuffers.FlatBufferBuilder.dataBuffer()'],['../class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html#ae7e97c2d21da04ef483e6940d442938f',1,'Google\FlatBuffers\FlatbufferBuilder\dataBuffer()'],['../class_flat_buffers_1_1_flat_buffer_builder.html#a6f0cbd075878e2c0f021c0947cc8a211',1,'FlatBuffers.FlatBufferBuilder.DataBuffer()'],['../group__flatbuffers__javascript__api.html#ga674814e0816f06c8a29ab364d19bed60',1,'dataBuffer():&#160;flatbuffers.js']]],
+  ['databuffer',['dataBuffer',['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#abf0fd34f0d93a9d89f595fddf752feb7',1,'com.google.flatbuffers.FlatBufferBuilder.dataBuffer()'],['../class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html#ae7e97c2d21da04ef483e6940d442938f',1,'Google\FlatBuffers\FlatbufferBuilder\dataBuffer()'],['../class_flat_buffers_1_1_flat_buffer_builder.html#a6f0cbd075878e2c0f021c0947cc8a211',1,'FlatBuffers.FlatBufferBuilder.DataBuffer()']]],
   ['dedupvtables',['DedupVtables',['../classflatbuffers_1_1_flat_buffer_builder.html#aa905b29dce19a1795c7bce375cf29961',1,'flatbuffers::FlatBufferBuilder']]],
   ['defaultallocator',['DefaultAllocator',['../classflatbuffers_1_1_default_allocator.html',1,'flatbuffers']]],
   ['detachedbuffer',['DetachedBuffer',['../classflatbuffers_1_1_detached_buffer.html',1,'flatbuffers']]]
diff --git a/search/all_6.html b/search/all_6.html
index a57d74f606b3282ebbd87b44e8d37ccff83fe297..6afac066223c120bce6381514f25c49be32d226c 100644
--- a/search/all_6.html
+++ b/search/all_6.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="all_6.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/search/all_7.html b/search/all_7.html
index ecca25181b37e1d0a05bb342799360ee3cf5520a..de1910770531c54e423e2b3a88095bd205a78739 100644
--- a/search/all_7.html
+++ b/search/all_7.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="all_7.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/search/all_7.js b/search/all_7.js
index acc5a757b5a03b6f6ed390c31f613d9505783ec0..18d2de9bf27a8113d6dbc0188b3ce875e6933e54 100644
--- a/search/all_7.js
+++ b/search/all_7.js
@@ -1,19 +1,21 @@
 var searchData=
 [
   ['fieldloc',['FieldLoc',['../structflatbuffers_1_1_flat_buffer_builder_1_1_field_loc.html',1,'flatbuffers::FlatBufferBuilder']]],
-  ['finish',['finish',['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#aee9ed3214a7b35075773c506e3d95a14',1,'com.google.flatbuffers.FlatBufferBuilder.finish(int root_table)'],['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a189de474e0c39d663cc65fa21a63f071',1,'com.google.flatbuffers.FlatBufferBuilder.finish(int root_table, String file_identifier)'],['../class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html#a799f0d1cf0fff359d6d04768108cb2a5',1,'Google\FlatBuffers\FlatbufferBuilder\finish()'],['../class_flat_buffers_1_1_flat_buffer_builder.html#a1afc6853539aaff7ac6937ed03ff5c7b',1,'FlatBuffers.FlatBufferBuilder.Finish(int rootTable)'],['../class_flat_buffers_1_1_flat_buffer_builder.html#ac7a48fd125d3f65f1bc1bc67d74eae73',1,'FlatBuffers.FlatBufferBuilder.Finish(int rootTable, string fileIdentifier)'],['../classflatbuffers_1_1_flat_buffer_builder.html#a0c9e507b373d598b51052fab4fa34912',1,'flatbuffers::FlatBufferBuilder::Finish()'],['../group__flatbuffers__javascript__api.html#ga62c5cf622a7bbcfd49f21bddd8b9bef7',1,'finish():&#160;flatbuffers.js']]],
-  ['finishsizeprefixed',['FinishSizePrefixed',['../classflatbuffers_1_1_flat_buffer_builder.html#a7ba8462e408431054c99d25120326220',1,'flatbuffers::FlatBufferBuilder']]],
-  ['flatbufferbuilder',['FlatbufferBuilder',['../class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html',1,'Google::FlatBuffers']]],
-  ['flatbufferbuilder',['FlatBufferBuilder',['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html',1,'com::google::flatbuffers']]],
-  ['flatbufferbuilder',['FlatBufferBuilder',['../classflatbuffers_1_1_flat_buffer_builder.html',1,'flatbuffers::FlatBufferBuilder'],['../class_flat_buffers_1_1_flat_buffer_builder.html',1,'FlatBuffers.FlatBufferBuilder']]],
-  ['flatbufferbuilder',['FlatBufferBuilder',['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#aed1e475e75409625c8df85dc3d396e4c',1,'com.google.flatbuffers.FlatBufferBuilder.FlatBufferBuilder(int initial_size, ByteBufferFactory bb_factory)'],['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#af49427a6a8a6ec24f3c9cf812f30812d',1,'com.google.flatbuffers.FlatBufferBuilder.FlatBufferBuilder(int initial_size)'],['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#ac8a8a558ce1d2531447a765636db2387',1,'com.google.flatbuffers.FlatBufferBuilder.FlatBufferBuilder()'],['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a3388cd4dc6e5233283fb4927b71a1c39',1,'com.google.flatbuffers.FlatBufferBuilder.FlatBufferBuilder(ByteBuffer existing_bb, ByteBufferFactory bb_factory)'],['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a61ad1938219bcdbe99cc4b668f4c0f99',1,'com.google.flatbuffers.FlatBufferBuilder.FlatBufferBuilder(ByteBuffer existing_bb)'],['../class_flat_buffers_1_1_flat_buffer_builder.html#ae24f93e3f9672846dd241d585d62c63d',1,'FlatBuffers.FlatBufferBuilder.FlatBufferBuilder()'],['../classflatbuffers_1_1_flat_buffer_builder.html#ae4ab74f53187e6c3e6041d34e01904c4',1,'flatbuffers::FlatBufferBuilder::FlatBufferBuilder()']]],
+  ['finish',['finish',['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#af344604d66e9e8524fef826fc516d5b2',1,'com.google.flatbuffers.FlatBufferBuilder.finish(int root_table, boolean size_prefix)'],['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#aee9ed3214a7b35075773c506e3d95a14',1,'com.google.flatbuffers.FlatBufferBuilder.finish(int root_table)'],['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#afc31aba1a9523fde4be3558f8f19f49b',1,'com.google.flatbuffers.FlatBufferBuilder.finish(int root_table, String file_identifier, boolean size_prefix)'],['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a189de474e0c39d663cc65fa21a63f071',1,'com.google.flatbuffers.FlatBufferBuilder.finish(int root_table, String file_identifier)'],['../class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html#a799f0d1cf0fff359d6d04768108cb2a5',1,'Google\FlatBuffers\FlatbufferBuilder\finish()'],['../class_flat_buffers_1_1_flat_buffer_builder.html#a709d1ded4ffd922b61bc6f7f4a12fb97',1,'FlatBuffers.FlatBufferBuilder.Finish(int rootTable, bool sizePrefix)'],['../class_flat_buffers_1_1_flat_buffer_builder.html#a1afc6853539aaff7ac6937ed03ff5c7b',1,'FlatBuffers.FlatBufferBuilder.Finish(int rootTable)'],['../class_flat_buffers_1_1_flat_buffer_builder.html#a703062d740b32a77d26c5f6d1928c75f',1,'FlatBuffers.FlatBufferBuilder.Finish(int rootTable, string fileIdentifier, bool sizePrefix)'],['../class_flat_buffers_1_1_flat_buffer_builder.html#ac7a48fd125d3f65f1bc1bc67d74eae73',1,'FlatBuffers.FlatBufferBuilder.Finish(int rootTable, string fileIdentifier)'],['../classflatbuffers_1_1_flat_buffer_builder.html#a0c9e507b373d598b51052fab4fa34912',1,'flatbuffers::FlatBufferBuilder::Finish()']]],
+  ['finishsizeprefixed',['finishSizePrefixed',['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#aa00c035b0f60abe32a5f1467ebd4ec54',1,'com.google.flatbuffers.FlatBufferBuilder.finishSizePrefixed(int root_table)'],['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#ab179d8aa4c4b782d83b3817a6b08ee35',1,'com.google.flatbuffers.FlatBufferBuilder.finishSizePrefixed(int root_table, String file_identifier)'],['../class_flat_buffers_1_1_flat_buffer_builder.html#a425ab2bd13a0e4331a7190ec2d17c3b2',1,'FlatBuffers.FlatBufferBuilder.FinishSizePrefixed(int rootTable)'],['../class_flat_buffers_1_1_flat_buffer_builder.html#a92de6a8a35e1ae5a07f5578bb0fda16c',1,'FlatBuffers.FlatBufferBuilder.FinishSizePrefixed(int rootTable, string fileIdentifier)'],['../classflatbuffers_1_1_flat_buffer_builder.html#a7ba8462e408431054c99d25120326220',1,'flatbuffers::FlatBufferBuilder::FinishSizePrefixed()']]],
+  ['flatbufferbuilder',['FlatBufferBuilder',['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html',1,'com.google.flatbuffers.FlatBufferBuilder'],['../classflatbuffers_1_1_flat_buffer_builder.html',1,'flatbuffers::FlatBufferBuilder'],['../class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html',1,'Google\FlatBuffers\FlatbufferBuilder'],['../class_flat_buffers_1_1_flat_buffer_builder.html',1,'FlatBuffers.FlatBufferBuilder'],['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#aed1e475e75409625c8df85dc3d396e4c',1,'com.google.flatbuffers.FlatBufferBuilder.FlatBufferBuilder(int initial_size, ByteBufferFactory bb_factory)'],['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#af49427a6a8a6ec24f3c9cf812f30812d',1,'com.google.flatbuffers.FlatBufferBuilder.FlatBufferBuilder(int initial_size)'],['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#ac8a8a558ce1d2531447a765636db2387',1,'com.google.flatbuffers.FlatBufferBuilder.FlatBufferBuilder()'],['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a3388cd4dc6e5233283fb4927b71a1c39',1,'com.google.flatbuffers.FlatBufferBuilder.FlatBufferBuilder(ByteBuffer existing_bb, ByteBufferFactory bb_factory)'],['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a61ad1938219bcdbe99cc4b668f4c0f99',1,'com.google.flatbuffers.FlatBufferBuilder.FlatBufferBuilder(ByteBuffer existing_bb)'],['../class_flat_buffers_1_1_flat_buffer_builder.html#ae24f93e3f9672846dd241d585d62c63d',1,'FlatBuffers.FlatBufferBuilder.FlatBufferBuilder()'],['../classflatbuffers_1_1_flat_buffer_builder.html#ab0173786ea4ec3e4ae10555639b2996c',1,'flatbuffers::FlatBufferBuilder::FlatBufferBuilder()']]],
   ['flatbufferbuilder_2ecs',['FlatBufferBuilder.cs',['../_flat_buffer_builder_8cs.html',1,'']]],
   ['flatbufferbuilder_2ejava',['FlatBufferBuilder.java',['../_flat_buffer_builder_8java.html',1,'']]],
   ['flatbufferbuilder_2ephp',['FlatbufferBuilder.php',['../_flatbuffer_builder_8php.html',1,'']]],
   ['flatbuffers',['FlatBuffers',['../namespace_flat_buffers.html',1,'']]],
-  ['flatbuffers_2ejs',['flatbuffers.js',['../flatbuffers_8js.html',1,'']]],
+  ['flatbuffers_5fcpp_5fapi',['Flatbuffers_cpp_api',['../group__flatbuffers__cpp__api.html',1,'']]],
+  ['flatbuffers_5fcsharp_5fapi',['Flatbuffers_csharp_api',['../group__flatbuffers__csharp__api.html',1,'']]],
+  ['flatbuffers_5fgo_5fapi',['Flatbuffers_go_api',['../group__flatbuffers__go__api.html',1,'']]],
   ['flatbuffer_20internals',['FlatBuffer Internals',['../flatbuffers_internals.html',1,'']]],
+  ['flatbuffers_5fjava_5fapi',['Flatbuffers_java_api',['../group__flatbuffers__java__api.html',1,'']]],
+  ['flatbuffers_5fphp_5fapi',['Flatbuffers_php_api',['../group__flatbuffers__php__api.html',1,'']]],
   ['flatbuffers_20white_20paper',['FlatBuffers white paper',['../flatbuffers_white_paper.html',1,'']]],
   ['flexbuffers',['FlexBuffers',['../flexbuffers.html',1,'']]],
-  ['forcedefaults',['forceDefaults',['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#aaadff3772bfdff756b4f269afae5ac69',1,'com.google.flatbuffers.FlatBufferBuilder.forceDefaults()'],['../class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html#a5d75bca1a17d58bb6e383a73761ba45f',1,'Google\FlatBuffers\FlatbufferBuilder\forceDefaults()'],['../class_flat_buffers_1_1_flat_buffer_builder.html#a40d549b2db96b91b2345d1a44ff3fe13',1,'FlatBuffers.FlatBufferBuilder.ForceDefaults()'],['../classflatbuffers_1_1_flat_buffer_builder.html#a16a8fd46b34ad7727406c37b65b6b27a',1,'flatbuffers::FlatBufferBuilder::ForceDefaults()'],['../group__flatbuffers__javascript__api.html#ga0d1738111b83dffb2c2a7fc8bca19b33',1,'forceDefaults():&#160;flatbuffers.js']]]
+  ['forcedefaults',['forceDefaults',['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#aaadff3772bfdff756b4f269afae5ac69',1,'com.google.flatbuffers.FlatBufferBuilder.forceDefaults()'],['../class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html#a5d75bca1a17d58bb6e383a73761ba45f',1,'Google\FlatBuffers\FlatbufferBuilder\forceDefaults()'],['../class_flat_buffers_1_1_flat_buffer_builder.html#a40d549b2db96b91b2345d1a44ff3fe13',1,'FlatBuffers.FlatBufferBuilder.ForceDefaults()'],['../classflatbuffers_1_1_flat_buffer_builder.html#a16a8fd46b34ad7727406c37b65b6b27a',1,'flatbuffers::FlatBufferBuilder::ForceDefaults()']]],
+  ['flatbuffers',['FlatBuffers',['../index.html',1,'']]]
 ];
diff --git a/search/all_8.html b/search/all_8.html
index f8f85600da41756dd0a49b979ac5379811ab59e0..11e27cdb447de04a53fc25190048846b644dcc86 100644
--- a/search/all_8.html
+++ b/search/all_8.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="all_8.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/search/all_8.js b/search/all_8.js
index a5467a0d783967966b0a227eb1f0d266dd59c06e..25d2e946ba5f45a01a4cfcad26012d9c1ea641ff 100644
--- a/search/all_8.js
+++ b/search/all_8.js
@@ -1,10 +1,10 @@
 var searchData=
 [
-  ['go_20api',['Go API',['../group__flatbuffers__go__api.html',1,'']]],
   ['grammar_20of_20the_20schema_20language',['Grammar of the schema language',['../flatbuffers_grammar.html',1,'']]],
   ['getbufferminalignment',['GetBufferMinAlignment',['../classflatbuffers_1_1_flat_buffer_builder.html#aa1ebce1f3f46832946a95952af1e9c2b',1,'flatbuffers::FlatBufferBuilder']]],
-  ['getbufferpointer',['GetBufferPointer',['../classflatbuffers_1_1_flat_buffer_builder.html#a8dc35f792179df4ca850492c1796d8b8',1,'flatbuffers::FlatBufferBuilder']]],
-  ['getcurrentbufferpointer',['GetCurrentBufferPointer',['../classflatbuffers_1_1_flat_buffer_builder.html#a3f4252e9bc005ba6c700469544fdccc9',1,'flatbuffers::FlatBufferBuilder']]],
-  ['getsize',['GetSize',['../classflatbuffers_1_1_flat_buffer_builder.html#ac1bfd609f7f736e9a37cedae77448b63',1,'flatbuffers::FlatBufferBuilder']]],
+  ['getbufferpointer',['GetBufferPointer',['../classflatbuffers_1_1_flat_buffer_builder.html#ab81ab8aa273c270b0942fd81489cad83',1,'flatbuffers::FlatBufferBuilder']]],
+  ['getcurrentbufferpointer',['GetCurrentBufferPointer',['../classflatbuffers_1_1_flat_buffer_builder.html#a099810f03046139d1854d20a1c2a2e41',1,'flatbuffers::FlatBufferBuilder']]],
+  ['getsize',['GetSize',['../classflatbuffers_1_1_flat_buffer_builder.html#a66c8fd33ab9b3b237954c9ea38648f7f',1,'flatbuffers::FlatBufferBuilder']]],
+  ['getsizeprefix',['getSizePrefix',['../classcom_1_1google_1_1flatbuffers_1_1_byte_buffer_util.html#a4c87c63fa8d31e039b344bbaef00a3be',1,'com::google::flatbuffers::ByteBufferUtil']]],
   ['go_20api',['Go API',['../md__go_api.html',1,'']]]
 ];
diff --git a/search/all_9.html b/search/all_9.html
index cb525abb66fa679ac5c581474dd3546267f8ef7b..f8abbbe59060ba2066e9b42e30b4c1e0bc1e1bfe 100644
--- a/search/all_9.html
+++ b/search/all_9.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="all_9.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/search/all_a.html b/search/all_a.html
index 393a236f67b66fc6b42415de9e15f840a38619d9..9601fcee13cc26d94af48c5bec07570a63490aa5 100644
--- a/search/all_a.html
+++ b/search/all_a.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="all_a.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/search/all_b.html b/search/all_b.html
index 6d334640662530681d43474723d29cfcb1eb68f2..0814e4e03d2ec64b8508f702a016e2c81ecb4650 100644
--- a/search/all_b.html
+++ b/search/all_b.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="all_b.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/search/all_b.js b/search/all_b.js
index 8c8e50e2a0f6fd1bd93e7e474e18478bb9805895..7dcdf36b8546871c1eefa49f52858ca010cef1a5 100644
--- a/search/all_b.js
+++ b/search/all_b.js
@@ -1,5 +1,4 @@
 var searchData=
 [
-  ['java_20api',['Java API',['../group__flatbuffers__java__api.html',1,'']]],
-  ['javascript_20api',['JavaScript API',['../group__flatbuffers__javascript__api.html',1,'']]]
+  ['kfileidentifierlength',['kFileIdentifierLength',['../classflatbuffers_1_1_flat_buffer_builder.html#af8c7583c92e1d1d6f438977da5158d19',1,'flatbuffers::FlatBufferBuilder']]]
 ];
diff --git a/search/all_c.html b/search/all_c.html
index cbf7d0684a900b9818f9e270b347eda781e5e6c6..da08c387a33665822a29359900444ed810279f8c 100644
--- a/search/all_c.html
+++ b/search/all_c.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="all_c.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/search/all_c.js b/search/all_c.js
index 7dcdf36b8546871c1eefa49f52858ca010cef1a5..4da9cd30c55fed83f73e424d2df6a5f203495f11 100644
--- a/search/all_c.js
+++ b/search/all_c.js
@@ -1,4 +1,4 @@
 var searchData=
 [
-  ['kfileidentifierlength',['kFileIdentifierLength',['../classflatbuffers_1_1_flat_buffer_builder.html#af8c7583c92e1d1d6f438977da5158d19',1,'flatbuffers::FlatBufferBuilder']]]
+  ['newbytebuffer',['newByteBuffer',['../interfacecom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder_1_1_byte_buffer_factory.html#a0db9a9033d232d584443a433d7576f4a',1,'com.google.flatbuffers.FlatBufferBuilder.ByteBufferFactory.newByteBuffer()'],['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder_1_1_heap_byte_buffer_factory.html#aac26ff51a8162b37a072792ec9068644',1,'com.google.flatbuffers.FlatBufferBuilder.HeapByteBufferFactory.newByteBuffer()']]]
 ];
diff --git a/search/all_d.html b/search/all_d.html
index 67a6960983c276cc0516152007d83aedfdfdeb7f..9986c9cbf7bbdd8e5dd09f9b13af6f8d76d1d4bb 100644
--- a/search/all_d.html
+++ b/search/all_d.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="all_d.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/search/all_d.js b/search/all_d.js
index 4da9cd30c55fed83f73e424d2df6a5f203495f11..fd9da2d6cf18fb3c8dc5ee9a89756a59479c49dc 100644
--- a/search/all_d.js
+++ b/search/all_d.js
@@ -1,4 +1,4 @@
 var searchData=
 [
-  ['newbytebuffer',['newByteBuffer',['../interfacecom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder_1_1_byte_buffer_factory.html#a0db9a9033d232d584443a433d7576f4a',1,'com.google.flatbuffers.FlatBufferBuilder.ByteBufferFactory.newByteBuffer()'],['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder_1_1_heap_byte_buffer_factory.html#aac26ff51a8162b37a072792ec9068644',1,'com.google.flatbuffers.FlatBufferBuilder.HeapByteBufferFactory.newByteBuffer()']]]
+  ['offset',['Offset',['../structflatbuffers_1_1_offset.html',1,'flatbuffers::Offset&lt; T &gt;'],['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#ae3a3fbf645e64ce784a524f935a6e6f2',1,'com.google.flatbuffers.FlatBufferBuilder.offset()']]]
 ];
diff --git a/search/all_e.html b/search/all_e.html
index 92ab0e337063680fefbc59afaaef130e322a9458..9fa42bbace49c9bd33b6c517edd561edaed95a76 100644
--- a/search/all_e.html
+++ b/search/all_e.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="all_e.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/search/all_e.js b/search/all_e.js
index d9e24553ff3b02ba8b6655b70b091c56ebdca44d..2f3873f004b40f7c94282bc00cdf4bb7f2379cd8 100644
--- a/search/all_e.js
+++ b/search/all_e.js
@@ -1,5 +1,13 @@
 var searchData=
 [
-  ['offset',['Offset',['../structflatbuffers_1_1_offset.html',1,'flatbuffers']]],
-  ['offset',['offset',['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#ae3a3fbf645e64ce784a524f935a6e6f2',1,'com::google::flatbuffers::FlatBufferBuilder']]]
+  ['platform_20_2f_20language_20_2f_20feature_20support',['Platform / Language / Feature support',['../flatbuffers_support.html',1,'']]],
+  ['pad',['pad',['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a4a2e8c6430c6538509147225b8a4697e',1,'com::google::flatbuffers::FlatBufferBuilder']]],
+  ['prep',['prep',['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a2023123a33f19d670182d5f00ef9aa59',1,'com::google::flatbuffers::FlatBufferBuilder']]],
+  ['putboolean',['putBoolean',['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a24114cfb1adb89f1e3d72736b06a8df0',1,'com::google::flatbuffers::FlatBufferBuilder']]],
+  ['putbyte',['putByte',['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a86b42641d0c600afa11f8c8493f5e6a3',1,'com::google::flatbuffers::FlatBufferBuilder']]],
+  ['putdouble',['putDouble',['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a36bc3231cc9f86e6fd2750dcec8b7336',1,'com::google::flatbuffers::FlatBufferBuilder']]],
+  ['putfloat',['putFloat',['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a0e3fae083ea9c9bff3b80cde3f4581bb',1,'com::google::flatbuffers::FlatBufferBuilder']]],
+  ['putint',['putInt',['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a108d4c3d931b4f2a63a71aeefa562bba',1,'com::google::flatbuffers::FlatBufferBuilder']]],
+  ['putlong',['putLong',['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a083507c3c359c28bb008142e8ad41a7d',1,'com::google::flatbuffers::FlatBufferBuilder']]],
+  ['putshort',['putShort',['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a5a98de8b6e8fc5df984c435ba3181690',1,'com::google::flatbuffers::FlatBufferBuilder']]]
 ];
diff --git a/search/all_f.html b/search/all_f.html
index 6ff4c978191f6b135dc07686cf2797232e44c256..6ecfc0ed833e151ab4038aeb827a8e0834e745c1 100644
--- a/search/all_f.html
+++ b/search/all_f.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="all_f.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/search/all_f.js b/search/all_f.js
index 054dd7c5c7db7a8af2ac0ab7473f92c6a8a696d6..2f943ff614dcaf1907ccdfbb4811cb118291de87 100644
--- a/search/all_f.js
+++ b/search/all_f.js
@@ -1,15 +1,6 @@
 var searchData=
 [
-  ['php_20api',['PHP API',['../group__flatbuffers__php__api.html',1,'']]],
-  ['python_20api',['Python API',['../group__flatbuffers__python__api.html',1,'']]],
-  ['platform_20_2f_20language_20_2f_20feature_20support',['Platform / Language / Feature support',['../flatbuffers_support.html',1,'']]],
-  ['pad',['pad',['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a4a2e8c6430c6538509147225b8a4697e',1,'com::google::flatbuffers::FlatBufferBuilder']]],
-  ['prep',['prep',['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a2023123a33f19d670182d5f00ef9aa59',1,'com::google::flatbuffers::FlatBufferBuilder']]],
-  ['putboolean',['putBoolean',['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a24114cfb1adb89f1e3d72736b06a8df0',1,'com::google::flatbuffers::FlatBufferBuilder']]],
-  ['putbyte',['putByte',['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a86b42641d0c600afa11f8c8493f5e6a3',1,'com::google::flatbuffers::FlatBufferBuilder']]],
-  ['putdouble',['putDouble',['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a36bc3231cc9f86e6fd2750dcec8b7336',1,'com::google::flatbuffers::FlatBufferBuilder']]],
-  ['putfloat',['putFloat',['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a0e3fae083ea9c9bff3b80cde3f4581bb',1,'com::google::flatbuffers::FlatBufferBuilder']]],
-  ['putint',['putInt',['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a108d4c3d931b4f2a63a71aeefa562bba',1,'com::google::flatbuffers::FlatBufferBuilder']]],
-  ['putlong',['putLong',['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a083507c3c359c28bb008142e8ad41a7d',1,'com::google::flatbuffers::FlatBufferBuilder']]],
-  ['putshort',['putShort',['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a5a98de8b6e8fc5df984c435ba3181690',1,'com::google::flatbuffers::FlatBufferBuilder']]]
+  ['release',['Release',['../classflatbuffers_1_1_flat_buffer_builder.html#a5e2c3a1e47f0ab4a3a3f07a07a52fb45',1,'flatbuffers::FlatBufferBuilder']]],
+  ['releasebufferpointer',['ReleaseBufferPointer',['../classflatbuffers_1_1_flat_buffer_builder.html#a0e715d9019060b4b753c4e5228be56e8',1,'flatbuffers::FlatBufferBuilder']]],
+  ['removesizeprefix',['removeSizePrefix',['../classcom_1_1google_1_1flatbuffers_1_1_byte_buffer_util.html#a58d6c39c53a0c981a2f72a5eca7d992c',1,'com::google::flatbuffers::ByteBufferUtil']]]
 ];
diff --git a/search/classes_0.html b/search/classes_0.html
index d2e0c9a5a8bc116f282fdf1965131e60d8e4bf12..1c3e406ac8e46c5191ec2645d9c4b113e60f8a77 100644
--- a/search/classes_0.html
+++ b/search/classes_0.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="classes_0.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/search/classes_1.html b/search/classes_1.html
index b04aca359af1dacf4856cad902e0e499eece6f70..a8e706950879357872801afbe089184c16409b33 100644
--- a/search/classes_1.html
+++ b/search/classes_1.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="classes_1.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/search/classes_1.js b/search/classes_1.js
index 8d296777849aca1688679e2a33da35cd7c547a2a..f2393eaf5f0255e4b3ba95cae4cc31ee658d39e2 100644
--- a/search/classes_1.js
+++ b/search/classes_1.js
@@ -1,4 +1,5 @@
 var searchData=
 [
-  ['bytebufferfactory',['ByteBufferFactory',['../interfacecom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder_1_1_byte_buffer_factory.html',1,'com::google::flatbuffers::FlatBufferBuilder']]]
+  ['bytebufferfactory',['ByteBufferFactory',['../interfacecom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder_1_1_byte_buffer_factory.html',1,'com::google::flatbuffers::FlatBufferBuilder']]],
+  ['bytebufferutil',['ByteBufferUtil',['../classcom_1_1google_1_1flatbuffers_1_1_byte_buffer_util.html',1,'com::google::flatbuffers']]]
 ];
diff --git a/search/classes_2.html b/search/classes_2.html
index ef9c9ed66a67c116510e0ef4df7dbaaaaef169c8..5c09c9691eb9e94bca8fe68be5ba1147d3b5c9c6 100644
--- a/search/classes_2.html
+++ b/search/classes_2.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="classes_2.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/search/classes_3.html b/search/classes_3.html
index 2e68df4d1becabebfee48f1651131a15f754e097..5faaeba81ceecdcf52a31b66d190e2778d65b598 100644
--- a/search/classes_3.html
+++ b/search/classes_3.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="classes_3.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/search/classes_3.js b/search/classes_3.js
index 66e4f2f910bab86f260183e8be153c470659c305..f7e2f03ee77fc9c9067f066ec61f98e998894ee2 100644
--- a/search/classes_3.js
+++ b/search/classes_3.js
@@ -1,7 +1,5 @@
 var searchData=
 [
   ['fieldloc',['FieldLoc',['../structflatbuffers_1_1_flat_buffer_builder_1_1_field_loc.html',1,'flatbuffers::FlatBufferBuilder']]],
-  ['flatbufferbuilder',['FlatbufferBuilder',['../class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html',1,'Google::FlatBuffers']]],
-  ['flatbufferbuilder',['FlatBufferBuilder',['../classflatbuffers_1_1_flat_buffer_builder.html',1,'flatbuffers::FlatBufferBuilder'],['../class_flat_buffers_1_1_flat_buffer_builder.html',1,'FlatBuffers.FlatBufferBuilder']]],
-  ['flatbufferbuilder',['FlatBufferBuilder',['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html',1,'com::google::flatbuffers']]]
+  ['flatbufferbuilder',['FlatBufferBuilder',['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html',1,'com.google.flatbuffers.FlatBufferBuilder'],['../classflatbuffers_1_1_flat_buffer_builder.html',1,'flatbuffers::FlatBufferBuilder'],['../class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html',1,'Google\FlatBuffers\FlatbufferBuilder'],['../class_flat_buffers_1_1_flat_buffer_builder.html',1,'FlatBuffers.FlatBufferBuilder']]]
 ];
diff --git a/search/classes_4.html b/search/classes_4.html
index ed1f8fc16e9910a89fb2d700d5e3c91d62565313..b3f11bc787ea44a7e1a1494918f76f1d8d0f03e3 100644
--- a/search/classes_4.html
+++ b/search/classes_4.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="classes_4.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/search/classes_5.html b/search/classes_5.html
index 8b095fc83aa918b994b0974678784caf440c30ea..952ace6f49a90de006cd9116b3045c18fa123b36 100644
--- a/search/classes_5.html
+++ b/search/classes_5.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="classes_5.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/search/classes_6.html b/search/classes_6.html
index 5a6490674b4ffbaf5a9bebf505d8da741806c321..75eef9f429013ec6b5cca7bec6783f20536b38a0 100644
--- a/search/classes_6.html
+++ b/search/classes_6.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="classes_6.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/search/classes_7.html b/search/classes_7.html
index 649e79523d3689ae3a91521ce4db2f9be646f73f..745f5f282ecf336db244b35cfe033ba8e793ee07 100644
--- a/search/classes_7.html
+++ b/search/classes_7.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="classes_7.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/search/classes_8.html b/search/classes_8.html
index e6eb4d9dc1429e9d522a27b6c118375b957208b7..5a443d9d55af2eb7bbdd9563d1ef1333ce8ae144 100644
--- a/search/classes_8.html
+++ b/search/classes_8.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="classes_8.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/search/files_0.html b/search/files_0.html
index 867c89d591ff05c1d35cd60501a8d20ce5e653d6..4f272b83a450fd320b6df857f19bc3427878fdb1 100644
--- a/search/files_0.html
+++ b/search/files_0.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="files_0.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/search/files_0.js b/search/files_0.js
index eccec343a46cedb8b686a54865465496772eca97..b78ff12a521eeaf32cf71ee03b4fb4163410b6b7 100644
--- a/search/files_0.js
+++ b/search/files_0.js
@@ -1,7 +1,4 @@
 var searchData=
 [
-  ['flatbufferbuilder_2ecs',['FlatBufferBuilder.cs',['../_flat_buffer_builder_8cs.html',1,'']]],
-  ['flatbufferbuilder_2ejava',['FlatBufferBuilder.java',['../_flat_buffer_builder_8java.html',1,'']]],
-  ['flatbufferbuilder_2ephp',['FlatbufferBuilder.php',['../_flatbuffer_builder_8php.html',1,'']]],
-  ['flatbuffers_2ejs',['flatbuffers.js',['../flatbuffers_8js.html',1,'']]]
+  ['bytebufferutil_2ejava',['ByteBufferUtil.java',['../_byte_buffer_util_8java.html',1,'']]]
 ];
diff --git a/search/files_1.html b/search/files_1.html
new file mode 100644
index 0000000000000000000000000000000000000000..dcce42237106ee60c4e5bd4eecee1218d002f0dc
--- /dev/null
+++ b/search/files_1.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_1.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/search/files_1.js b/search/files_1.js
new file mode 100644
index 0000000000000000000000000000000000000000..127f19c7e3b4f8c7ccb101559523d83f944d2837
--- /dev/null
+++ b/search/files_1.js
@@ -0,0 +1,6 @@
+var searchData=
+[
+  ['flatbufferbuilder_2ecs',['FlatBufferBuilder.cs',['../_flat_buffer_builder_8cs.html',1,'']]],
+  ['flatbufferbuilder_2ejava',['FlatBufferBuilder.java',['../_flat_buffer_builder_8java.html',1,'']]],
+  ['flatbufferbuilder_2ephp',['FlatbufferBuilder.php',['../_flatbuffer_builder_8php.html',1,'']]]
+];
diff --git a/search/functions_0.html b/search/functions_0.html
index a3f28dcdc15eef4a8d9478da483d25d53a721131..4e6d87d152c21a6ad8ef2fe704052db94bef640a 100644
--- a/search/functions_0.html
+++ b/search/functions_0.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="functions_0.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/search/functions_1.html b/search/functions_1.html
index abb1f12a40accfc7eeef6e2d082467899449a173..b343e2db57bc07ddb02a709d2298ea220e0037fb 100644
--- a/search/functions_1.html
+++ b/search/functions_1.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="functions_1.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/search/functions_1.js b/search/functions_1.js
index 8f0f4ab9ebf51761ca96a641354ba28065f483a4..bc4205c309baadfdd422e3ea05e0519965b2bae9 100644
--- a/search/functions_1.js
+++ b/search/functions_1.js
@@ -2,14 +2,14 @@ var searchData=
 [
   ['addbool',['addBool',['../class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html#a723a1053d3a17d5433c37bdbd015844e',1,'Google\FlatBuffers\FlatbufferBuilder\addBool()'],['../class_flat_buffers_1_1_flat_buffer_builder.html#a6b66d785555d19cd0f141978eff78e2e',1,'FlatBuffers.FlatBufferBuilder.AddBool()']]],
   ['addboolean',['addBoolean',['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a53e6356cfef3d6be298efb9a0d67be06',1,'com::google::flatbuffers::FlatBufferBuilder']]],
-  ['addbyte',['AddByte',['../class_flat_buffers_1_1_flat_buffer_builder.html#ac11b10888152d4f687e8ce4d60022254',1,'FlatBuffers.FlatBufferBuilder.AddByte()'],['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#ae019d7ee089c95a37421365d5fb9533b',1,'com.google.flatbuffers.FlatBufferBuilder.addByte()'],['../class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html#a7b78098530190cb90d315419fb1d21fc',1,'Google\FlatBuffers\FlatbufferBuilder\addByte()']]],
+  ['addbyte',['addByte',['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#ae019d7ee089c95a37421365d5fb9533b',1,'com.google.flatbuffers.FlatBufferBuilder.addByte()'],['../class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html#a7b78098530190cb90d315419fb1d21fc',1,'Google\FlatBuffers\FlatbufferBuilder\addByte()'],['../class_flat_buffers_1_1_flat_buffer_builder.html#ac11b10888152d4f687e8ce4d60022254',1,'FlatBuffers.FlatBufferBuilder.AddByte()']]],
   ['adddouble',['addDouble',['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#ac36c1fc72851b17129fc763da00cff32',1,'com.google.flatbuffers.FlatBufferBuilder.addDouble()'],['../class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html#a23a5478774e8909117d31b62dde51e86',1,'Google\FlatBuffers\FlatbufferBuilder\addDouble()'],['../class_flat_buffers_1_1_flat_buffer_builder.html#aef6feaf282148043e6a1c9c1ba9e2094',1,'FlatBuffers.FlatBufferBuilder.AddDouble()']]],
   ['addfloat',['addFloat',['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a55c20e99ba68be516dfbddfddb9efd4d',1,'com.google.flatbuffers.FlatBufferBuilder.addFloat()'],['../class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html#a5ce6215b65e222b8ee22d3eb4436e404',1,'Google\FlatBuffers\FlatbufferBuilder\addFloat()'],['../class_flat_buffers_1_1_flat_buffer_builder.html#a41a1e6f7e7b9098a9d8c1af7157ef2bf',1,'FlatBuffers.FlatBufferBuilder.AddFloat()']]],
   ['addint',['addInt',['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a1c0ae381bf6adb84b18e613aadf8d4db',1,'com.google.flatbuffers.FlatBufferBuilder.addInt()'],['../class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html#a63c9d66329dff15855d11c89134599e0',1,'Google\FlatBuffers\FlatbufferBuilder\addInt()'],['../class_flat_buffers_1_1_flat_buffer_builder.html#a7970bfc069caeee5dfd994e6c1106ab9',1,'FlatBuffers.FlatBufferBuilder.AddInt()']]],
   ['addlong',['addLong',['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a0e1215f334989ecc59b49a3239aed5b5',1,'com.google.flatbuffers.FlatBufferBuilder.addLong()'],['../class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html#a8875bff7ef67af16938cabe719ceac70',1,'Google\FlatBuffers\FlatbufferBuilder\addLong()'],['../class_flat_buffers_1_1_flat_buffer_builder.html#a0d182e151b4f57d47069885cc1d05893',1,'FlatBuffers.FlatBufferBuilder.AddLong()']]],
   ['addoffset',['addOffset',['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#ae817751382089b603753452cc1e56790',1,'com.google.flatbuffers.FlatBufferBuilder.addOffset()'],['../class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html#a127fe515651f4b4347ea8e01b3951934',1,'Google\FlatBuffers\FlatbufferBuilder\addOffset()'],['../class_flat_buffers_1_1_flat_buffer_builder.html#ae1d6d927d400c330cae48951eae546e5',1,'FlatBuffers.FlatBufferBuilder.AddOffset()']]],
   ['addsbyte',['addSbyte',['../class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html#a6add2b19644657fbe0925cb0238618c6',1,'Google\FlatBuffers\FlatbufferBuilder\addSbyte()'],['../class_flat_buffers_1_1_flat_buffer_builder.html#a0b2addc87bde29213424a187b7b08707',1,'FlatBuffers.FlatBufferBuilder.AddSbyte()']]],
-  ['addshort',['AddShort',['../class_flat_buffers_1_1_flat_buffer_builder.html#a93b38c262a248e625ea3719dddf903eb',1,'FlatBuffers.FlatBufferBuilder.AddShort()'],['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a67a9f5dcd251735d6b96e1ad46de9d94',1,'com.google.flatbuffers.FlatBufferBuilder.addShort()'],['../class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html#a1e11aa1f080749100de6e153e88f9dd5',1,'Google\FlatBuffers\FlatbufferBuilder\addShort()']]],
+  ['addshort',['addShort',['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a67a9f5dcd251735d6b96e1ad46de9d94',1,'com.google.flatbuffers.FlatBufferBuilder.addShort()'],['../class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html#a1e11aa1f080749100de6e153e88f9dd5',1,'Google\FlatBuffers\FlatbufferBuilder\addShort()'],['../class_flat_buffers_1_1_flat_buffer_builder.html#a93b38c262a248e625ea3719dddf903eb',1,'FlatBuffers.FlatBufferBuilder.AddShort()']]],
   ['adduint',['addUint',['../class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html#a6f4a37444fca01dcbd0922d18cf2be5c',1,'Google\FlatBuffers\FlatbufferBuilder\addUint()'],['../class_flat_buffers_1_1_flat_buffer_builder.html#aef3581dee532ab763b99947ca43ddcfa',1,'FlatBuffers.FlatBufferBuilder.AddUint()']]],
   ['addulong',['addUlong',['../class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html#a01be3a805c221796997b023b64e90826',1,'Google\FlatBuffers\FlatbufferBuilder\addUlong()'],['../class_flat_buffers_1_1_flat_buffer_builder.html#aa9cc4371456b85d6393958ab56cbc515',1,'FlatBuffers.FlatBufferBuilder.AddUlong()']]],
   ['addushort',['addUshort',['../class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html#a570a0024a8a54e2f73374c94b8fa6c42',1,'Google\FlatBuffers\FlatbufferBuilder\addUshort()'],['../class_flat_buffers_1_1_flat_buffer_builder.html#a52c19b3daa97b0272da0dd7121b2ff5f',1,'FlatBuffers.FlatBufferBuilder.AddUshort()']]]
diff --git a/search/functions_2.html b/search/functions_2.html
index 6cc194ad063c631c41e83e29064fbec54bc03e46..ecce2f3186519145e47461ede4dba66d33bf0bba 100644
--- a/search/functions_2.html
+++ b/search/functions_2.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="functions_2.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/search/functions_2.js b/search/functions_2.js
index cf635ed0e80cb97bcfcc3bd8251bfa5113cbc897..eedcfa0123e99a87b5106d38894004d30ff3a6cb 100644
--- a/search/functions_2.js
+++ b/search/functions_2.js
@@ -3,7 +3,7 @@ var searchData=
   ['clear',['Clear',['../class_flat_buffers_1_1_flat_buffer_builder.html#a74ed0e43043c6e486dbe40b0d2ff63d6',1,'FlatBuffers.FlatBufferBuilder.Clear()'],['../classflatbuffers_1_1_flat_buffer_builder.html#ae94b94ba71ea0aeb2d9a98c43b713412',1,'flatbuffers::FlatBufferBuilder::Clear()'],['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a3a5dd461dc86a2132eaa4f0348b4c001',1,'com.google.flatbuffers.FlatBufferBuilder.clear()']]],
   ['createbytevector',['createByteVector',['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a37b5debda58afd1fcb71ec82efe663b9',1,'com::google::flatbuffers::FlatBufferBuilder']]],
   ['createsharedstring',['CreateSharedString',['../classflatbuffers_1_1_flat_buffer_builder.html#ab478a645216d2d613fc7b7c29b0ff9d1',1,'flatbuffers::FlatBufferBuilder::CreateSharedString(const char *str, size_t len)'],['../classflatbuffers_1_1_flat_buffer_builder.html#a3eb68613e5883dc4b8fff6cf7d1223d7',1,'flatbuffers::FlatBufferBuilder::CreateSharedString(const char *str)'],['../classflatbuffers_1_1_flat_buffer_builder.html#a10e8ec7d1c8fbdc21b1c7047bbbe38d9',1,'flatbuffers::FlatBufferBuilder::CreateSharedString(const std::string &amp;str)'],['../classflatbuffers_1_1_flat_buffer_builder.html#a840b769fbb4148f97d3eed266e4690c3',1,'flatbuffers::FlatBufferBuilder::CreateSharedString(const String *str)']]],
-  ['createstring',['createString',['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#abd3b2f9b239a702ffaa8a1e97894f09e',1,'com.google.flatbuffers.FlatBufferBuilder.createString(CharSequence s)'],['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a8d676eb9973ecba574a220cdef725577',1,'com.google.flatbuffers.FlatBufferBuilder.createString(ByteBuffer s)'],['../class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html#ac54a8acfac1dda020b610da53b2d9a0f',1,'Google\FlatBuffers\FlatbufferBuilder\createString()'],['../class_flat_buffers_1_1_flat_buffer_builder.html#a3b6e42519f278e4a060895633d048070',1,'FlatBuffers.FlatBufferBuilder.CreateString()'],['../classflatbuffers_1_1_flat_buffer_builder.html#aec6f9df2a0366b540b24822414d92cbe',1,'flatbuffers::FlatBufferBuilder::CreateString(const char *str, size_t len)'],['../classflatbuffers_1_1_flat_buffer_builder.html#aad93d113ac24e86ed04b5236b3f4c0c5',1,'flatbuffers::FlatBufferBuilder::CreateString(const char *str)'],['../classflatbuffers_1_1_flat_buffer_builder.html#a8c3af55e64f5cda9aefa38ac5287ef9f',1,'flatbuffers::FlatBufferBuilder::CreateString(const std::string &amp;str)'],['../classflatbuffers_1_1_flat_buffer_builder.html#ac0b6a1c5d949f20ad84367fc0f9e1506',1,'flatbuffers::FlatBufferBuilder::CreateString(const String *str)'],['../classflatbuffers_1_1_flat_buffer_builder.html#ab77d800e77fa76bc758a6c399fd37685',1,'flatbuffers::FlatBufferBuilder::CreateString(const T &amp;str)']]],
+  ['createstring',['createString',['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#abd3b2f9b239a702ffaa8a1e97894f09e',1,'com.google.flatbuffers.FlatBufferBuilder.createString(CharSequence s)'],['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a8d676eb9973ecba574a220cdef725577',1,'com.google.flatbuffers.FlatBufferBuilder.createString(ByteBuffer s)'],['../class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html#ac54a8acfac1dda020b610da53b2d9a0f',1,'Google\FlatBuffers\FlatbufferBuilder\createString()'],['../class_flat_buffers_1_1_flat_buffer_builder.html#a3b6e42519f278e4a060895633d048070',1,'FlatBuffers.FlatBufferBuilder.CreateString()'],['../classflatbuffers_1_1_flat_buffer_builder.html#aec6f9df2a0366b540b24822414d92cbe',1,'flatbuffers::FlatBufferBuilder::CreateString(const char *str, size_t len)'],['../classflatbuffers_1_1_flat_buffer_builder.html#aad93d113ac24e86ed04b5236b3f4c0c5',1,'flatbuffers::FlatBufferBuilder::CreateString(const char *str)'],['../classflatbuffers_1_1_flat_buffer_builder.html#ac51db9083ac815eb81420b6d51f42154',1,'flatbuffers::FlatBufferBuilder::CreateString(char *str)'],['../classflatbuffers_1_1_flat_buffer_builder.html#a8c3af55e64f5cda9aefa38ac5287ef9f',1,'flatbuffers::FlatBufferBuilder::CreateString(const std::string &amp;str)'],['../classflatbuffers_1_1_flat_buffer_builder.html#ac0b6a1c5d949f20ad84367fc0f9e1506',1,'flatbuffers::FlatBufferBuilder::CreateString(const String *str)'],['../classflatbuffers_1_1_flat_buffer_builder.html#ab77d800e77fa76bc758a6c399fd37685',1,'flatbuffers::FlatBufferBuilder::CreateString(const T &amp;str)']]],
   ['createstruct',['CreateStruct',['../classflatbuffers_1_1_flat_buffer_builder.html#a43f51ba9c8f4f24ea2247a3979d095b8',1,'flatbuffers::FlatBufferBuilder']]],
   ['createuninitializedvector',['CreateUninitializedVector',['../classflatbuffers_1_1_flat_buffer_builder.html#ac2b96292fa0fb1534fe7fd218a094d0c',1,'flatbuffers::FlatBufferBuilder::CreateUninitializedVector(size_t len, size_t elemsize, uint8_t **buf)'],['../classflatbuffers_1_1_flat_buffer_builder.html#a2305b63d367845972b51669dd995cc50',1,'flatbuffers::FlatBufferBuilder::CreateUninitializedVector(size_t len, T **buf)']]],
   ['createunintializedvector',['createUnintializedVector',['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#acc889115f91460ca89ce981cb02c2039',1,'com::google::flatbuffers::FlatBufferBuilder']]],
@@ -13,7 +13,7 @@ var searchData=
   ['createvectorofsortedstructs',['CreateVectorOfSortedStructs',['../classflatbuffers_1_1_flat_buffer_builder.html#a7cc10b709dfa3e72083843d1a5e36c15',1,'flatbuffers::FlatBufferBuilder::CreateVectorOfSortedStructs(std::vector&lt; T &gt; *v)'],['../classflatbuffers_1_1_flat_buffer_builder.html#ab1f44cc1b130e13b41e9a80de76e25cf',1,'flatbuffers::FlatBufferBuilder::CreateVectorOfSortedStructs(T *v, size_t len)']]],
   ['createvectorofsortedtables',['CreateVectorOfSortedTables',['../classflatbuffers_1_1_flat_buffer_builder.html#a2130ef232ff405eebe2e7f184ecd06e6',1,'flatbuffers::FlatBufferBuilder::CreateVectorOfSortedTables(Offset&lt; T &gt; *v, size_t len)'],['../classflatbuffers_1_1_flat_buffer_builder.html#ac64d11c219559ea51567eab556e13135',1,'flatbuffers::FlatBufferBuilder::CreateVectorOfSortedTables(std::vector&lt; Offset&lt; T &gt;&gt; *v)']]],
   ['createvectorofstrings',['CreateVectorOfStrings',['../classflatbuffers_1_1_flat_buffer_builder.html#a592110519a6c8db1926f1365bf2a58e6',1,'flatbuffers::FlatBufferBuilder']]],
-  ['createvectorofstructs',['CreateVectorOfStructs',['../classflatbuffers_1_1_flat_buffer_builder.html#afede51fd9c32d146cbb1832f57c5e1b7',1,'flatbuffers::FlatBufferBuilder::CreateVectorOfStructs(const T *v, size_t len)'],['../classflatbuffers_1_1_flat_buffer_builder.html#a6e90ada59d9553636f72ce8e4a892f72',1,'flatbuffers::FlatBufferBuilder::CreateVectorOfStructs(size_t vector_size, const std::function&lt; void(size_t i, T *)&gt; &amp;filler)'],['../classflatbuffers_1_1_flat_buffer_builder.html#a9cc09fa59ff9732e972877cfe911c8a5',1,'flatbuffers::FlatBufferBuilder::CreateVectorOfStructs(size_t vector_size, F f, S *state)'],['../classflatbuffers_1_1_flat_buffer_builder.html#a8704709a2e25ad04679212ee4126b1a1',1,'flatbuffers::FlatBufferBuilder::CreateVectorOfStructs(const std::vector&lt; T &gt; &amp;v)']]],
+  ['createvectorofstructs',['CreateVectorOfStructs',['../classflatbuffers_1_1_flat_buffer_builder.html#afede51fd9c32d146cbb1832f57c5e1b7',1,'flatbuffers::FlatBufferBuilder::CreateVectorOfStructs(const T *v, size_t len)'],['../classflatbuffers_1_1_flat_buffer_builder.html#a6e90ada59d9553636f72ce8e4a892f72',1,'flatbuffers::FlatBufferBuilder::CreateVectorOfStructs(size_t vector_size, const std::function&lt; void(size_t i, T *)&gt; &amp;filler)'],['../classflatbuffers_1_1_flat_buffer_builder.html#a9cc09fa59ff9732e972877cfe911c8a5',1,'flatbuffers::FlatBufferBuilder::CreateVectorOfStructs(size_t vector_size, F f, S *state)'],['../classflatbuffers_1_1_flat_buffer_builder.html#a110c2a3298aebef1a9dfa3c44ee84f42',1,'flatbuffers::FlatBufferBuilder::CreateVectorOfStructs(const std::vector&lt; T, Alloc &gt; &amp;v)']]],
   ['createvectoroftables',['createVectorOfTables',['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a24ea4649f508a7843e429737a4a9fad1',1,'com::google::flatbuffers::FlatBufferBuilder']]],
   ['createvectoroftables_3c_20t_20_3e',['CreateVectorOfTables&lt; T &gt;',['../class_flat_buffers_1_1_flat_buffer_builder.html#a82219d659221dfc4c271399d9e56c47a',1,'FlatBuffers::FlatBufferBuilder']]]
 ];
diff --git a/search/functions_3.html b/search/functions_3.html
index 7a9659077d744200773bbf5d70e127ebd93fd083..15f06abdc22af71f0336215663edc19fb110c21e 100644
--- a/search/functions_3.html
+++ b/search/functions_3.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="functions_3.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/search/functions_4.html b/search/functions_4.html
index 7c0a2955d632c359685b439e2fedba466adeda0d..8985ff27876408737253bcf1c0bf3a4bdd3b420b 100644
--- a/search/functions_4.html
+++ b/search/functions_4.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="functions_4.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/search/functions_5.html b/search/functions_5.html
index 6a71f6c0c45ff40a646718eda9a5cff305cf004d..03149184b8b34542872d75348bb072cef7e2c824 100644
--- a/search/functions_5.html
+++ b/search/functions_5.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="functions_5.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/search/functions_5.js b/search/functions_5.js
index 58fd40ab2d84a3c8262b068bf1fde9b7124e5dc2..17f3c67016242adc18bc0ab1ed57ebaecb7dc1b5 100644
--- a/search/functions_5.js
+++ b/search/functions_5.js
@@ -1,7 +1,7 @@
 var searchData=
 [
-  ['finish',['finish',['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#aee9ed3214a7b35075773c506e3d95a14',1,'com.google.flatbuffers.FlatBufferBuilder.finish(int root_table)'],['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a189de474e0c39d663cc65fa21a63f071',1,'com.google.flatbuffers.FlatBufferBuilder.finish(int root_table, String file_identifier)'],['../class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html#a799f0d1cf0fff359d6d04768108cb2a5',1,'Google\FlatBuffers\FlatbufferBuilder\finish()'],['../class_flat_buffers_1_1_flat_buffer_builder.html#a1afc6853539aaff7ac6937ed03ff5c7b',1,'FlatBuffers.FlatBufferBuilder.Finish(int rootTable)'],['../class_flat_buffers_1_1_flat_buffer_builder.html#ac7a48fd125d3f65f1bc1bc67d74eae73',1,'FlatBuffers.FlatBufferBuilder.Finish(int rootTable, string fileIdentifier)'],['../classflatbuffers_1_1_flat_buffer_builder.html#a0c9e507b373d598b51052fab4fa34912',1,'flatbuffers::FlatBufferBuilder::Finish()']]],
-  ['finishsizeprefixed',['FinishSizePrefixed',['../classflatbuffers_1_1_flat_buffer_builder.html#a7ba8462e408431054c99d25120326220',1,'flatbuffers::FlatBufferBuilder']]],
-  ['flatbufferbuilder',['FlatBufferBuilder',['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#aed1e475e75409625c8df85dc3d396e4c',1,'com.google.flatbuffers.FlatBufferBuilder.FlatBufferBuilder(int initial_size, ByteBufferFactory bb_factory)'],['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#af49427a6a8a6ec24f3c9cf812f30812d',1,'com.google.flatbuffers.FlatBufferBuilder.FlatBufferBuilder(int initial_size)'],['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#ac8a8a558ce1d2531447a765636db2387',1,'com.google.flatbuffers.FlatBufferBuilder.FlatBufferBuilder()'],['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a3388cd4dc6e5233283fb4927b71a1c39',1,'com.google.flatbuffers.FlatBufferBuilder.FlatBufferBuilder(ByteBuffer existing_bb, ByteBufferFactory bb_factory)'],['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a61ad1938219bcdbe99cc4b668f4c0f99',1,'com.google.flatbuffers.FlatBufferBuilder.FlatBufferBuilder(ByteBuffer existing_bb)'],['../class_flat_buffers_1_1_flat_buffer_builder.html#ae24f93e3f9672846dd241d585d62c63d',1,'FlatBuffers.FlatBufferBuilder.FlatBufferBuilder()'],['../classflatbuffers_1_1_flat_buffer_builder.html#ae4ab74f53187e6c3e6041d34e01904c4',1,'flatbuffers::FlatBufferBuilder::FlatBufferBuilder()']]],
+  ['finish',['finish',['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#af344604d66e9e8524fef826fc516d5b2',1,'com.google.flatbuffers.FlatBufferBuilder.finish(int root_table, boolean size_prefix)'],['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#aee9ed3214a7b35075773c506e3d95a14',1,'com.google.flatbuffers.FlatBufferBuilder.finish(int root_table)'],['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#afc31aba1a9523fde4be3558f8f19f49b',1,'com.google.flatbuffers.FlatBufferBuilder.finish(int root_table, String file_identifier, boolean size_prefix)'],['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a189de474e0c39d663cc65fa21a63f071',1,'com.google.flatbuffers.FlatBufferBuilder.finish(int root_table, String file_identifier)'],['../class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html#a799f0d1cf0fff359d6d04768108cb2a5',1,'Google\FlatBuffers\FlatbufferBuilder\finish()'],['../class_flat_buffers_1_1_flat_buffer_builder.html#a709d1ded4ffd922b61bc6f7f4a12fb97',1,'FlatBuffers.FlatBufferBuilder.Finish(int rootTable, bool sizePrefix)'],['../class_flat_buffers_1_1_flat_buffer_builder.html#a1afc6853539aaff7ac6937ed03ff5c7b',1,'FlatBuffers.FlatBufferBuilder.Finish(int rootTable)'],['../class_flat_buffers_1_1_flat_buffer_builder.html#a703062d740b32a77d26c5f6d1928c75f',1,'FlatBuffers.FlatBufferBuilder.Finish(int rootTable, string fileIdentifier, bool sizePrefix)'],['../class_flat_buffers_1_1_flat_buffer_builder.html#ac7a48fd125d3f65f1bc1bc67d74eae73',1,'FlatBuffers.FlatBufferBuilder.Finish(int rootTable, string fileIdentifier)'],['../classflatbuffers_1_1_flat_buffer_builder.html#a0c9e507b373d598b51052fab4fa34912',1,'flatbuffers::FlatBufferBuilder::Finish()']]],
+  ['finishsizeprefixed',['finishSizePrefixed',['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#aa00c035b0f60abe32a5f1467ebd4ec54',1,'com.google.flatbuffers.FlatBufferBuilder.finishSizePrefixed(int root_table)'],['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#ab179d8aa4c4b782d83b3817a6b08ee35',1,'com.google.flatbuffers.FlatBufferBuilder.finishSizePrefixed(int root_table, String file_identifier)'],['../class_flat_buffers_1_1_flat_buffer_builder.html#a425ab2bd13a0e4331a7190ec2d17c3b2',1,'FlatBuffers.FlatBufferBuilder.FinishSizePrefixed(int rootTable)'],['../class_flat_buffers_1_1_flat_buffer_builder.html#a92de6a8a35e1ae5a07f5578bb0fda16c',1,'FlatBuffers.FlatBufferBuilder.FinishSizePrefixed(int rootTable, string fileIdentifier)'],['../classflatbuffers_1_1_flat_buffer_builder.html#a7ba8462e408431054c99d25120326220',1,'flatbuffers::FlatBufferBuilder::FinishSizePrefixed()']]],
+  ['flatbufferbuilder',['FlatBufferBuilder',['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#aed1e475e75409625c8df85dc3d396e4c',1,'com.google.flatbuffers.FlatBufferBuilder.FlatBufferBuilder(int initial_size, ByteBufferFactory bb_factory)'],['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#af49427a6a8a6ec24f3c9cf812f30812d',1,'com.google.flatbuffers.FlatBufferBuilder.FlatBufferBuilder(int initial_size)'],['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#ac8a8a558ce1d2531447a765636db2387',1,'com.google.flatbuffers.FlatBufferBuilder.FlatBufferBuilder()'],['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a3388cd4dc6e5233283fb4927b71a1c39',1,'com.google.flatbuffers.FlatBufferBuilder.FlatBufferBuilder(ByteBuffer existing_bb, ByteBufferFactory bb_factory)'],['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#a61ad1938219bcdbe99cc4b668f4c0f99',1,'com.google.flatbuffers.FlatBufferBuilder.FlatBufferBuilder(ByteBuffer existing_bb)'],['../class_flat_buffers_1_1_flat_buffer_builder.html#ae24f93e3f9672846dd241d585d62c63d',1,'FlatBuffers.FlatBufferBuilder.FlatBufferBuilder()'],['../classflatbuffers_1_1_flat_buffer_builder.html#ab0173786ea4ec3e4ae10555639b2996c',1,'flatbuffers::FlatBufferBuilder::FlatBufferBuilder()']]],
   ['forcedefaults',['forceDefaults',['../classcom_1_1google_1_1flatbuffers_1_1_flat_buffer_builder.html#aaadff3772bfdff756b4f269afae5ac69',1,'com.google.flatbuffers.FlatBufferBuilder.forceDefaults()'],['../class_google_1_1_flat_buffers_1_1_flatbuffer_builder.html#a5d75bca1a17d58bb6e383a73761ba45f',1,'Google\FlatBuffers\FlatbufferBuilder\forceDefaults()'],['../classflatbuffers_1_1_flat_buffer_builder.html#a16a8fd46b34ad7727406c37b65b6b27a',1,'flatbuffers::FlatBufferBuilder::ForceDefaults()']]]
 ];
diff --git a/search/functions_6.html b/search/functions_6.html
index 0c3aa1cfac8fc40f9fd6bc55ec2201fdee218a2f..c50612362cda7014ad911025ca402f330c2fb8ee 100644
--- a/search/functions_6.html
+++ b/search/functions_6.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="functions_6.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/search/functions_6.js b/search/functions_6.js
index 675e6de8e57a8900171b4aa9d844662792a0d43a..01b1d6f38c901d85f523154cf74e645f45fbad01 100644
--- a/search/functions_6.js
+++ b/search/functions_6.js
@@ -1,7 +1,8 @@
 var searchData=
 [
   ['getbufferminalignment',['GetBufferMinAlignment',['../classflatbuffers_1_1_flat_buffer_builder.html#aa1ebce1f3f46832946a95952af1e9c2b',1,'flatbuffers::FlatBufferBuilder']]],
-  ['getbufferpointer',['GetBufferPointer',['../classflatbuffers_1_1_flat_buffer_builder.html#a8dc35f792179df4ca850492c1796d8b8',1,'flatbuffers::FlatBufferBuilder']]],
-  ['getcurrentbufferpointer',['GetCurrentBufferPointer',['../classflatbuffers_1_1_flat_buffer_builder.html#a3f4252e9bc005ba6c700469544fdccc9',1,'flatbuffers::FlatBufferBuilder']]],
-  ['getsize',['GetSize',['../classflatbuffers_1_1_flat_buffer_builder.html#ac1bfd609f7f736e9a37cedae77448b63',1,'flatbuffers::FlatBufferBuilder']]]
+  ['getbufferpointer',['GetBufferPointer',['../classflatbuffers_1_1_flat_buffer_builder.html#ab81ab8aa273c270b0942fd81489cad83',1,'flatbuffers::FlatBufferBuilder']]],
+  ['getcurrentbufferpointer',['GetCurrentBufferPointer',['../classflatbuffers_1_1_flat_buffer_builder.html#a099810f03046139d1854d20a1c2a2e41',1,'flatbuffers::FlatBufferBuilder']]],
+  ['getsize',['GetSize',['../classflatbuffers_1_1_flat_buffer_builder.html#a66c8fd33ab9b3b237954c9ea38648f7f',1,'flatbuffers::FlatBufferBuilder']]],
+  ['getsizeprefix',['getSizePrefix',['../classcom_1_1google_1_1flatbuffers_1_1_byte_buffer_util.html#a4c87c63fa8d31e039b344bbaef00a3be',1,'com::google::flatbuffers::ByteBufferUtil']]]
 ];
diff --git a/search/functions_7.html b/search/functions_7.html
index 115c503bece34eadca0461afc44e65958d155927..83a7b84b775c269f67fff61dfa25875127d1ece1 100644
--- a/search/functions_7.html
+++ b/search/functions_7.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="functions_7.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/search/functions_8.html b/search/functions_8.html
index 491e522ebef4345d22983587de385fd9152a8eae..b55f0e65f43357e7e188b0bcb6ca52cb881e4af8 100644
--- a/search/functions_8.html
+++ b/search/functions_8.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="functions_8.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/search/functions_9.html b/search/functions_9.html
index 401869ada0be254d445f20f2c6ce0305f23f8e6f..c73f07bb52afddac5af3488f8cf57750a07c527a 100644
--- a/search/functions_9.html
+++ b/search/functions_9.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="functions_9.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/search/functions_a.html b/search/functions_a.html
index 27e77954def7fd07dbd82f3ee1f955a93b81cc07..f10ad638c38550e1cd2e835dde8db5b88d20609f 100644
--- a/search/functions_a.html
+++ b/search/functions_a.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="functions_a.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/search/functions_b.html b/search/functions_b.html
index 633ca6f6a8a34320e3803793a66b85f0d0204fa4..172ea1b3136b32d898d2b332d16f29694bcf1b29 100644
--- a/search/functions_b.html
+++ b/search/functions_b.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="functions_b.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/search/functions_b.js b/search/functions_b.js
index 17fea3b11d7b503eb2778632f352ea5b43e44f5b..2f943ff614dcaf1907ccdfbb4811cb118291de87 100644
--- a/search/functions_b.js
+++ b/search/functions_b.js
@@ -1,5 +1,6 @@
 var searchData=
 [
   ['release',['Release',['../classflatbuffers_1_1_flat_buffer_builder.html#a5e2c3a1e47f0ab4a3a3f07a07a52fb45',1,'flatbuffers::FlatBufferBuilder']]],
-  ['releasebufferpointer',['ReleaseBufferPointer',['../classflatbuffers_1_1_flat_buffer_builder.html#a0e715d9019060b4b753c4e5228be56e8',1,'flatbuffers::FlatBufferBuilder']]]
+  ['releasebufferpointer',['ReleaseBufferPointer',['../classflatbuffers_1_1_flat_buffer_builder.html#a0e715d9019060b4b753c4e5228be56e8',1,'flatbuffers::FlatBufferBuilder']]],
+  ['removesizeprefix',['removeSizePrefix',['../classcom_1_1google_1_1flatbuffers_1_1_byte_buffer_util.html#a58d6c39c53a0c981a2f72a5eca7d992c',1,'com::google::flatbuffers::ByteBufferUtil']]]
 ];
diff --git a/search/functions_c.html b/search/functions_c.html
index fbd80b0ecc13acdcf089c077bb8095146b7414ed..99492ba8e8bbd7862352bbba87c40a8d928bbbb4 100644
--- a/search/functions_c.html
+++ b/search/functions_c.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="functions_c.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/search/groups_0.html b/search/groups_0.html
index ad8fbe926bcccb709a967414a84940a32a0eb1e0..1ede28dffd747aaffec41df5924f5b223c98720f 100644
--- a/search/groups_0.html
+++ b/search/groups_0.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="groups_0.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/search/groups_0.js b/search/groups_0.js
index 9bada4cbceaf3696f473b8365ca08387ef99a8ff..523adc79c445384ae331aff301858f7c37399c88 100644
--- a/search/groups_0.js
+++ b/search/groups_0.js
@@ -1,5 +1,8 @@
 var searchData=
 [
-  ['c_2b_2b_20api',['C++ API',['../group__flatbuffers__cpp__api.html',1,'']]],
-  ['c_23_20api',['C# API',['../group__flatbuffers__csharp__api.html',1,'']]]
+  ['flatbuffers_5fcpp_5fapi',['Flatbuffers_cpp_api',['../group__flatbuffers__cpp__api.html',1,'']]],
+  ['flatbuffers_5fcsharp_5fapi',['Flatbuffers_csharp_api',['../group__flatbuffers__csharp__api.html',1,'']]],
+  ['flatbuffers_5fgo_5fapi',['Flatbuffers_go_api',['../group__flatbuffers__go__api.html',1,'']]],
+  ['flatbuffers_5fjava_5fapi',['Flatbuffers_java_api',['../group__flatbuffers__java__api.html',1,'']]],
+  ['flatbuffers_5fphp_5fapi',['Flatbuffers_php_api',['../group__flatbuffers__php__api.html',1,'']]]
 ];
diff --git a/search/namespaces_0.html b/search/namespaces_0.html
index 2336e75af1e593a9bef4e8b21d9410e1cb76f17b..605ac452c96d276f11697009d00139402a5a1f15 100644
--- a/search/namespaces_0.html
+++ b/search/namespaces_0.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="namespaces_0.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/search/pages_0.html b/search/pages_0.html
index 8ce129938c14dd48b3611fd397a3df182d5822ef..4955b9e4f8ae5a81615d4061e19e097c457498ba 100644
--- a/search/pages_0.html
+++ b/search/pages_0.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="pages_0.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/search/pages_1.html b/search/pages_1.html
index 225a8eca1fd7ba6e715403af3267e1f6f2b660f4..aedb14ee2a2f1d3de99fd7359462e8cbaada8313 100644
--- a/search/pages_1.html
+++ b/search/pages_1.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="pages_1.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/search/pages_2.html b/search/pages_2.html
index 65a3bb2d10d487d9a588719c83c132154bb8c1a3..bd9159398f49163dd69590222895d999dcb6a200 100644
--- a/search/pages_2.html
+++ b/search/pages_2.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="pages_2.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/search/pages_2.js b/search/pages_2.js
index 41693ae99b8396fc48df9f66dca1ad681635ba4d..8f78755d29d4369e72ff5e8839fcd8df38b4c837 100644
--- a/search/pages_2.js
+++ b/search/pages_2.js
@@ -2,5 +2,6 @@ var searchData=
 [
   ['flatbuffer_20internals',['FlatBuffer Internals',['../flatbuffers_internals.html',1,'']]],
   ['flatbuffers_20white_20paper',['FlatBuffers white paper',['../flatbuffers_white_paper.html',1,'']]],
-  ['flexbuffers',['FlexBuffers',['../flexbuffers.html',1,'']]]
+  ['flexbuffers',['FlexBuffers',['../flexbuffers.html',1,'']]],
+  ['flatbuffers',['FlatBuffers',['../index.html',1,'']]]
 ];
diff --git a/search/pages_3.html b/search/pages_3.html
index fd88a3d04ac1e5eca88c7539fbfead3cdf7df25a..bc0e37f20b1d4e07e22017e4634445a863aa1589 100644
--- a/search/pages_3.html
+++ b/search/pages_3.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="pages_3.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/search/pages_4.html b/search/pages_4.html
index fa6ec3ce94b78d983e68c3476e3912e1224b968a..d4c3e8e9f65d8fa456556011a127b628b3c897dc 100644
--- a/search/pages_4.html
+++ b/search/pages_4.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="pages_4.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/search/pages_5.html b/search/pages_5.html
index f2249ac5a150d043a641c761f7a771406c333afe..af17efeb8e9b27e13e3b32db681b7243e765c98d 100644
--- a/search/pages_5.html
+++ b/search/pages_5.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="pages_5.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/search/pages_6.html b/search/pages_6.html
index d9a199e378423cc2e21f827587fa051c89471369..52583b33e812e6159e7f87775236218bcd0c0fec 100644
--- a/search/pages_6.html
+++ b/search/pages_6.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="pages_6.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/search/pages_7.html b/search/pages_7.html
index 1c9154deb0c3f2365de3ff76399359b57d86b0e5..7d4b8fe9bd0eb3ea8e3aaceb455286ad35eb3bef 100644
--- a/search/pages_7.html
+++ b/search/pages_7.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="pages_7.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/search/properties_0.html b/search/properties_0.html
index 140f2f311ef421b5264463b76d85fbf583d074d6..1ce7645d5de330b9a928b833d1124f5300e532dd 100644
--- a/search/properties_0.html
+++ b/search/properties_0.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="properties_0.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/search/properties_1.html b/search/properties_1.html
index a2cc5c001f8df4846ee6aa9d64a9eaeadeed812a..9938a7deee919e4d87d20b292e39304500fd52ce 100644
--- a/search/properties_1.html
+++ b/search/properties_1.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="properties_1.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/search/search.css b/search/search.css
index 4d7612ff63e3b5449072d07c3ffc648c6ad0bb11..3cf9df94a419c3175edbf2ca1719a2deb7a497dd 100644
--- a/search/search.css
+++ b/search/search.css
@@ -6,14 +6,12 @@
 
 #MSearchBox {
     white-space : nowrap;
-    position: absolute;
     float: none;
-    display: inline;
     margin-top: 8px;
     right: 0px;
     width: 170px;
+    height: 24px;
     z-index: 102;
-    background-color: white;
 }
 
 #MSearchBox .left
@@ -48,12 +46,13 @@
     height:19px;
     background:url('search_m.png') repeat-x;
     border:none;
-    width:111px;
+    width:115px;
     margin-left:20px;
     padding-left:4px;
     color: #909090;
     outline: none;
     font: 9pt Arial, Verdana, sans-serif;
+    -webkit-border-radius: 0px;
 }
 
 #FSearchBox #MSearchField {
@@ -64,7 +63,7 @@
     display:block;
     position:absolute;
     right:10px;
-    top:0px;
+    top:8px;
     width:20px;
     height:19px;
     background:url('search_r.png') no-repeat;
@@ -102,7 +101,7 @@
     left: 0; top: 0;
     border: 1px solid #90A5CE;
     background-color: #F9FAFC;
-    z-index: 1;
+    z-index: 10001;
     padding-top: 4px;
     padding-bottom: 4px;
     -moz-border-radius: 4px;
@@ -165,6 +164,7 @@ iframe#MSearchResults {
     left: 0; top: 0;
     border: 1px solid #000;
     background-color: #EEF1F7;
+    z-index:10000;
 }
 
 /* ----------------------------------- */
diff --git a/search/search.js b/search/search.js
index 609aad5ad0f77af056ac51222531133fe134ee83..dedce3bf093890b8693ec9b110414855542fb79b 100644
--- a/search/search.js
+++ b/search/search.js
@@ -1,36 +1,3 @@
-// Search script generated by doxygen
-// Copyright (C) 2009 by Dimitri van Heesch.
-
-// The code in this file is loosly based on main.js, part of Natural Docs,
-// which is Copyright (C) 2003-2008 Greg Valure
-// Natural Docs is licensed under the GPL.
-
-var indexSectionsWithContent =
-{
-  0: "$_abcdefghijknoprstuvw",
-  1: "abdfhiosv",
-  2: "f",
-  3: "f",
-  4: "_acdefginoprs",
-  5: "$abcdfk",
-  6: "df",
-  7: "cgjp",
-  8: "bcfgptuw"
-};
-
-var indexSectionNames =
-{
-  0: "all",
-  1: "classes",
-  2: "namespaces",
-  3: "files",
-  4: "functions",
-  5: "variables",
-  6: "properties",
-  7: "groups",
-  8: "pages"
-};
-
 function convertToId(search)
 {
   var result = '';
@@ -42,11 +9,11 @@ function convertToId(search)
     {
       result+=c;
     }
-    else if (cn<16) 
+    else if (cn<16)
     {
       result+="_0"+cn.toString(16);
     }
-    else 
+    else
     {
       result+="_"+cn.toString(16);
     }
@@ -85,14 +52,14 @@ function getYPos(item)
 /* A class handling everything associated with the search panel.
 
    Parameters:
-   name - The name of the global variable that will be 
+   name - The name of the global variable that will be
           storing this instance.  Is needed to be able to set timeouts.
    resultPath - path to use for external files
 */
 function SearchBox(name, resultsPath, inFrame, label)
 {
   if (!name || !resultsPath) {  alert("Missing parameters to SearchBox."); }
-   
+
   // ---------- Instance variables
   this.name                  = name;
   this.resultsPath           = resultsPath;
@@ -169,7 +136,7 @@ function SearchBox(name, resultsPath, inFrame, label)
     }
 
     // stop selection hide timer
-    if (this.hideTimeout) 
+    if (this.hideTimeout)
     {
       clearTimeout(this.hideTimeout);
       this.hideTimeout=0;
@@ -198,7 +165,7 @@ function SearchBox(name, resultsPath, inFrame, label)
       if (e.shiftKey==1)
       {
         this.OnSearchSelectShow();
-        var win=this.DOMSearchSelectWindow(); 
+        var win=this.DOMSearchSelectWindow();
         for (i=0;i<win.childNodes.length;i++)
         {
           var child = win.childNodes[i]; // get span within a
@@ -249,7 +216,7 @@ function SearchBox(name, resultsPath, inFrame, label)
   this.SelectItemCount = function(id)
   {
     var count=0;
-    var win=this.DOMSearchSelectWindow(); 
+    var win=this.DOMSearchSelectWindow();
     for (i=0;i<win.childNodes.length;i++)
     {
       var child = win.childNodes[i]; // get span within a
@@ -264,7 +231,7 @@ function SearchBox(name, resultsPath, inFrame, label)
   this.SelectItemSet = function(id)
   {
     var i,j=0;
-    var win=this.DOMSearchSelectWindow(); 
+    var win=this.DOMSearchSelectWindow();
     for (i=0;i<win.childNodes.length;i++)
     {
       var child = win.childNodes[i]; // get span within a
@@ -368,7 +335,7 @@ function SearchBox(name, resultsPath, inFrame, label)
        hasResultsPage = false;
     }
 
-    window.frames.MSearchResults.location = resultsPageWithSearch;  
+    window.frames.MSearchResults.location = resultsPageWithSearch;
     var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow();
 
     if (domPopupSearchResultsWindow.style.display!='block')
@@ -402,12 +369,12 @@ function SearchBox(name, resultsPath, inFrame, label)
 
   // -------- Activation Functions
 
-  // Activates or deactivates the search panel, resetting things to 
-  // their default values if necessary. 
+  // Activates or deactivates the search panel, resetting things to
+  // their default values if necessary.
   this.Activate = function(isActive)
   {
     if (isActive || // open it
-        this.DOMPopupSearchResultsWindow().style.display == 'block' 
+        this.DOMPopupSearchResultsWindow().style.display == 'block'
        )
     {
       this.DOMSearchBox().className = 'MSearchBoxActive';
@@ -415,8 +382,8 @@ function SearchBox(name, resultsPath, inFrame, label)
       var searchField = this.DOMSearchField();
 
       if (searchField.value == this.searchLabel) // clear "Search" term upon entry
-      {  
-        searchField.value = '';  
+      {
+        searchField.value = '';
         this.searchActive = true;
       }
     }
@@ -455,12 +422,12 @@ function SearchResults(name)
         }
 
         if (element.nodeName == 'DIV' && element.hasChildNodes())
-        {  
-           element = element.firstChild;  
+        {
+           element = element.firstChild;
         }
         else if (element.nextSibling)
-        {  
-           element = element.nextSibling;  
+        {
+           element = element.nextSibling;
         }
         else
         {
@@ -471,8 +438,8 @@ function SearchResults(name)
           while (element && element!=parentElement && !element.nextSibling);
 
           if (element && element!=parentElement)
-          {  
-            element = element.nextSibling;  
+          {
+            element = element.nextSibling;
           }
         }
       }
@@ -525,7 +492,7 @@ function SearchResults(name)
           var rowMatchName = row.id.toLowerCase();
           rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); // strip 'sr123_'
 
-          if (search.length<=rowMatchName.length && 
+          if (search.length<=rowMatchName.length &&
              rowMatchName.substr(0, search.length)==search)
           {
             row.style.display = 'block';
@@ -596,7 +563,7 @@ function SearchResults(name)
 
     this.ProcessKeys = function(e)
     {
-      if (e.type == "keydown") 
+      if (e.type == "keydown")
       {
         this.repeatOn = false;
         this.lastKey = e.keyCode;
@@ -617,7 +584,7 @@ function SearchResults(name)
       return this.lastKey!=0;
     }
 
-    this.Nav = function(evt,itemIndex) 
+    this.Nav = function(evt,itemIndex)
     {
       var e  = (evt) ? evt : window.event; // for IE
       if (e.keyCode==13) return true;
@@ -631,7 +598,7 @@ function SearchResults(name)
         {
           var child = this.FindChildElement(focusItem.parentNode.parentNode.id);
           if (child && child.style.display == 'block') // children visible
-          { 
+          {
             var n=0;
             var tmpElem;
             while (1) // search for last child
@@ -724,7 +691,7 @@ function SearchResults(name)
         if (elem)
         {
           elem.focus();
-        } 
+        }
       }
       else if (this.lastKey==27) // Escape
       {
@@ -807,3 +774,18 @@ function createResults()
   }
 }
 
+function init_search()
+{
+  var results = document.getElementById("MSearchSelectWindow");
+  for (var key in indexSectionLabels)
+  {
+    var link = document.createElement('a');
+    link.setAttribute('class','SelectItem');
+    link.setAttribute('onclick','searchBox.OnSelectItem('+key+')');
+    link.href='javascript:void(0)';
+    link.innerHTML='<span class="SelectionMark">&#160;</span>'+indexSectionLabels[key];
+    results.appendChild(link);
+  }
+  searchBox.OnSelectItem(0);
+}
+
diff --git a/search/searchdata.js b/search/searchdata.js
new file mode 100644
index 0000000000000000000000000000000000000000..19b7d8179497cba966d227cafc0209fa26542e52
--- /dev/null
+++ b/search/searchdata.js
@@ -0,0 +1,39 @@
+var indexSectionsWithContent =
+{
+  0: "$_abcdefghiknoprstuvw",
+  1: "abdfhiosv",
+  2: "f",
+  3: "bf",
+  4: "_acdefginoprs",
+  5: "$k",
+  6: "df",
+  7: "f",
+  8: "bcfgptuw"
+};
+
+var indexSectionNames =
+{
+  0: "all",
+  1: "classes",
+  2: "namespaces",
+  3: "files",
+  4: "functions",
+  5: "variables",
+  6: "properties",
+  7: "groups",
+  8: "pages"
+};
+
+var indexSectionLabels =
+{
+  0: "All",
+  1: "Classes",
+  2: "Namespaces",
+  3: "Files",
+  4: "Functions",
+  5: "Variables",
+  6: "Properties",
+  7: "Modules",
+  8: "Pages"
+};
+
diff --git a/search/variables_0.html b/search/variables_0.html
index 16be28cf12776fdb4648517a0ef9fddaae144c0e..74ce80724871dc2f9f04151a60a432f8114f9256 100644
--- a/search/variables_0.html
+++ b/search/variables_0.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="variables_0.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/search/variables_1.html b/search/variables_1.html
index 1e306bd8b25c995fa23aab8d663440d0efab0872..84237b6e770e5969d0f8a730b2e4c5ae69d6180d 100644
--- a/search/variables_1.html
+++ b/search/variables_1.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="variables_1.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/search/variables_1.js b/search/variables_1.js
index 7d2e4c1abf0390802b4eabc1db4d4965e8793bc7..7dcdf36b8546871c1eefa49f52858ca010cef1a5 100644
--- a/search/variables_1.js
+++ b/search/variables_1.js
@@ -1,11 +1,4 @@
 var searchData=
 [
-  ['addfloat32',['addFloat32',['../group__flatbuffers__javascript__api.html#ga1c36e9d7e294c61d1d6ab0923ea91e8e',1,'flatbuffers.js']]],
-  ['addfloat64',['addFloat64',['../group__flatbuffers__javascript__api.html#ga53af3baf50f96de783c06a35934d63bf',1,'flatbuffers.js']]],
-  ['addint16',['addInt16',['../group__flatbuffers__javascript__api.html#ga8260b8431cb8b1c32b5997646cb102a9',1,'flatbuffers.js']]],
-  ['addint32',['addInt32',['../group__flatbuffers__javascript__api.html#gaba2edd0e1e53d1c2815bb1a6ee54abf5',1,'flatbuffers.js']]],
-  ['addint64',['addInt64',['../group__flatbuffers__javascript__api.html#ga17a48cc241b10348fd6751ed3a973e2d',1,'flatbuffers.js']]],
-  ['addint8',['addInt8',['../group__flatbuffers__javascript__api.html#ga7963cbb1ae0a8589b183f9b26fb25b45',1,'flatbuffers.js']]],
-  ['addoffset',['addOffset',['../group__flatbuffers__javascript__api.html#ga21ba7dd4c33dafd6abb89568e4d9c8b8',1,'flatbuffers.js']]],
-  ['asuint8array',['asUint8Array',['../group__flatbuffers__javascript__api.html#ga997af48d5c8f757fcb962168d67e33fb',1,'flatbuffers.js']]]
+  ['kfileidentifierlength',['kFileIdentifierLength',['../classflatbuffers_1_1_flat_buffer_builder.html#af8c7583c92e1d1d6f438977da5158d19',1,'flatbuffers::FlatBufferBuilder']]]
 ];
diff --git a/splitbar.png b/splitbar.png
new file mode 100644
index 0000000000000000000000000000000000000000..fe895f2c58179b471a22d8320b39a4bd7312ec8e
Binary files /dev/null and b/splitbar.png differ
diff --git a/structflatbuffers_1_1_flat_buffer_builder_1_1_field_loc-members.html b/structflatbuffers_1_1_flat_buffer_builder_1_1_field_loc-members.html
index 2c505271e149d1b64755cebf18fadd5864157b4f..929ea69724f78324c372c386e6b2cccb6c3b9a3b 100644
--- a/structflatbuffers_1_1_flat_buffer_builder_1_1_field_loc-members.html
+++ b/structflatbuffers_1_1_flat_buffer_builder_1_1_field_loc-members.html
@@ -4,23 +4,21 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <title>FlatBuffers: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
 <link href="navtree.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
 <script type="text/javascript" src="navtree.js"></script>
 <script type="text/javascript">
   $(document).ready(initResizable);
-  $(window).load(resizeHeight);
 </script>
 <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
 <script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
-  $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,500italic,700,700italic|Roboto+Mono:400,700" rel="stylesheet">
 <link href="style.css" rel="stylesheet" type="text/css"/>
@@ -46,53 +44,19 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.7 -->
+<!-- Generated by Doxygen 1.8.13 -->
 <script type="text/javascript">
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </script>
-  <div id="navrow1" class="tabs">
-    <ul class="tablist">
-      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
-      <li><a href="usergroup0.html"><span>Programmer's&#160;Guide</span></a></li>
-      <li><a href="flatbuffers_support.html"><span>Platform&#160;/&#160;Language&#160;/&#160;Feature&#160;support</span></a></li>
-      <li><a href="flatbuffers_benchmarks.html"><span>Benchmarks</span></a></li>
-      <li><a href="flatbuffers_white_paper.html"><span>FlatBuffers&#160;white&#160;paper</span></a></li>
-      <li><a href="flatbuffers_internals.html"><span>FlatBuffers&#160;internals</span></a></li>
-      <li><a href="flatbuffers_grammar.html"><span>Grammar&#160;of&#160;the&#160;schema&#160;language</span></a></li>
-      <li class="current"><a href="usergroup2.html"><span>API&#160;Reference</span></a></li>
-      <li><a href="contributing.html"><span>Contributing</span></a></li>
-      <li>
-        <div id="MSearchBox" class="MSearchBoxInactive">
-        <span class="left">
-          <img id="MSearchSelect" src="search/mag_sel.png"
-               onmouseover="return searchBox.OnSearchSelectShow()"
-               onmouseout="return searchBox.OnSearchSelectHide()"
-               alt=""/>
-          <input type="text" id="MSearchField" value="Search" accesskey="S"
-               onfocus="searchBox.OnSearchFieldFocus(true)" 
-               onblur="searchBox.OnSearchFieldFocus(false)" 
-               onkeyup="searchBox.OnSearchFieldChange(event)"/>
-          </span><span class="right">
-            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
-          </span>
-        </div>
-      </li>
-    </ul>
-  </div>
-  <div id="navrow2" class="tabs2">
-    <ul class="tablist">
-      <li><a href="modules.html"><span>APIs</span></a></li>
-      <li class="current"><a href="annotated.html"><span>Class&#160;List</span></a></li>
-    </ul>
-  </div>
-  <div id="navrow2" class="tabs2">
-    <ul class="tablist">
-      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
-      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
-      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
-      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
-    </ul>
-  </div>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -113,7 +77,7 @@ $(document).ready(function(){initNavTree('structflatbuffers_1_1_flat_buffer_buil
      onmouseover="return searchBox.OnSearchSelectShow()"
      onmouseout="return searchBox.OnSearchSelectHide()"
      onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Properties</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+</div>
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
diff --git a/structflatbuffers_1_1_flat_buffer_builder_1_1_field_loc.html b/structflatbuffers_1_1_flat_buffer_builder_1_1_field_loc.html
index 3f0d75dce7810accd1f6fc81e438779335ba4914..30a9b9c8b75efcb44bc85991f061bdfd81734dd6 100644
--- a/structflatbuffers_1_1_flat_buffer_builder_1_1_field_loc.html
+++ b/structflatbuffers_1_1_flat_buffer_builder_1_1_field_loc.html
@@ -4,23 +4,21 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <title>FlatBuffers: flatbuffers::FlatBufferBuilder::FieldLoc Struct Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
 <link href="navtree.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
 <script type="text/javascript" src="navtree.js"></script>
 <script type="text/javascript">
   $(document).ready(initResizable);
-  $(window).load(resizeHeight);
 </script>
 <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
 <script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
-  $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,500italic,700,700italic|Roboto+Mono:400,700" rel="stylesheet">
 <link href="style.css" rel="stylesheet" type="text/css"/>
@@ -46,53 +44,19 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.7 -->
+<!-- Generated by Doxygen 1.8.13 -->
 <script type="text/javascript">
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </script>
-  <div id="navrow1" class="tabs">
-    <ul class="tablist">
-      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
-      <li><a href="usergroup0.html"><span>Programmer's&#160;Guide</span></a></li>
-      <li><a href="flatbuffers_support.html"><span>Platform&#160;/&#160;Language&#160;/&#160;Feature&#160;support</span></a></li>
-      <li><a href="flatbuffers_benchmarks.html"><span>Benchmarks</span></a></li>
-      <li><a href="flatbuffers_white_paper.html"><span>FlatBuffers&#160;white&#160;paper</span></a></li>
-      <li><a href="flatbuffers_internals.html"><span>FlatBuffers&#160;internals</span></a></li>
-      <li><a href="flatbuffers_grammar.html"><span>Grammar&#160;of&#160;the&#160;schema&#160;language</span></a></li>
-      <li class="current"><a href="usergroup2.html"><span>API&#160;Reference</span></a></li>
-      <li><a href="contributing.html"><span>Contributing</span></a></li>
-      <li>
-        <div id="MSearchBox" class="MSearchBoxInactive">
-        <span class="left">
-          <img id="MSearchSelect" src="search/mag_sel.png"
-               onmouseover="return searchBox.OnSearchSelectShow()"
-               onmouseout="return searchBox.OnSearchSelectHide()"
-               alt=""/>
-          <input type="text" id="MSearchField" value="Search" accesskey="S"
-               onfocus="searchBox.OnSearchFieldFocus(true)" 
-               onblur="searchBox.OnSearchFieldFocus(false)" 
-               onkeyup="searchBox.OnSearchFieldChange(event)"/>
-          </span><span class="right">
-            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
-          </span>
-        </div>
-      </li>
-    </ul>
-  </div>
-  <div id="navrow2" class="tabs2">
-    <ul class="tablist">
-      <li><a href="modules.html"><span>APIs</span></a></li>
-      <li class="current"><a href="annotated.html"><span>Class&#160;List</span></a></li>
-    </ul>
-  </div>
-  <div id="navrow2" class="tabs2">
-    <ul class="tablist">
-      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
-      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
-      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
-      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
-    </ul>
-  </div>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -113,7 +77,7 @@ $(document).ready(function(){initNavTree('structflatbuffers_1_1_flat_buffer_buil
      onmouseover="return searchBox.OnSearchSelectShow()"
      onmouseout="return searchBox.OnSearchSelectHide()"
      onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Properties</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+</div>
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
@@ -133,10 +97,10 @@ $(document).ready(function(){initNavTree('structflatbuffers_1_1_flat_buffer_buil
 <table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
 Public Attributes</h2></td></tr>
-<tr class="memitem:ad46ccd8333f92b41f4e0999554574dde"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad46ccd8333f92b41f4e0999554574dde"></a>
+<tr class="memitem:ad46ccd8333f92b41f4e0999554574dde"><td class="memItemLeft" align="right" valign="top"><a id="ad46ccd8333f92b41f4e0999554574dde"></a>
 voffset_t&#160;</td><td class="memItemRight" valign="bottom"><b>id</b></td></tr>
 <tr class="separator:ad46ccd8333f92b41f4e0999554574dde"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a7b6ea8220d21e6fb72ee5ba0258e01c4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7b6ea8220d21e6fb72ee5ba0258e01c4"></a>
+<tr class="memitem:a7b6ea8220d21e6fb72ee5ba0258e01c4"><td class="memItemLeft" align="right" valign="top"><a id="a7b6ea8220d21e6fb72ee5ba0258e01c4"></a>
 uoffset_t&#160;</td><td class="memItemRight" valign="bottom"><b>off</b></td></tr>
 <tr class="separator:a7b6ea8220d21e6fb72ee5ba0258e01c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
diff --git a/structflatbuffers_1_1_flat_buffer_builder_1_1_string_offset_compare-members.html b/structflatbuffers_1_1_flat_buffer_builder_1_1_string_offset_compare-members.html
index e67f5af658f9a9195055941cbca01fa2d73e4fcb..c0fa5e4f8f3c14f870fad30f69a3a6f25373fbff 100644
--- a/structflatbuffers_1_1_flat_buffer_builder_1_1_string_offset_compare-members.html
+++ b/structflatbuffers_1_1_flat_buffer_builder_1_1_string_offset_compare-members.html
@@ -4,23 +4,21 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <title>FlatBuffers: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
 <link href="navtree.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
 <script type="text/javascript" src="navtree.js"></script>
 <script type="text/javascript">
   $(document).ready(initResizable);
-  $(window).load(resizeHeight);
 </script>
 <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
 <script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
-  $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,500italic,700,700italic|Roboto+Mono:400,700" rel="stylesheet">
 <link href="style.css" rel="stylesheet" type="text/css"/>
@@ -46,53 +44,19 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.7 -->
+<!-- Generated by Doxygen 1.8.13 -->
 <script type="text/javascript">
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </script>
-  <div id="navrow1" class="tabs">
-    <ul class="tablist">
-      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
-      <li><a href="usergroup0.html"><span>Programmer's&#160;Guide</span></a></li>
-      <li><a href="flatbuffers_support.html"><span>Platform&#160;/&#160;Language&#160;/&#160;Feature&#160;support</span></a></li>
-      <li><a href="flatbuffers_benchmarks.html"><span>Benchmarks</span></a></li>
-      <li><a href="flatbuffers_white_paper.html"><span>FlatBuffers&#160;white&#160;paper</span></a></li>
-      <li><a href="flatbuffers_internals.html"><span>FlatBuffers&#160;internals</span></a></li>
-      <li><a href="flatbuffers_grammar.html"><span>Grammar&#160;of&#160;the&#160;schema&#160;language</span></a></li>
-      <li class="current"><a href="usergroup2.html"><span>API&#160;Reference</span></a></li>
-      <li><a href="contributing.html"><span>Contributing</span></a></li>
-      <li>
-        <div id="MSearchBox" class="MSearchBoxInactive">
-        <span class="left">
-          <img id="MSearchSelect" src="search/mag_sel.png"
-               onmouseover="return searchBox.OnSearchSelectShow()"
-               onmouseout="return searchBox.OnSearchSelectHide()"
-               alt=""/>
-          <input type="text" id="MSearchField" value="Search" accesskey="S"
-               onfocus="searchBox.OnSearchFieldFocus(true)" 
-               onblur="searchBox.OnSearchFieldFocus(false)" 
-               onkeyup="searchBox.OnSearchFieldChange(event)"/>
-          </span><span class="right">
-            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
-          </span>
-        </div>
-      </li>
-    </ul>
-  </div>
-  <div id="navrow2" class="tabs2">
-    <ul class="tablist">
-      <li><a href="modules.html"><span>APIs</span></a></li>
-      <li class="current"><a href="annotated.html"><span>Class&#160;List</span></a></li>
-    </ul>
-  </div>
-  <div id="navrow2" class="tabs2">
-    <ul class="tablist">
-      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
-      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
-      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
-      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
-    </ul>
-  </div>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -113,7 +77,7 @@ $(document).ready(function(){initNavTree('structflatbuffers_1_1_flat_buffer_buil
      onmouseover="return searchBox.OnSearchSelectShow()"
      onmouseout="return searchBox.OnSearchSelectHide()"
      onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Properties</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+</div>
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
@@ -131,7 +95,7 @@ $(document).ready(function(){initNavTree('structflatbuffers_1_1_flat_buffer_buil
 <p>This is the complete list of members for <a class="el" href="structflatbuffers_1_1_flat_buffer_builder_1_1_string_offset_compare.html">flatbuffers::FlatBufferBuilder::StringOffsetCompare</a>, including all inherited members.</p>
 <table class="directory">
   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>buf_</b> (defined in <a class="el" href="structflatbuffers_1_1_flat_buffer_builder_1_1_string_offset_compare.html">flatbuffers::FlatBufferBuilder::StringOffsetCompare</a>)</td><td class="entry"><a class="el" href="structflatbuffers_1_1_flat_buffer_builder_1_1_string_offset_compare.html">flatbuffers::FlatBufferBuilder::StringOffsetCompare</a></td><td class="entry"></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>operator()</b>(const Offset&lt; String &gt; &amp;a, const Offset&lt; String &gt; &amp;b) const  (defined in <a class="el" href="structflatbuffers_1_1_flat_buffer_builder_1_1_string_offset_compare.html">flatbuffers::FlatBufferBuilder::StringOffsetCompare</a>)</td><td class="entry"><a class="el" href="structflatbuffers_1_1_flat_buffer_builder_1_1_string_offset_compare.html">flatbuffers::FlatBufferBuilder::StringOffsetCompare</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>operator()</b>(const Offset&lt; String &gt; &amp;a, const Offset&lt; String &gt; &amp;b) const (defined in <a class="el" href="structflatbuffers_1_1_flat_buffer_builder_1_1_string_offset_compare.html">flatbuffers::FlatBufferBuilder::StringOffsetCompare</a>)</td><td class="entry"><a class="el" href="structflatbuffers_1_1_flat_buffer_builder_1_1_string_offset_compare.html">flatbuffers::FlatBufferBuilder::StringOffsetCompare</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>StringOffsetCompare</b>(const vector_downward &amp;buf) (defined in <a class="el" href="structflatbuffers_1_1_flat_buffer_builder_1_1_string_offset_compare.html">flatbuffers::FlatBufferBuilder::StringOffsetCompare</a>)</td><td class="entry"><a class="el" href="structflatbuffers_1_1_flat_buffer_builder_1_1_string_offset_compare.html">flatbuffers::FlatBufferBuilder::StringOffsetCompare</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
 </table></div><!-- contents -->
 </div><!-- doc-content -->
diff --git a/structflatbuffers_1_1_flat_buffer_builder_1_1_string_offset_compare.html b/structflatbuffers_1_1_flat_buffer_builder_1_1_string_offset_compare.html
index f4d754f7a125220018c8ccff7e8b74ea2a469378..ed1b9e0884b95272fccbb42d12a1e5d28440f239 100644
--- a/structflatbuffers_1_1_flat_buffer_builder_1_1_string_offset_compare.html
+++ b/structflatbuffers_1_1_flat_buffer_builder_1_1_string_offset_compare.html
@@ -4,23 +4,21 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <title>FlatBuffers: flatbuffers::FlatBufferBuilder::StringOffsetCompare Struct Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
 <link href="navtree.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
 <script type="text/javascript" src="navtree.js"></script>
 <script type="text/javascript">
   $(document).ready(initResizable);
-  $(window).load(resizeHeight);
 </script>
 <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
 <script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
-  $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,500italic,700,700italic|Roboto+Mono:400,700" rel="stylesheet">
 <link href="style.css" rel="stylesheet" type="text/css"/>
@@ -46,53 +44,19 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.7 -->
+<!-- Generated by Doxygen 1.8.13 -->
 <script type="text/javascript">
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </script>
-  <div id="navrow1" class="tabs">
-    <ul class="tablist">
-      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
-      <li><a href="usergroup0.html"><span>Programmer's&#160;Guide</span></a></li>
-      <li><a href="flatbuffers_support.html"><span>Platform&#160;/&#160;Language&#160;/&#160;Feature&#160;support</span></a></li>
-      <li><a href="flatbuffers_benchmarks.html"><span>Benchmarks</span></a></li>
-      <li><a href="flatbuffers_white_paper.html"><span>FlatBuffers&#160;white&#160;paper</span></a></li>
-      <li><a href="flatbuffers_internals.html"><span>FlatBuffers&#160;internals</span></a></li>
-      <li><a href="flatbuffers_grammar.html"><span>Grammar&#160;of&#160;the&#160;schema&#160;language</span></a></li>
-      <li class="current"><a href="usergroup2.html"><span>API&#160;Reference</span></a></li>
-      <li><a href="contributing.html"><span>Contributing</span></a></li>
-      <li>
-        <div id="MSearchBox" class="MSearchBoxInactive">
-        <span class="left">
-          <img id="MSearchSelect" src="search/mag_sel.png"
-               onmouseover="return searchBox.OnSearchSelectShow()"
-               onmouseout="return searchBox.OnSearchSelectHide()"
-               alt=""/>
-          <input type="text" id="MSearchField" value="Search" accesskey="S"
-               onfocus="searchBox.OnSearchFieldFocus(true)" 
-               onblur="searchBox.OnSearchFieldFocus(false)" 
-               onkeyup="searchBox.OnSearchFieldChange(event)"/>
-          </span><span class="right">
-            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
-          </span>
-        </div>
-      </li>
-    </ul>
-  </div>
-  <div id="navrow2" class="tabs2">
-    <ul class="tablist">
-      <li><a href="modules.html"><span>APIs</span></a></li>
-      <li class="current"><a href="annotated.html"><span>Class&#160;List</span></a></li>
-    </ul>
-  </div>
-  <div id="navrow2" class="tabs2">
-    <ul class="tablist">
-      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
-      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
-      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
-      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
-    </ul>
-  </div>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -113,7 +77,7 @@ $(document).ready(function(){initNavTree('structflatbuffers_1_1_flat_buffer_buil
      onmouseover="return searchBox.OnSearchSelectShow()"
      onmouseout="return searchBox.OnSearchSelectHide()"
      onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Properties</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+</div>
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
@@ -134,16 +98,16 @@ $(document).ready(function(){initNavTree('structflatbuffers_1_1_flat_buffer_buil
 <table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
 Public Member Functions</h2></td></tr>
-<tr class="memitem:a615f77ed71ea836aa9dc42d0b8722389"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a615f77ed71ea836aa9dc42d0b8722389"></a>
-bool&#160;</td><td class="memItemRight" valign="bottom"><b>operator()</b> (const <a class="el" href="structflatbuffers_1_1_offset.html">Offset</a>&lt; <a class="el" href="structflatbuffers_1_1_string.html">String</a> &gt; &amp;a, const <a class="el" href="structflatbuffers_1_1_offset.html">Offset</a>&lt; <a class="el" href="structflatbuffers_1_1_string.html">String</a> &gt; &amp;b) const </td></tr>
-<tr class="separator:a615f77ed71ea836aa9dc42d0b8722389"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a014debbfd9bde2a99f960a2123e54d33"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a014debbfd9bde2a99f960a2123e54d33"></a>
+<tr class="memitem:a7aa28a410c7eb4c1154702af8b773080"><td class="memItemLeft" align="right" valign="top"><a id="a7aa28a410c7eb4c1154702af8b773080"></a>
+bool&#160;</td><td class="memItemRight" valign="bottom"><b>operator()</b> (const <a class="el" href="structflatbuffers_1_1_offset.html">Offset</a>&lt; <a class="el" href="structflatbuffers_1_1_string.html">String</a> &gt; &amp;a, const <a class="el" href="structflatbuffers_1_1_offset.html">Offset</a>&lt; <a class="el" href="structflatbuffers_1_1_string.html">String</a> &gt; &amp;b) const</td></tr>
+<tr class="separator:a7aa28a410c7eb4c1154702af8b773080"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a014debbfd9bde2a99f960a2123e54d33"><td class="memItemLeft" align="right" valign="top"><a id="a014debbfd9bde2a99f960a2123e54d33"></a>
 &#160;</td><td class="memItemRight" valign="bottom"><b>StringOffsetCompare</b> (const <a class="el" href="classflatbuffers_1_1vector__downward.html">vector_downward</a> &amp;buf)</td></tr>
 <tr class="separator:a014debbfd9bde2a99f960a2123e54d33"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
 Public Attributes</h2></td></tr>
-<tr class="memitem:ada9a5bf2a061d414f73b1c176168877b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ada9a5bf2a061d414f73b1c176168877b"></a>
+<tr class="memitem:ada9a5bf2a061d414f73b1c176168877b"><td class="memItemLeft" align="right" valign="top"><a id="ada9a5bf2a061d414f73b1c176168877b"></a>
 const <a class="el" href="classflatbuffers_1_1vector__downward.html">vector_downward</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>buf_</b></td></tr>
 <tr class="separator:ada9a5bf2a061d414f73b1c176168877b"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
diff --git a/structflatbuffers_1_1_flat_buffer_builder_1_1_string_offset_compare.js b/structflatbuffers_1_1_flat_buffer_builder_1_1_string_offset_compare.js
index effe5b8fdec09ddca81b63426027bd0de650e40a..394745178c4deefc15aaa5eac76276c0b51750f8 100644
--- a/structflatbuffers_1_1_flat_buffer_builder_1_1_string_offset_compare.js
+++ b/structflatbuffers_1_1_flat_buffer_builder_1_1_string_offset_compare.js
@@ -1,6 +1,6 @@
 var structflatbuffers_1_1_flat_buffer_builder_1_1_string_offset_compare =
 [
     [ "StringOffsetCompare", "structflatbuffers_1_1_flat_buffer_builder_1_1_string_offset_compare.html#a014debbfd9bde2a99f960a2123e54d33", null ],
-    [ "operator()", "structflatbuffers_1_1_flat_buffer_builder_1_1_string_offset_compare.html#a615f77ed71ea836aa9dc42d0b8722389", null ],
+    [ "operator()", "structflatbuffers_1_1_flat_buffer_builder_1_1_string_offset_compare.html#a7aa28a410c7eb4c1154702af8b773080", null ],
     [ "buf_", "structflatbuffers_1_1_flat_buffer_builder_1_1_string_offset_compare.html#ada9a5bf2a061d414f73b1c176168877b", null ]
 ];
\ No newline at end of file
diff --git a/structflatbuffers_1_1_indirect_helper-members.html b/structflatbuffers_1_1_indirect_helper-members.html
index 0d0411b5c36d8fc478fdb4180e2009fe60a354f6..1492f18fe2380c65d59f7e3720708aed277b0c05 100644
--- a/structflatbuffers_1_1_indirect_helper-members.html
+++ b/structflatbuffers_1_1_indirect_helper-members.html
@@ -4,23 +4,21 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <title>FlatBuffers: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
 <link href="navtree.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
 <script type="text/javascript" src="navtree.js"></script>
 <script type="text/javascript">
   $(document).ready(initResizable);
-  $(window).load(resizeHeight);
 </script>
 <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
 <script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
-  $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,500italic,700,700italic|Roboto+Mono:400,700" rel="stylesheet">
 <link href="style.css" rel="stylesheet" type="text/css"/>
@@ -46,53 +44,19 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.7 -->
+<!-- Generated by Doxygen 1.8.13 -->
 <script type="text/javascript">
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </script>
-  <div id="navrow1" class="tabs">
-    <ul class="tablist">
-      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
-      <li><a href="usergroup0.html"><span>Programmer's&#160;Guide</span></a></li>
-      <li><a href="flatbuffers_support.html"><span>Platform&#160;/&#160;Language&#160;/&#160;Feature&#160;support</span></a></li>
-      <li><a href="flatbuffers_benchmarks.html"><span>Benchmarks</span></a></li>
-      <li><a href="flatbuffers_white_paper.html"><span>FlatBuffers&#160;white&#160;paper</span></a></li>
-      <li><a href="flatbuffers_internals.html"><span>FlatBuffers&#160;internals</span></a></li>
-      <li><a href="flatbuffers_grammar.html"><span>Grammar&#160;of&#160;the&#160;schema&#160;language</span></a></li>
-      <li class="current"><a href="usergroup2.html"><span>API&#160;Reference</span></a></li>
-      <li><a href="contributing.html"><span>Contributing</span></a></li>
-      <li>
-        <div id="MSearchBox" class="MSearchBoxInactive">
-        <span class="left">
-          <img id="MSearchSelect" src="search/mag_sel.png"
-               onmouseover="return searchBox.OnSearchSelectShow()"
-               onmouseout="return searchBox.OnSearchSelectHide()"
-               alt=""/>
-          <input type="text" id="MSearchField" value="Search" accesskey="S"
-               onfocus="searchBox.OnSearchFieldFocus(true)" 
-               onblur="searchBox.OnSearchFieldFocus(false)" 
-               onkeyup="searchBox.OnSearchFieldChange(event)"/>
-          </span><span class="right">
-            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
-          </span>
-        </div>
-      </li>
-    </ul>
-  </div>
-  <div id="navrow2" class="tabs2">
-    <ul class="tablist">
-      <li><a href="modules.html"><span>APIs</span></a></li>
-      <li class="current"><a href="annotated.html"><span>Class&#160;List</span></a></li>
-    </ul>
-  </div>
-  <div id="navrow2" class="tabs2">
-    <ul class="tablist">
-      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
-      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
-      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
-      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
-    </ul>
-  </div>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -113,7 +77,7 @@ $(document).ready(function(){initNavTree('structflatbuffers_1_1_indirect_helper.
      onmouseover="return searchBox.OnSearchSelectShow()"
      onmouseout="return searchBox.OnSearchSelectHide()"
      onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Properties</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+</div>
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
diff --git a/structflatbuffers_1_1_indirect_helper.html b/structflatbuffers_1_1_indirect_helper.html
index 3b37c789f6b550552124a4211fe98e30affc2e24..4e54499154cd58337e407778c8f06c38a92dbcfd 100644
--- a/structflatbuffers_1_1_indirect_helper.html
+++ b/structflatbuffers_1_1_indirect_helper.html
@@ -4,23 +4,21 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <title>FlatBuffers: flatbuffers::IndirectHelper&lt; T &gt; Struct Template Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
 <link href="navtree.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
 <script type="text/javascript" src="navtree.js"></script>
 <script type="text/javascript">
   $(document).ready(initResizable);
-  $(window).load(resizeHeight);
 </script>
 <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
 <script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
-  $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,500italic,700,700italic|Roboto+Mono:400,700" rel="stylesheet">
 <link href="style.css" rel="stylesheet" type="text/css"/>
@@ -46,53 +44,19 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.7 -->
+<!-- Generated by Doxygen 1.8.13 -->
 <script type="text/javascript">
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </script>
-  <div id="navrow1" class="tabs">
-    <ul class="tablist">
-      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
-      <li><a href="usergroup0.html"><span>Programmer's&#160;Guide</span></a></li>
-      <li><a href="flatbuffers_support.html"><span>Platform&#160;/&#160;Language&#160;/&#160;Feature&#160;support</span></a></li>
-      <li><a href="flatbuffers_benchmarks.html"><span>Benchmarks</span></a></li>
-      <li><a href="flatbuffers_white_paper.html"><span>FlatBuffers&#160;white&#160;paper</span></a></li>
-      <li><a href="flatbuffers_internals.html"><span>FlatBuffers&#160;internals</span></a></li>
-      <li><a href="flatbuffers_grammar.html"><span>Grammar&#160;of&#160;the&#160;schema&#160;language</span></a></li>
-      <li class="current"><a href="usergroup2.html"><span>API&#160;Reference</span></a></li>
-      <li><a href="contributing.html"><span>Contributing</span></a></li>
-      <li>
-        <div id="MSearchBox" class="MSearchBoxInactive">
-        <span class="left">
-          <img id="MSearchSelect" src="search/mag_sel.png"
-               onmouseover="return searchBox.OnSearchSelectShow()"
-               onmouseout="return searchBox.OnSearchSelectHide()"
-               alt=""/>
-          <input type="text" id="MSearchField" value="Search" accesskey="S"
-               onfocus="searchBox.OnSearchFieldFocus(true)" 
-               onblur="searchBox.OnSearchFieldFocus(false)" 
-               onkeyup="searchBox.OnSearchFieldChange(event)"/>
-          </span><span class="right">
-            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
-          </span>
-        </div>
-      </li>
-    </ul>
-  </div>
-  <div id="navrow2" class="tabs2">
-    <ul class="tablist">
-      <li><a href="modules.html"><span>APIs</span></a></li>
-      <li class="current"><a href="annotated.html"><span>Class&#160;List</span></a></li>
-    </ul>
-  </div>
-  <div id="navrow2" class="tabs2">
-    <ul class="tablist">
-      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
-      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
-      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
-      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
-    </ul>
-  </div>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -113,7 +77,7 @@ $(document).ready(function(){initNavTree('structflatbuffers_1_1_indirect_helper.
      onmouseover="return searchBox.OnSearchSelectShow()"
      onmouseout="return searchBox.OnSearchSelectHide()"
      onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Properties</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+</div>
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
@@ -135,22 +99,22 @@ $(document).ready(function(){initNavTree('structflatbuffers_1_1_indirect_helper.
 <table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
 Public Types</h2></td></tr>
-<tr class="memitem:a22f780c354a407364894991bfbdf84f6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a22f780c354a407364894991bfbdf84f6"></a>
+<tr class="memitem:a22f780c354a407364894991bfbdf84f6"><td class="memItemLeft" align="right" valign="top"><a id="a22f780c354a407364894991bfbdf84f6"></a>
 typedef T&#160;</td><td class="memItemRight" valign="bottom"><b>mutable_return_type</b></td></tr>
 <tr class="separator:a22f780c354a407364894991bfbdf84f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:af257f8e8aacb6ff0d5dcfc8dd053f3c4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af257f8e8aacb6ff0d5dcfc8dd053f3c4"></a>
+<tr class="memitem:af257f8e8aacb6ff0d5dcfc8dd053f3c4"><td class="memItemLeft" align="right" valign="top"><a id="af257f8e8aacb6ff0d5dcfc8dd053f3c4"></a>
 typedef T&#160;</td><td class="memItemRight" valign="bottom"><b>return_type</b></td></tr>
 <tr class="separator:af257f8e8aacb6ff0d5dcfc8dd053f3c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
 Static Public Member Functions</h2></td></tr>
-<tr class="memitem:af64c70657c1e44cb522c2fd02ec26f7d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af64c70657c1e44cb522c2fd02ec26f7d"></a>
+<tr class="memitem:af64c70657c1e44cb522c2fd02ec26f7d"><td class="memItemLeft" align="right" valign="top"><a id="af64c70657c1e44cb522c2fd02ec26f7d"></a>
 static return_type&#160;</td><td class="memItemRight" valign="bottom"><b>Read</b> (const uint8_t *p, uoffset_t i)</td></tr>
 <tr class="separator:af64c70657c1e44cb522c2fd02ec26f7d"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-attribs"></a>
 Static Public Attributes</h2></td></tr>
-<tr class="memitem:a1361c89f203e090c49ece38ad98b9f3a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1361c89f203e090c49ece38ad98b9f3a"></a>
+<tr class="memitem:a1361c89f203e090c49ece38ad98b9f3a"><td class="memItemLeft" align="right" valign="top"><a id="a1361c89f203e090c49ece38ad98b9f3a"></a>
 static const size_t&#160;</td><td class="memItemRight" valign="bottom"><b>element_stride</b> = sizeof(T)</td></tr>
 <tr class="separator:a1361c89f203e090c49ece38ad98b9f3a"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
diff --git a/structflatbuffers_1_1_indirect_helper_3_01_offset_3_01_t_01_4_01_4-members.html b/structflatbuffers_1_1_indirect_helper_3_01_offset_3_01_t_01_4_01_4-members.html
index e9c8cc5bc589a6b871b345f1249afda2426cdda2..d5c57ff78087ca59ce1b07a6d3a1e793e208d152 100644
--- a/structflatbuffers_1_1_indirect_helper_3_01_offset_3_01_t_01_4_01_4-members.html
+++ b/structflatbuffers_1_1_indirect_helper_3_01_offset_3_01_t_01_4_01_4-members.html
@@ -4,23 +4,21 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <title>FlatBuffers: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
 <link href="navtree.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
 <script type="text/javascript" src="navtree.js"></script>
 <script type="text/javascript">
   $(document).ready(initResizable);
-  $(window).load(resizeHeight);
 </script>
 <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
 <script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
-  $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,500italic,700,700italic|Roboto+Mono:400,700" rel="stylesheet">
 <link href="style.css" rel="stylesheet" type="text/css"/>
@@ -46,53 +44,19 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.7 -->
+<!-- Generated by Doxygen 1.8.13 -->
 <script type="text/javascript">
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </script>
-  <div id="navrow1" class="tabs">
-    <ul class="tablist">
-      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
-      <li><a href="usergroup0.html"><span>Programmer's&#160;Guide</span></a></li>
-      <li><a href="flatbuffers_support.html"><span>Platform&#160;/&#160;Language&#160;/&#160;Feature&#160;support</span></a></li>
-      <li><a href="flatbuffers_benchmarks.html"><span>Benchmarks</span></a></li>
-      <li><a href="flatbuffers_white_paper.html"><span>FlatBuffers&#160;white&#160;paper</span></a></li>
-      <li><a href="flatbuffers_internals.html"><span>FlatBuffers&#160;internals</span></a></li>
-      <li><a href="flatbuffers_grammar.html"><span>Grammar&#160;of&#160;the&#160;schema&#160;language</span></a></li>
-      <li class="current"><a href="usergroup2.html"><span>API&#160;Reference</span></a></li>
-      <li><a href="contributing.html"><span>Contributing</span></a></li>
-      <li>
-        <div id="MSearchBox" class="MSearchBoxInactive">
-        <span class="left">
-          <img id="MSearchSelect" src="search/mag_sel.png"
-               onmouseover="return searchBox.OnSearchSelectShow()"
-               onmouseout="return searchBox.OnSearchSelectHide()"
-               alt=""/>
-          <input type="text" id="MSearchField" value="Search" accesskey="S"
-               onfocus="searchBox.OnSearchFieldFocus(true)" 
-               onblur="searchBox.OnSearchFieldFocus(false)" 
-               onkeyup="searchBox.OnSearchFieldChange(event)"/>
-          </span><span class="right">
-            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
-          </span>
-        </div>
-      </li>
-    </ul>
-  </div>
-  <div id="navrow2" class="tabs2">
-    <ul class="tablist">
-      <li><a href="modules.html"><span>APIs</span></a></li>
-      <li class="current"><a href="annotated.html"><span>Class&#160;List</span></a></li>
-    </ul>
-  </div>
-  <div id="navrow2" class="tabs2">
-    <ul class="tablist">
-      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
-      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
-      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
-      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
-    </ul>
-  </div>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -113,7 +77,7 @@ $(document).ready(function(){initNavTree('structflatbuffers_1_1_indirect_helper_
      onmouseover="return searchBox.OnSearchSelectShow()"
      onmouseout="return searchBox.OnSearchSelectHide()"
      onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Properties</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+</div>
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
diff --git a/structflatbuffers_1_1_indirect_helper_3_01_offset_3_01_t_01_4_01_4.html b/structflatbuffers_1_1_indirect_helper_3_01_offset_3_01_t_01_4_01_4.html
index 2b5c42b2585d06d2a61f3d8012800d805081139b..a01731bafaf647c7c961cb67bbc7255f03539247 100644
--- a/structflatbuffers_1_1_indirect_helper_3_01_offset_3_01_t_01_4_01_4.html
+++ b/structflatbuffers_1_1_indirect_helper_3_01_offset_3_01_t_01_4_01_4.html
@@ -4,23 +4,21 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <title>FlatBuffers: flatbuffers::IndirectHelper&lt; Offset&lt; T &gt; &gt; Struct Template Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
 <link href="navtree.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
 <script type="text/javascript" src="navtree.js"></script>
 <script type="text/javascript">
   $(document).ready(initResizable);
-  $(window).load(resizeHeight);
 </script>
 <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
 <script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
-  $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,500italic,700,700italic|Roboto+Mono:400,700" rel="stylesheet">
 <link href="style.css" rel="stylesheet" type="text/css"/>
@@ -46,53 +44,19 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.7 -->
+<!-- Generated by Doxygen 1.8.13 -->
 <script type="text/javascript">
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </script>
-  <div id="navrow1" class="tabs">
-    <ul class="tablist">
-      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
-      <li><a href="usergroup0.html"><span>Programmer's&#160;Guide</span></a></li>
-      <li><a href="flatbuffers_support.html"><span>Platform&#160;/&#160;Language&#160;/&#160;Feature&#160;support</span></a></li>
-      <li><a href="flatbuffers_benchmarks.html"><span>Benchmarks</span></a></li>
-      <li><a href="flatbuffers_white_paper.html"><span>FlatBuffers&#160;white&#160;paper</span></a></li>
-      <li><a href="flatbuffers_internals.html"><span>FlatBuffers&#160;internals</span></a></li>
-      <li><a href="flatbuffers_grammar.html"><span>Grammar&#160;of&#160;the&#160;schema&#160;language</span></a></li>
-      <li class="current"><a href="usergroup2.html"><span>API&#160;Reference</span></a></li>
-      <li><a href="contributing.html"><span>Contributing</span></a></li>
-      <li>
-        <div id="MSearchBox" class="MSearchBoxInactive">
-        <span class="left">
-          <img id="MSearchSelect" src="search/mag_sel.png"
-               onmouseover="return searchBox.OnSearchSelectShow()"
-               onmouseout="return searchBox.OnSearchSelectHide()"
-               alt=""/>
-          <input type="text" id="MSearchField" value="Search" accesskey="S"
-               onfocus="searchBox.OnSearchFieldFocus(true)" 
-               onblur="searchBox.OnSearchFieldFocus(false)" 
-               onkeyup="searchBox.OnSearchFieldChange(event)"/>
-          </span><span class="right">
-            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
-          </span>
-        </div>
-      </li>
-    </ul>
-  </div>
-  <div id="navrow2" class="tabs2">
-    <ul class="tablist">
-      <li><a href="modules.html"><span>APIs</span></a></li>
-      <li class="current"><a href="annotated.html"><span>Class&#160;List</span></a></li>
-    </ul>
-  </div>
-  <div id="navrow2" class="tabs2">
-    <ul class="tablist">
-      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
-      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
-      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
-      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
-    </ul>
-  </div>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -113,7 +77,7 @@ $(document).ready(function(){initNavTree('structflatbuffers_1_1_indirect_helper_
      onmouseover="return searchBox.OnSearchSelectShow()"
      onmouseout="return searchBox.OnSearchSelectHide()"
      onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Properties</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+</div>
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
@@ -135,22 +99,22 @@ $(document).ready(function(){initNavTree('structflatbuffers_1_1_indirect_helper_
 <table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
 Public Types</h2></td></tr>
-<tr class="memitem:a5991f7a862ffc1225bded0902901ca23"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5991f7a862ffc1225bded0902901ca23"></a>
+<tr class="memitem:a5991f7a862ffc1225bded0902901ca23"><td class="memItemLeft" align="right" valign="top"><a id="a5991f7a862ffc1225bded0902901ca23"></a>
 typedef T *&#160;</td><td class="memItemRight" valign="bottom"><b>mutable_return_type</b></td></tr>
 <tr class="separator:a5991f7a862ffc1225bded0902901ca23"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a3ce92eecc47213b4d808785a38add468"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3ce92eecc47213b4d808785a38add468"></a>
+<tr class="memitem:a3ce92eecc47213b4d808785a38add468"><td class="memItemLeft" align="right" valign="top"><a id="a3ce92eecc47213b4d808785a38add468"></a>
 typedef const T *&#160;</td><td class="memItemRight" valign="bottom"><b>return_type</b></td></tr>
 <tr class="separator:a3ce92eecc47213b4d808785a38add468"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
 Static Public Member Functions</h2></td></tr>
-<tr class="memitem:a1d9e2e9f072cb81e208b8c915312b13f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1d9e2e9f072cb81e208b8c915312b13f"></a>
+<tr class="memitem:a1d9e2e9f072cb81e208b8c915312b13f"><td class="memItemLeft" align="right" valign="top"><a id="a1d9e2e9f072cb81e208b8c915312b13f"></a>
 static return_type&#160;</td><td class="memItemRight" valign="bottom"><b>Read</b> (const uint8_t *p, uoffset_t i)</td></tr>
 <tr class="separator:a1d9e2e9f072cb81e208b8c915312b13f"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-attribs"></a>
 Static Public Attributes</h2></td></tr>
-<tr class="memitem:a52133230f5d057783065fc09d5f00897"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a52133230f5d057783065fc09d5f00897"></a>
+<tr class="memitem:a52133230f5d057783065fc09d5f00897"><td class="memItemLeft" align="right" valign="top"><a id="a52133230f5d057783065fc09d5f00897"></a>
 static const size_t&#160;</td><td class="memItemRight" valign="bottom"><b>element_stride</b> = sizeof(uoffset_t)</td></tr>
 <tr class="separator:a52133230f5d057783065fc09d5f00897"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
diff --git a/structflatbuffers_1_1_indirect_helper_3_01const_01_t_01_5_01_4-members.html b/structflatbuffers_1_1_indirect_helper_3_01const_01_t_01_5_01_4-members.html
index 7cee2891fb5e2047753c84e69193c776e0bdf3f2..23e103f8444ecc5378f4ecb929883312f5b5da09 100644
--- a/structflatbuffers_1_1_indirect_helper_3_01const_01_t_01_5_01_4-members.html
+++ b/structflatbuffers_1_1_indirect_helper_3_01const_01_t_01_5_01_4-members.html
@@ -4,23 +4,21 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <title>FlatBuffers: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
 <link href="navtree.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
 <script type="text/javascript" src="navtree.js"></script>
 <script type="text/javascript">
   $(document).ready(initResizable);
-  $(window).load(resizeHeight);
 </script>
 <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
 <script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
-  $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,500italic,700,700italic|Roboto+Mono:400,700" rel="stylesheet">
 <link href="style.css" rel="stylesheet" type="text/css"/>
@@ -46,53 +44,19 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.7 -->
+<!-- Generated by Doxygen 1.8.13 -->
 <script type="text/javascript">
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </script>
-  <div id="navrow1" class="tabs">
-    <ul class="tablist">
-      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
-      <li><a href="usergroup0.html"><span>Programmer's&#160;Guide</span></a></li>
-      <li><a href="flatbuffers_support.html"><span>Platform&#160;/&#160;Language&#160;/&#160;Feature&#160;support</span></a></li>
-      <li><a href="flatbuffers_benchmarks.html"><span>Benchmarks</span></a></li>
-      <li><a href="flatbuffers_white_paper.html"><span>FlatBuffers&#160;white&#160;paper</span></a></li>
-      <li><a href="flatbuffers_internals.html"><span>FlatBuffers&#160;internals</span></a></li>
-      <li><a href="flatbuffers_grammar.html"><span>Grammar&#160;of&#160;the&#160;schema&#160;language</span></a></li>
-      <li class="current"><a href="usergroup2.html"><span>API&#160;Reference</span></a></li>
-      <li><a href="contributing.html"><span>Contributing</span></a></li>
-      <li>
-        <div id="MSearchBox" class="MSearchBoxInactive">
-        <span class="left">
-          <img id="MSearchSelect" src="search/mag_sel.png"
-               onmouseover="return searchBox.OnSearchSelectShow()"
-               onmouseout="return searchBox.OnSearchSelectHide()"
-               alt=""/>
-          <input type="text" id="MSearchField" value="Search" accesskey="S"
-               onfocus="searchBox.OnSearchFieldFocus(true)" 
-               onblur="searchBox.OnSearchFieldFocus(false)" 
-               onkeyup="searchBox.OnSearchFieldChange(event)"/>
-          </span><span class="right">
-            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
-          </span>
-        </div>
-      </li>
-    </ul>
-  </div>
-  <div id="navrow2" class="tabs2">
-    <ul class="tablist">
-      <li><a href="modules.html"><span>APIs</span></a></li>
-      <li class="current"><a href="annotated.html"><span>Class&#160;List</span></a></li>
-    </ul>
-  </div>
-  <div id="navrow2" class="tabs2">
-    <ul class="tablist">
-      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
-      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
-      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
-      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
-    </ul>
-  </div>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -113,7 +77,7 @@ $(document).ready(function(){initNavTree('structflatbuffers_1_1_indirect_helper_
      onmouseover="return searchBox.OnSearchSelectShow()"
      onmouseout="return searchBox.OnSearchSelectHide()"
      onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Properties</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+</div>
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
diff --git a/structflatbuffers_1_1_indirect_helper_3_01const_01_t_01_5_01_4.html b/structflatbuffers_1_1_indirect_helper_3_01const_01_t_01_5_01_4.html
index a3a2664ccdef57772b89c2173e13ed9bff3673d1..730fe2b91f735a0645baa8f183db99ab56af0612 100644
--- a/structflatbuffers_1_1_indirect_helper_3_01const_01_t_01_5_01_4.html
+++ b/structflatbuffers_1_1_indirect_helper_3_01const_01_t_01_5_01_4.html
@@ -4,23 +4,21 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <title>FlatBuffers: flatbuffers::IndirectHelper&lt; const T * &gt; Struct Template Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
 <link href="navtree.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
 <script type="text/javascript" src="navtree.js"></script>
 <script type="text/javascript">
   $(document).ready(initResizable);
-  $(window).load(resizeHeight);
 </script>
 <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
 <script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
-  $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,500italic,700,700italic|Roboto+Mono:400,700" rel="stylesheet">
 <link href="style.css" rel="stylesheet" type="text/css"/>
@@ -46,53 +44,19 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.7 -->
+<!-- Generated by Doxygen 1.8.13 -->
 <script type="text/javascript">
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </script>
-  <div id="navrow1" class="tabs">
-    <ul class="tablist">
-      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
-      <li><a href="usergroup0.html"><span>Programmer's&#160;Guide</span></a></li>
-      <li><a href="flatbuffers_support.html"><span>Platform&#160;/&#160;Language&#160;/&#160;Feature&#160;support</span></a></li>
-      <li><a href="flatbuffers_benchmarks.html"><span>Benchmarks</span></a></li>
-      <li><a href="flatbuffers_white_paper.html"><span>FlatBuffers&#160;white&#160;paper</span></a></li>
-      <li><a href="flatbuffers_internals.html"><span>FlatBuffers&#160;internals</span></a></li>
-      <li><a href="flatbuffers_grammar.html"><span>Grammar&#160;of&#160;the&#160;schema&#160;language</span></a></li>
-      <li class="current"><a href="usergroup2.html"><span>API&#160;Reference</span></a></li>
-      <li><a href="contributing.html"><span>Contributing</span></a></li>
-      <li>
-        <div id="MSearchBox" class="MSearchBoxInactive">
-        <span class="left">
-          <img id="MSearchSelect" src="search/mag_sel.png"
-               onmouseover="return searchBox.OnSearchSelectShow()"
-               onmouseout="return searchBox.OnSearchSelectHide()"
-               alt=""/>
-          <input type="text" id="MSearchField" value="Search" accesskey="S"
-               onfocus="searchBox.OnSearchFieldFocus(true)" 
-               onblur="searchBox.OnSearchFieldFocus(false)" 
-               onkeyup="searchBox.OnSearchFieldChange(event)"/>
-          </span><span class="right">
-            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
-          </span>
-        </div>
-      </li>
-    </ul>
-  </div>
-  <div id="navrow2" class="tabs2">
-    <ul class="tablist">
-      <li><a href="modules.html"><span>APIs</span></a></li>
-      <li class="current"><a href="annotated.html"><span>Class&#160;List</span></a></li>
-    </ul>
-  </div>
-  <div id="navrow2" class="tabs2">
-    <ul class="tablist">
-      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
-      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
-      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
-      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
-    </ul>
-  </div>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -113,7 +77,7 @@ $(document).ready(function(){initNavTree('structflatbuffers_1_1_indirect_helper_
      onmouseover="return searchBox.OnSearchSelectShow()"
      onmouseout="return searchBox.OnSearchSelectHide()"
      onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Properties</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+</div>
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
@@ -135,22 +99,22 @@ $(document).ready(function(){initNavTree('structflatbuffers_1_1_indirect_helper_
 <table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
 Public Types</h2></td></tr>
-<tr class="memitem:ab5e80d3e49909bc37c1d0f11b7fe9200"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab5e80d3e49909bc37c1d0f11b7fe9200"></a>
+<tr class="memitem:ab5e80d3e49909bc37c1d0f11b7fe9200"><td class="memItemLeft" align="right" valign="top"><a id="ab5e80d3e49909bc37c1d0f11b7fe9200"></a>
 typedef T *&#160;</td><td class="memItemRight" valign="bottom"><b>mutable_return_type</b></td></tr>
 <tr class="separator:ab5e80d3e49909bc37c1d0f11b7fe9200"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a7f2c3b157027d28bcbfb620791029fe6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7f2c3b157027d28bcbfb620791029fe6"></a>
+<tr class="memitem:a7f2c3b157027d28bcbfb620791029fe6"><td class="memItemLeft" align="right" valign="top"><a id="a7f2c3b157027d28bcbfb620791029fe6"></a>
 typedef const T *&#160;</td><td class="memItemRight" valign="bottom"><b>return_type</b></td></tr>
 <tr class="separator:a7f2c3b157027d28bcbfb620791029fe6"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
 Static Public Member Functions</h2></td></tr>
-<tr class="memitem:af05256f82faaed8f706105194245aec5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af05256f82faaed8f706105194245aec5"></a>
+<tr class="memitem:af05256f82faaed8f706105194245aec5"><td class="memItemLeft" align="right" valign="top"><a id="af05256f82faaed8f706105194245aec5"></a>
 static return_type&#160;</td><td class="memItemRight" valign="bottom"><b>Read</b> (const uint8_t *p, uoffset_t i)</td></tr>
 <tr class="separator:af05256f82faaed8f706105194245aec5"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-attribs"></a>
 Static Public Attributes</h2></td></tr>
-<tr class="memitem:a863380eaf59f7dd4df758d560613627b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a863380eaf59f7dd4df758d560613627b"></a>
+<tr class="memitem:a863380eaf59f7dd4df758d560613627b"><td class="memItemLeft" align="right" valign="top"><a id="a863380eaf59f7dd4df758d560613627b"></a>
 static const size_t&#160;</td><td class="memItemRight" valign="bottom"><b>element_stride</b> = sizeof(T)</td></tr>
 <tr class="separator:a863380eaf59f7dd4df758d560613627b"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
diff --git a/structflatbuffers_1_1_offset-members.html b/structflatbuffers_1_1_offset-members.html
index 0befe2174f26494129bab5a2ef44e28c7d78fe8f..e04c43129b485d5895b590a6ebd2a87de29c700d 100644
--- a/structflatbuffers_1_1_offset-members.html
+++ b/structflatbuffers_1_1_offset-members.html
@@ -4,23 +4,21 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <title>FlatBuffers: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
 <link href="navtree.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
 <script type="text/javascript" src="navtree.js"></script>
 <script type="text/javascript">
   $(document).ready(initResizable);
-  $(window).load(resizeHeight);
 </script>
 <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
 <script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
-  $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,500italic,700,700italic|Roboto+Mono:400,700" rel="stylesheet">
 <link href="style.css" rel="stylesheet" type="text/css"/>
@@ -46,53 +44,19 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.7 -->
+<!-- Generated by Doxygen 1.8.13 -->
 <script type="text/javascript">
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </script>
-  <div id="navrow1" class="tabs">
-    <ul class="tablist">
-      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
-      <li><a href="usergroup0.html"><span>Programmer's&#160;Guide</span></a></li>
-      <li><a href="flatbuffers_support.html"><span>Platform&#160;/&#160;Language&#160;/&#160;Feature&#160;support</span></a></li>
-      <li><a href="flatbuffers_benchmarks.html"><span>Benchmarks</span></a></li>
-      <li><a href="flatbuffers_white_paper.html"><span>FlatBuffers&#160;white&#160;paper</span></a></li>
-      <li><a href="flatbuffers_internals.html"><span>FlatBuffers&#160;internals</span></a></li>
-      <li><a href="flatbuffers_grammar.html"><span>Grammar&#160;of&#160;the&#160;schema&#160;language</span></a></li>
-      <li class="current"><a href="usergroup2.html"><span>API&#160;Reference</span></a></li>
-      <li><a href="contributing.html"><span>Contributing</span></a></li>
-      <li>
-        <div id="MSearchBox" class="MSearchBoxInactive">
-        <span class="left">
-          <img id="MSearchSelect" src="search/mag_sel.png"
-               onmouseover="return searchBox.OnSearchSelectShow()"
-               onmouseout="return searchBox.OnSearchSelectHide()"
-               alt=""/>
-          <input type="text" id="MSearchField" value="Search" accesskey="S"
-               onfocus="searchBox.OnSearchFieldFocus(true)" 
-               onblur="searchBox.OnSearchFieldFocus(false)" 
-               onkeyup="searchBox.OnSearchFieldChange(event)"/>
-          </span><span class="right">
-            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
-          </span>
-        </div>
-      </li>
-    </ul>
-  </div>
-  <div id="navrow2" class="tabs2">
-    <ul class="tablist">
-      <li><a href="modules.html"><span>APIs</span></a></li>
-      <li class="current"><a href="annotated.html"><span>Class&#160;List</span></a></li>
-    </ul>
-  </div>
-  <div id="navrow2" class="tabs2">
-    <ul class="tablist">
-      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
-      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
-      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
-      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
-    </ul>
-  </div>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -113,7 +77,7 @@ $(document).ready(function(){initNavTree('structflatbuffers_1_1_offset.html','')
      onmouseover="return searchBox.OnSearchSelectShow()"
      onmouseout="return searchBox.OnSearchSelectHide()"
      onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Properties</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+</div>
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
@@ -130,11 +94,11 @@ $(document).ready(function(){initNavTree('structflatbuffers_1_1_offset.html','')
 
 <p>This is the complete list of members for <a class="el" href="structflatbuffers_1_1_offset.html">flatbuffers::Offset&lt; T &gt;</a>, including all inherited members.</p>
 <table class="directory">
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>IsNull</b>() const  (defined in <a class="el" href="structflatbuffers_1_1_offset.html">flatbuffers::Offset&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="structflatbuffers_1_1_offset.html">flatbuffers::Offset&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>IsNull</b>() const (defined in <a class="el" href="structflatbuffers_1_1_offset.html">flatbuffers::Offset&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="structflatbuffers_1_1_offset.html">flatbuffers::Offset&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr bgcolor="#f0f0f0"><td class="entry"><b>o</b> (defined in <a class="el" href="structflatbuffers_1_1_offset.html">flatbuffers::Offset&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="structflatbuffers_1_1_offset.html">flatbuffers::Offset&lt; T &gt;</a></td><td class="entry"></td></tr>
   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Offset</b>() (defined in <a class="el" href="structflatbuffers_1_1_offset.html">flatbuffers::Offset&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="structflatbuffers_1_1_offset.html">flatbuffers::Offset&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr bgcolor="#f0f0f0"><td class="entry"><b>Offset</b>(uoffset_t _o) (defined in <a class="el" href="structflatbuffers_1_1_offset.html">flatbuffers::Offset&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="structflatbuffers_1_1_offset.html">flatbuffers::Offset&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Union</b>() const  (defined in <a class="el" href="structflatbuffers_1_1_offset.html">flatbuffers::Offset&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="structflatbuffers_1_1_offset.html">flatbuffers::Offset&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Union</b>() const (defined in <a class="el" href="structflatbuffers_1_1_offset.html">flatbuffers::Offset&lt; T &gt;</a>)</td><td class="entry"><a class="el" href="structflatbuffers_1_1_offset.html">flatbuffers::Offset&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
 </table></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- Google Analytics -->
diff --git a/structflatbuffers_1_1_offset.html b/structflatbuffers_1_1_offset.html
index c619835764653556feb1ce5af9fc84bdb08f7c95..1d70a9a845409225368462af98ecbbd0dcdda44c 100644
--- a/structflatbuffers_1_1_offset.html
+++ b/structflatbuffers_1_1_offset.html
@@ -4,23 +4,21 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <title>FlatBuffers: flatbuffers::Offset&lt; T &gt; Struct Template Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
 <link href="navtree.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
 <script type="text/javascript" src="navtree.js"></script>
 <script type="text/javascript">
   $(document).ready(initResizable);
-  $(window).load(resizeHeight);
 </script>
 <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
 <script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
-  $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,500italic,700,700italic|Roboto+Mono:400,700" rel="stylesheet">
 <link href="style.css" rel="stylesheet" type="text/css"/>
@@ -46,53 +44,19 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.7 -->
+<!-- Generated by Doxygen 1.8.13 -->
 <script type="text/javascript">
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </script>
-  <div id="navrow1" class="tabs">
-    <ul class="tablist">
-      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
-      <li><a href="usergroup0.html"><span>Programmer's&#160;Guide</span></a></li>
-      <li><a href="flatbuffers_support.html"><span>Platform&#160;/&#160;Language&#160;/&#160;Feature&#160;support</span></a></li>
-      <li><a href="flatbuffers_benchmarks.html"><span>Benchmarks</span></a></li>
-      <li><a href="flatbuffers_white_paper.html"><span>FlatBuffers&#160;white&#160;paper</span></a></li>
-      <li><a href="flatbuffers_internals.html"><span>FlatBuffers&#160;internals</span></a></li>
-      <li><a href="flatbuffers_grammar.html"><span>Grammar&#160;of&#160;the&#160;schema&#160;language</span></a></li>
-      <li class="current"><a href="usergroup2.html"><span>API&#160;Reference</span></a></li>
-      <li><a href="contributing.html"><span>Contributing</span></a></li>
-      <li>
-        <div id="MSearchBox" class="MSearchBoxInactive">
-        <span class="left">
-          <img id="MSearchSelect" src="search/mag_sel.png"
-               onmouseover="return searchBox.OnSearchSelectShow()"
-               onmouseout="return searchBox.OnSearchSelectHide()"
-               alt=""/>
-          <input type="text" id="MSearchField" value="Search" accesskey="S"
-               onfocus="searchBox.OnSearchFieldFocus(true)" 
-               onblur="searchBox.OnSearchFieldFocus(false)" 
-               onkeyup="searchBox.OnSearchFieldChange(event)"/>
-          </span><span class="right">
-            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
-          </span>
-        </div>
-      </li>
-    </ul>
-  </div>
-  <div id="navrow2" class="tabs2">
-    <ul class="tablist">
-      <li><a href="modules.html"><span>APIs</span></a></li>
-      <li class="current"><a href="annotated.html"><span>Class&#160;List</span></a></li>
-    </ul>
-  </div>
-  <div id="navrow2" class="tabs2">
-    <ul class="tablist">
-      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
-      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
-      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
-      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
-    </ul>
-  </div>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -113,7 +77,7 @@ $(document).ready(function(){initNavTree('structflatbuffers_1_1_offset.html','')
      onmouseover="return searchBox.OnSearchSelectShow()"
      onmouseout="return searchBox.OnSearchSelectHide()"
      onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Properties</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+</div>
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
@@ -134,19 +98,19 @@ $(document).ready(function(){initNavTree('structflatbuffers_1_1_offset.html','')
 <table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
 Public Member Functions</h2></td></tr>
-<tr class="memitem:a1e7e8a81eae90ce9ac45da57268331fc"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1e7e8a81eae90ce9ac45da57268331fc"></a>
-bool&#160;</td><td class="memItemRight" valign="bottom"><b>IsNull</b> () const </td></tr>
-<tr class="separator:a1e7e8a81eae90ce9ac45da57268331fc"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a67d328892dd0d940950e8128d6bf795b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a67d328892dd0d940950e8128d6bf795b"></a>
+<tr class="memitem:a9aa246b9a824a15c79883f64d162ed3a"><td class="memItemLeft" align="right" valign="top"><a id="a9aa246b9a824a15c79883f64d162ed3a"></a>
+bool&#160;</td><td class="memItemRight" valign="bottom"><b>IsNull</b> () const</td></tr>
+<tr class="separator:a9aa246b9a824a15c79883f64d162ed3a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a67d328892dd0d940950e8128d6bf795b"><td class="memItemLeft" align="right" valign="top"><a id="a67d328892dd0d940950e8128d6bf795b"></a>
 &#160;</td><td class="memItemRight" valign="bottom"><b>Offset</b> (uoffset_t _o)</td></tr>
 <tr class="separator:a67d328892dd0d940950e8128d6bf795b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aef6b640637a58c4a1715346977cd892f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aef6b640637a58c4a1715346977cd892f"></a>
-<a class="el" href="structflatbuffers_1_1_offset.html">Offset</a>&lt; void &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>Union</b> () const </td></tr>
-<tr class="separator:aef6b640637a58c4a1715346977cd892f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acb3e46d417d2c3ee804763bf2eae2109"><td class="memItemLeft" align="right" valign="top"><a id="acb3e46d417d2c3ee804763bf2eae2109"></a>
+<a class="el" href="structflatbuffers_1_1_offset.html">Offset</a>&lt; void &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>Union</b> () const</td></tr>
+<tr class="separator:acb3e46d417d2c3ee804763bf2eae2109"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
 Public Attributes</h2></td></tr>
-<tr class="memitem:a69571197b0da57e6484ef8191ac205a7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a69571197b0da57e6484ef8191ac205a7"></a>
+<tr class="memitem:a69571197b0da57e6484ef8191ac205a7"><td class="memItemLeft" align="right" valign="top"><a id="a69571197b0da57e6484ef8191ac205a7"></a>
 uoffset_t&#160;</td><td class="memItemRight" valign="bottom"><b>o</b></td></tr>
 <tr class="separator:a69571197b0da57e6484ef8191ac205a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
diff --git a/structflatbuffers_1_1_offset.js b/structflatbuffers_1_1_offset.js
index 31ad4eea5b6e9464c6934d56c2c965c70d834e40..bc65d0ceac16d684c1da95e2bd8226eb237dc9c4 100644
--- a/structflatbuffers_1_1_offset.js
+++ b/structflatbuffers_1_1_offset.js
@@ -2,7 +2,7 @@ var structflatbuffers_1_1_offset =
 [
     [ "Offset", "structflatbuffers_1_1_offset.html#a7f8a5b6f29f1edbaad7ed5a850f9f0f7", null ],
     [ "Offset", "structflatbuffers_1_1_offset.html#a67d328892dd0d940950e8128d6bf795b", null ],
-    [ "IsNull", "structflatbuffers_1_1_offset.html#a1e7e8a81eae90ce9ac45da57268331fc", null ],
-    [ "Union", "structflatbuffers_1_1_offset.html#aef6b640637a58c4a1715346977cd892f", null ],
+    [ "IsNull", "structflatbuffers_1_1_offset.html#a9aa246b9a824a15c79883f64d162ed3a", null ],
+    [ "Union", "structflatbuffers_1_1_offset.html#acb3e46d417d2c3ee804763bf2eae2109", null ],
     [ "o", "structflatbuffers_1_1_offset.html#a69571197b0da57e6484ef8191ac205a7", null ]
 ];
\ No newline at end of file
diff --git a/structflatbuffers_1_1_string-members.html b/structflatbuffers_1_1_string-members.html
index 915bc124a1357639ba6a7af545ab46bcf8659097..6f10822b559f3dcba82f5f0182329944a7a08b07 100644
--- a/structflatbuffers_1_1_string-members.html
+++ b/structflatbuffers_1_1_string-members.html
@@ -4,23 +4,21 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <title>FlatBuffers: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
 <link href="navtree.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
 <script type="text/javascript" src="navtree.js"></script>
 <script type="text/javascript">
   $(document).ready(initResizable);
-  $(window).load(resizeHeight);
 </script>
 <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
 <script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
-  $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,500italic,700,700italic|Roboto+Mono:400,700" rel="stylesheet">
 <link href="style.css" rel="stylesheet" type="text/css"/>
@@ -46,53 +44,19 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.7 -->
+<!-- Generated by Doxygen 1.8.13 -->
 <script type="text/javascript">
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </script>
-  <div id="navrow1" class="tabs">
-    <ul class="tablist">
-      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
-      <li><a href="usergroup0.html"><span>Programmer's&#160;Guide</span></a></li>
-      <li><a href="flatbuffers_support.html"><span>Platform&#160;/&#160;Language&#160;/&#160;Feature&#160;support</span></a></li>
-      <li><a href="flatbuffers_benchmarks.html"><span>Benchmarks</span></a></li>
-      <li><a href="flatbuffers_white_paper.html"><span>FlatBuffers&#160;white&#160;paper</span></a></li>
-      <li><a href="flatbuffers_internals.html"><span>FlatBuffers&#160;internals</span></a></li>
-      <li><a href="flatbuffers_grammar.html"><span>Grammar&#160;of&#160;the&#160;schema&#160;language</span></a></li>
-      <li class="current"><a href="usergroup2.html"><span>API&#160;Reference</span></a></li>
-      <li><a href="contributing.html"><span>Contributing</span></a></li>
-      <li>
-        <div id="MSearchBox" class="MSearchBoxInactive">
-        <span class="left">
-          <img id="MSearchSelect" src="search/mag_sel.png"
-               onmouseover="return searchBox.OnSearchSelectShow()"
-               onmouseout="return searchBox.OnSearchSelectHide()"
-               alt=""/>
-          <input type="text" id="MSearchField" value="Search" accesskey="S"
-               onfocus="searchBox.OnSearchFieldFocus(true)" 
-               onblur="searchBox.OnSearchFieldFocus(false)" 
-               onkeyup="searchBox.OnSearchFieldChange(event)"/>
-          </span><span class="right">
-            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
-          </span>
-        </div>
-      </li>
-    </ul>
-  </div>
-  <div id="navrow2" class="tabs2">
-    <ul class="tablist">
-      <li><a href="modules.html"><span>APIs</span></a></li>
-      <li class="current"><a href="annotated.html"><span>Class&#160;List</span></a></li>
-    </ul>
-  </div>
-  <div id="navrow2" class="tabs2">
-    <ul class="tablist">
-      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
-      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
-      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
-      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
-    </ul>
-  </div>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -113,7 +77,7 @@ $(document).ready(function(){initNavTree('structflatbuffers_1_1_string.html','')
      onmouseover="return searchBox.OnSearchSelectShow()"
      onmouseout="return searchBox.OnSearchSelectHide()"
      onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Properties</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+</div>
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
@@ -132,7 +96,7 @@ $(document).ready(function(){initNavTree('structflatbuffers_1_1_string.html','')
 <table class="directory">
   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>begin</b>() (defined in <a class="el" href="classflatbuffers_1_1_vector.html">flatbuffers::Vector&lt; char &gt;</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_vector.html">flatbuffers::Vector&lt; char &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr bgcolor="#f0f0f0"><td class="entry"><b>begin</b>() const (defined in <a class="el" href="classflatbuffers_1_1_vector.html">flatbuffers::Vector&lt; char &gt;</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_vector.html">flatbuffers::Vector&lt; char &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>c_str</b>() const  (defined in <a class="el" href="structflatbuffers_1_1_string.html">flatbuffers::String</a>)</td><td class="entry"><a class="el" href="structflatbuffers_1_1_string.html">flatbuffers::String</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>c_str</b>() const (defined in <a class="el" href="structflatbuffers_1_1_string.html">flatbuffers::String</a>)</td><td class="entry"><a class="el" href="structflatbuffers_1_1_string.html">flatbuffers::String</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr bgcolor="#f0f0f0"><td class="entry"><b>const_iterator</b> typedef (defined in <a class="el" href="classflatbuffers_1_1_vector.html">flatbuffers::Vector&lt; char &gt;</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_vector.html">flatbuffers::Vector&lt; char &gt;</a></td><td class="entry"></td></tr>
   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Data</b>() const (defined in <a class="el" href="classflatbuffers_1_1_vector.html">flatbuffers::Vector&lt; char &gt;</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_vector.html">flatbuffers::Vector&lt; char &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr bgcolor="#f0f0f0"><td class="entry"><b>Data</b>() (defined in <a class="el" href="classflatbuffers_1_1_vector.html">flatbuffers::Vector&lt; char &gt;</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_vector.html">flatbuffers::Vector&lt; char &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
@@ -153,11 +117,11 @@ $(document).ready(function(){initNavTree('structflatbuffers_1_1_string.html','')
   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>mutable_return_type</b> typedef (defined in <a class="el" href="classflatbuffers_1_1_vector.html">flatbuffers::Vector&lt; char &gt;</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_vector.html">flatbuffers::Vector&lt; char &gt;</a></td><td class="entry"></td></tr>
   <tr bgcolor="#f0f0f0"><td class="entry"><b>Mutate</b>(uoffset_t i, const char &amp;val) (defined in <a class="el" href="classflatbuffers_1_1_vector.html">flatbuffers::Vector&lt; char &gt;</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_vector.html">flatbuffers::Vector&lt; char &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>MutateOffset</b>(uoffset_t i, const uint8_t *val) (defined in <a class="el" href="classflatbuffers_1_1_vector.html">flatbuffers::Vector&lt; char &gt;</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_vector.html">flatbuffers::Vector&lt; char &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>operator&lt;</b>(const String &amp;o) const  (defined in <a class="el" href="structflatbuffers_1_1_string.html">flatbuffers::String</a>)</td><td class="entry"><a class="el" href="structflatbuffers_1_1_string.html">flatbuffers::String</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>operator&lt;</b>(const String &amp;o) const (defined in <a class="el" href="structflatbuffers_1_1_string.html">flatbuffers::String</a>)</td><td class="entry"><a class="el" href="structflatbuffers_1_1_string.html">flatbuffers::String</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>operator[]</b>(uoffset_t i) const (defined in <a class="el" href="classflatbuffers_1_1_vector.html">flatbuffers::Vector&lt; char &gt;</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_vector.html">flatbuffers::Vector&lt; char &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr bgcolor="#f0f0f0"><td class="entry"><b>return_type</b> typedef (defined in <a class="el" href="classflatbuffers_1_1_vector.html">flatbuffers::Vector&lt; char &gt;</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_vector.html">flatbuffers::Vector&lt; char &gt;</a></td><td class="entry"></td></tr>
   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>size</b>() const (defined in <a class="el" href="classflatbuffers_1_1_vector.html">flatbuffers::Vector&lt; char &gt;</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_vector.html">flatbuffers::Vector&lt; char &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>str</b>() const  (defined in <a class="el" href="structflatbuffers_1_1_string.html">flatbuffers::String</a>)</td><td class="entry"><a class="el" href="structflatbuffers_1_1_string.html">flatbuffers::String</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>str</b>() const (defined in <a class="el" href="structflatbuffers_1_1_string.html">flatbuffers::String</a>)</td><td class="entry"><a class="el" href="structflatbuffers_1_1_string.html">flatbuffers::String</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Vector</b>() (defined in <a class="el" href="classflatbuffers_1_1_vector.html">flatbuffers::Vector&lt; char &gt;</a>)</td><td class="entry"><a class="el" href="classflatbuffers_1_1_vector.html">flatbuffers::Vector&lt; char &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
 </table></div><!-- contents -->
 </div><!-- doc-content -->
diff --git a/structflatbuffers_1_1_string.html b/structflatbuffers_1_1_string.html
index 5f1e800cbbdf3778cd2d020d2c930a82204e016c..af4eefd0b87a8218781e4279f775076fd767ce1f 100644
--- a/structflatbuffers_1_1_string.html
+++ b/structflatbuffers_1_1_string.html
@@ -4,23 +4,21 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <title>FlatBuffers: flatbuffers::String Struct Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
 <link href="navtree.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
 <script type="text/javascript" src="navtree.js"></script>
 <script type="text/javascript">
   $(document).ready(initResizable);
-  $(window).load(resizeHeight);
 </script>
 <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
 <script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
-  $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,500italic,700,700italic|Roboto+Mono:400,700" rel="stylesheet">
 <link href="style.css" rel="stylesheet" type="text/css"/>
@@ -46,53 +44,19 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.7 -->
+<!-- Generated by Doxygen 1.8.13 -->
 <script type="text/javascript">
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </script>
-  <div id="navrow1" class="tabs">
-    <ul class="tablist">
-      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
-      <li><a href="usergroup0.html"><span>Programmer's&#160;Guide</span></a></li>
-      <li><a href="flatbuffers_support.html"><span>Platform&#160;/&#160;Language&#160;/&#160;Feature&#160;support</span></a></li>
-      <li><a href="flatbuffers_benchmarks.html"><span>Benchmarks</span></a></li>
-      <li><a href="flatbuffers_white_paper.html"><span>FlatBuffers&#160;white&#160;paper</span></a></li>
-      <li><a href="flatbuffers_internals.html"><span>FlatBuffers&#160;internals</span></a></li>
-      <li><a href="flatbuffers_grammar.html"><span>Grammar&#160;of&#160;the&#160;schema&#160;language</span></a></li>
-      <li class="current"><a href="usergroup2.html"><span>API&#160;Reference</span></a></li>
-      <li><a href="contributing.html"><span>Contributing</span></a></li>
-      <li>
-        <div id="MSearchBox" class="MSearchBoxInactive">
-        <span class="left">
-          <img id="MSearchSelect" src="search/mag_sel.png"
-               onmouseover="return searchBox.OnSearchSelectShow()"
-               onmouseout="return searchBox.OnSearchSelectHide()"
-               alt=""/>
-          <input type="text" id="MSearchField" value="Search" accesskey="S"
-               onfocus="searchBox.OnSearchFieldFocus(true)" 
-               onblur="searchBox.OnSearchFieldFocus(false)" 
-               onkeyup="searchBox.OnSearchFieldChange(event)"/>
-          </span><span class="right">
-            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
-          </span>
-        </div>
-      </li>
-    </ul>
-  </div>
-  <div id="navrow2" class="tabs2">
-    <ul class="tablist">
-      <li><a href="modules.html"><span>APIs</span></a></li>
-      <li class="current"><a href="annotated.html"><span>Class&#160;List</span></a></li>
-    </ul>
-  </div>
-  <div id="navrow2" class="tabs2">
-    <ul class="tablist">
-      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
-      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
-      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
-      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
-    </ul>
-  </div>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -113,7 +77,7 @@ $(document).ready(function(){initNavTree('structflatbuffers_1_1_string.html','')
      onmouseover="return searchBox.OnSearchSelectShow()"
      onmouseout="return searchBox.OnSearchSelectHide()"
      onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Properties</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+</div>
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
@@ -142,100 +106,94 @@ Inheritance diagram for flatbuffers::String:</div>
 <table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
 Public Member Functions</h2></td></tr>
-<tr class="memitem:a859788ba800f24c7c99310c38eb7e195"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a859788ba800f24c7c99310c38eb7e195"></a>
-const char *&#160;</td><td class="memItemRight" valign="bottom"><b>c_str</b> () const </td></tr>
-<tr class="separator:a859788ba800f24c7c99310c38eb7e195"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a533b1aa0d76e4afa7b3b02992621ff6a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a533b1aa0d76e4afa7b3b02992621ff6a"></a>
-bool&#160;</td><td class="memItemRight" valign="bottom"><b>operator&lt;</b> (const <a class="el" href="structflatbuffers_1_1_string.html">String</a> &amp;o) const </td></tr>
-<tr class="separator:a533b1aa0d76e4afa7b3b02992621ff6a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a4690a7167b39c091f03320e17e751c88"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4690a7167b39c091f03320e17e751c88"></a>
-std::string&#160;</td><td class="memItemRight" valign="bottom"><b>str</b> () const </td></tr>
-<tr class="separator:a4690a7167b39c091f03320e17e751c88"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4d0c586883282e5b93ddbb02f3d71eef"><td class="memItemLeft" align="right" valign="top"><a id="a4d0c586883282e5b93ddbb02f3d71eef"></a>
+const char *&#160;</td><td class="memItemRight" valign="bottom"><b>c_str</b> () const</td></tr>
+<tr class="separator:a4d0c586883282e5b93ddbb02f3d71eef"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1028f4733cff070adae7d57bf4325726"><td class="memItemLeft" align="right" valign="top"><a id="a1028f4733cff070adae7d57bf4325726"></a>
+bool&#160;</td><td class="memItemRight" valign="bottom"><b>operator&lt;</b> (const <a class="el" href="structflatbuffers_1_1_string.html">String</a> &amp;o) const</td></tr>
+<tr class="separator:a1028f4733cff070adae7d57bf4325726"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4c49c553dfec1da5a6fd8852a97d508e"><td class="memItemLeft" align="right" valign="top"><a id="a4c49c553dfec1da5a6fd8852a97d508e"></a>
+std::string&#160;</td><td class="memItemRight" valign="bottom"><b>str</b> () const</td></tr>
+<tr class="separator:a4c49c553dfec1da5a6fd8852a97d508e"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="inherit_header pub_methods_classflatbuffers_1_1_vector"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classflatbuffers_1_1_vector')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classflatbuffers_1_1_vector.html">flatbuffers::Vector&lt; char &gt;</a></td></tr>
-<tr class="memitem:ac1ab40cdffad6cd50c222fe42c51437b inherit pub_methods_classflatbuffers_1_1_vector"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac1ab40cdffad6cd50c222fe42c51437b"></a>
+<tr class="memitem:ac1ab40cdffad6cd50c222fe42c51437b inherit pub_methods_classflatbuffers_1_1_vector"><td class="memItemLeft" align="right" valign="top"><a id="ac1ab40cdffad6cd50c222fe42c51437b"></a>
 <a class="el" href="structflatbuffers_1_1_vector_iterator.html">iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><b>begin</b> ()</td></tr>
 <tr class="separator:ac1ab40cdffad6cd50c222fe42c51437b inherit pub_methods_classflatbuffers_1_1_vector"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a248da154992320d3ebf75cba205628eb inherit pub_methods_classflatbuffers_1_1_vector"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a248da154992320d3ebf75cba205628eb"></a>
+<tr class="memitem:ac4633f563a5a52980ff0b56fa683a4de inherit pub_methods_classflatbuffers_1_1_vector"><td class="memItemLeft" align="right" valign="top"><a id="ac4633f563a5a52980ff0b56fa683a4de"></a>
 <a class="el" href="structflatbuffers_1_1_vector_iterator.html">const_iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><b>begin</b> () const</td></tr>
-<tr class="separator:a248da154992320d3ebf75cba205628eb inherit pub_methods_classflatbuffers_1_1_vector"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a3a78e000a9301e5310adc014c36137cd inherit pub_methods_classflatbuffers_1_1_vector"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3a78e000a9301e5310adc014c36137cd"></a>
+<tr class="separator:ac4633f563a5a52980ff0b56fa683a4de inherit pub_methods_classflatbuffers_1_1_vector"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa754e17cb08c36fb8442784c6bc442da inherit pub_methods_classflatbuffers_1_1_vector"><td class="memItemLeft" align="right" valign="top"><a id="aa754e17cb08c36fb8442784c6bc442da"></a>
 const uint8_t *&#160;</td><td class="memItemRight" valign="bottom"><b>Data</b> () const</td></tr>
-<tr class="separator:a3a78e000a9301e5310adc014c36137cd inherit pub_methods_classflatbuffers_1_1_vector"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a0ab8113b331fb069dbaa0a108f6077e1 inherit pub_methods_classflatbuffers_1_1_vector"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0ab8113b331fb069dbaa0a108f6077e1"></a>
+<tr class="separator:aa754e17cb08c36fb8442784c6bc442da inherit pub_methods_classflatbuffers_1_1_vector"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0ab8113b331fb069dbaa0a108f6077e1 inherit pub_methods_classflatbuffers_1_1_vector"><td class="memItemLeft" align="right" valign="top"><a id="a0ab8113b331fb069dbaa0a108f6077e1"></a>
 uint8_t *&#160;</td><td class="memItemRight" valign="bottom"><b>Data</b> ()</td></tr>
 <tr class="separator:a0ab8113b331fb069dbaa0a108f6077e1 inherit pub_methods_classflatbuffers_1_1_vector"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a417d1d01e6d7580042aa6bd5eb35fadd inherit pub_methods_classflatbuffers_1_1_vector"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a417d1d01e6d7580042aa6bd5eb35fadd"></a>
+<tr class="memitem:ae8e4163ff0781720c5ddb3a6f625d435 inherit pub_methods_classflatbuffers_1_1_vector"><td class="memItemLeft" align="right" valign="top"><a id="ae8e4163ff0781720c5ddb3a6f625d435"></a>
 const char *&#160;</td><td class="memItemRight" valign="bottom"><b>data</b> () const</td></tr>
-<tr class="separator:a417d1d01e6d7580042aa6bd5eb35fadd inherit pub_methods_classflatbuffers_1_1_vector"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a874b185e7dec18bb24b1f0ee42afb7cb inherit pub_methods_classflatbuffers_1_1_vector"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a874b185e7dec18bb24b1f0ee42afb7cb"></a>
+<tr class="separator:ae8e4163ff0781720c5ddb3a6f625d435 inherit pub_methods_classflatbuffers_1_1_vector"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a874b185e7dec18bb24b1f0ee42afb7cb inherit pub_methods_classflatbuffers_1_1_vector"><td class="memItemLeft" align="right" valign="top"><a id="a874b185e7dec18bb24b1f0ee42afb7cb"></a>
 char *&#160;</td><td class="memItemRight" valign="bottom"><b>data</b> ()</td></tr>
 <tr class="separator:a874b185e7dec18bb24b1f0ee42afb7cb inherit pub_methods_classflatbuffers_1_1_vector"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a53e9c0cb1d27e4bd355034dbd43f0127 inherit pub_methods_classflatbuffers_1_1_vector"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a53e9c0cb1d27e4bd355034dbd43f0127"></a>
+<tr class="memitem:a53e9c0cb1d27e4bd355034dbd43f0127 inherit pub_methods_classflatbuffers_1_1_vector"><td class="memItemLeft" align="right" valign="top"><a id="a53e9c0cb1d27e4bd355034dbd43f0127"></a>
 <a class="el" href="structflatbuffers_1_1_vector_iterator.html">iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><b>end</b> ()</td></tr>
 <tr class="separator:a53e9c0cb1d27e4bd355034dbd43f0127 inherit pub_methods_classflatbuffers_1_1_vector"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:afb74addfd0fd7ae205c02ebf33d25ea2 inherit pub_methods_classflatbuffers_1_1_vector"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="afb74addfd0fd7ae205c02ebf33d25ea2"></a>
+<tr class="memitem:a9fcfb2e218f49d6d66a8b4a22aa58755 inherit pub_methods_classflatbuffers_1_1_vector"><td class="memItemLeft" align="right" valign="top"><a id="a9fcfb2e218f49d6d66a8b4a22aa58755"></a>
 <a class="el" href="structflatbuffers_1_1_vector_iterator.html">const_iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><b>end</b> () const</td></tr>
-<tr class="separator:afb74addfd0fd7ae205c02ebf33d25ea2 inherit pub_methods_classflatbuffers_1_1_vector"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a06d6b1b963b1d738d74afb1cd7ed973c inherit pub_methods_classflatbuffers_1_1_vector"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a06d6b1b963b1d738d74afb1cd7ed973c"></a>
+<tr class="separator:a9fcfb2e218f49d6d66a8b4a22aa58755 inherit pub_methods_classflatbuffers_1_1_vector"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0c322798bd0cebd2d20b0b0f92de2f9b inherit pub_methods_classflatbuffers_1_1_vector"><td class="memItemLeft" align="right" valign="top"><a id="a0c322798bd0cebd2d20b0b0f92de2f9b"></a>
 return_type&#160;</td><td class="memItemRight" valign="bottom"><b>Get</b> (uoffset_t i) const</td></tr>
-<tr class="separator:a06d6b1b963b1d738d74afb1cd7ed973c inherit pub_methods_classflatbuffers_1_1_vector"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a4155ce66380a2cb863e005164ce8ec33 inherit pub_methods_classflatbuffers_1_1_vector"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4155ce66380a2cb863e005164ce8ec33"></a>
+<tr class="separator:a0c322798bd0cebd2d20b0b0f92de2f9b inherit pub_methods_classflatbuffers_1_1_vector"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a36bbc83839910913cb0dd0699b1cccf7 inherit pub_methods_classflatbuffers_1_1_vector"><td class="memItemLeft" align="right" valign="top"><a id="a36bbc83839910913cb0dd0699b1cccf7"></a>
 const U *&#160;</td><td class="memItemRight" valign="bottom"><b>GetAs</b> (uoffset_t i) const</td></tr>
-<tr class="separator:a4155ce66380a2cb863e005164ce8ec33 inherit pub_methods_classflatbuffers_1_1_vector"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a92d04847cc257e3ec9c75b7514988f13 inherit pub_methods_classflatbuffers_1_1_vector"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a92d04847cc257e3ec9c75b7514988f13"></a>
+<tr class="separator:a36bbc83839910913cb0dd0699b1cccf7 inherit pub_methods_classflatbuffers_1_1_vector"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a161e5fb2aa923fbf2ce210ceea785942 inherit pub_methods_classflatbuffers_1_1_vector"><td class="memItemLeft" align="right" valign="top"><a id="a161e5fb2aa923fbf2ce210ceea785942"></a>
 const <a class="el" href="structflatbuffers_1_1_string.html">String</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>GetAsString</b> (uoffset_t i) const</td></tr>
-<tr class="separator:a92d04847cc257e3ec9c75b7514988f13 inherit pub_methods_classflatbuffers_1_1_vector"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a4aab53d31e0f3048fceeee9658efdf41 inherit pub_methods_classflatbuffers_1_1_vector"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4aab53d31e0f3048fceeee9658efdf41"></a>
+<tr class="separator:a161e5fb2aa923fbf2ce210ceea785942 inherit pub_methods_classflatbuffers_1_1_vector"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a22b4449883dc8e24e87cde27839294c4 inherit pub_methods_classflatbuffers_1_1_vector"><td class="memItemLeft" align="right" valign="top"><a id="a22b4449883dc8e24e87cde27839294c4"></a>
 E&#160;</td><td class="memItemRight" valign="bottom"><b>GetEnum</b> (uoffset_t i) const</td></tr>
-<tr class="separator:a4aab53d31e0f3048fceeee9658efdf41 inherit pub_methods_classflatbuffers_1_1_vector"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ab0a55bc4f498fbbd81efc47f3435be97 inherit pub_methods_classflatbuffers_1_1_vector"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab0a55bc4f498fbbd81efc47f3435be97"></a>
+<tr class="separator:a22b4449883dc8e24e87cde27839294c4 inherit pub_methods_classflatbuffers_1_1_vector"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad806c60362e99576ec5706aef30c2a67 inherit pub_methods_classflatbuffers_1_1_vector"><td class="memItemLeft" align="right" valign="top"><a id="ad806c60362e99576ec5706aef30c2a67"></a>
 mutable_return_type&#160;</td><td class="memItemRight" valign="bottom"><b>GetMutableObject</b> (uoffset_t i) const</td></tr>
-<tr class="separator:ab0a55bc4f498fbbd81efc47f3435be97 inherit pub_methods_classflatbuffers_1_1_vector"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a39668795e4e5462568cf985291a27f21 inherit pub_methods_classflatbuffers_1_1_vector"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a39668795e4e5462568cf985291a27f21"></a>
+<tr class="separator:ad806c60362e99576ec5706aef30c2a67 inherit pub_methods_classflatbuffers_1_1_vector"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1dc52eb3974e0484a5421752589d436b inherit pub_methods_classflatbuffers_1_1_vector"><td class="memItemLeft" align="right" valign="top"><a id="a1dc52eb3974e0484a5421752589d436b"></a>
 const void *&#160;</td><td class="memItemRight" valign="bottom"><b>GetStructFromOffset</b> (size_t o) const</td></tr>
-<tr class="separator:a39668795e4e5462568cf985291a27f21 inherit pub_methods_classflatbuffers_1_1_vector"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aa2372140c6a4331774fe15dff81d1d7b inherit pub_methods_classflatbuffers_1_1_vector"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa2372140c6a4331774fe15dff81d1d7b"></a>
+<tr class="separator:a1dc52eb3974e0484a5421752589d436b inherit pub_methods_classflatbuffers_1_1_vector"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7ad86e7c749fd750a4e506439a358b06 inherit pub_methods_classflatbuffers_1_1_vector"><td class="memItemLeft" align="right" valign="top"><a id="a7ad86e7c749fd750a4e506439a358b06"></a>
 uoffset_t&#160;</td><td class="memItemRight" valign="bottom"><b>Length</b> () const</td></tr>
-<tr class="separator:aa2372140c6a4331774fe15dff81d1d7b inherit pub_methods_classflatbuffers_1_1_vector"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a88a9fb17715f2845e3aebd4193007d61 inherit pub_methods_classflatbuffers_1_1_vector"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a88a9fb17715f2845e3aebd4193007d61"></a>
+<tr class="separator:a7ad86e7c749fd750a4e506439a358b06 inherit pub_methods_classflatbuffers_1_1_vector"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abf919e27aa3e9b60ac30386972c94e65 inherit pub_methods_classflatbuffers_1_1_vector"><td class="memItemLeft" align="right" valign="top"><a id="abf919e27aa3e9b60ac30386972c94e65"></a>
 return_type&#160;</td><td class="memItemRight" valign="bottom"><b>LookupByKey</b> (K key) const</td></tr>
-<tr class="separator:a88a9fb17715f2845e3aebd4193007d61 inherit pub_methods_classflatbuffers_1_1_vector"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a8342962f2f9d5e872c90abdeaea8d24e inherit pub_methods_classflatbuffers_1_1_vector"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8342962f2f9d5e872c90abdeaea8d24e"></a>
+<tr class="separator:abf919e27aa3e9b60ac30386972c94e65 inherit pub_methods_classflatbuffers_1_1_vector"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8342962f2f9d5e872c90abdeaea8d24e inherit pub_methods_classflatbuffers_1_1_vector"><td class="memItemLeft" align="right" valign="top"><a id="a8342962f2f9d5e872c90abdeaea8d24e"></a>
 void&#160;</td><td class="memItemRight" valign="bottom"><b>Mutate</b> (uoffset_t i, const char &amp;val)</td></tr>
 <tr class="separator:a8342962f2f9d5e872c90abdeaea8d24e inherit pub_methods_classflatbuffers_1_1_vector"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a29803cd584a620bf076a69b6e97ecf5c inherit pub_methods_classflatbuffers_1_1_vector"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a29803cd584a620bf076a69b6e97ecf5c"></a>
+<tr class="memitem:a29803cd584a620bf076a69b6e97ecf5c inherit pub_methods_classflatbuffers_1_1_vector"><td class="memItemLeft" align="right" valign="top"><a id="a29803cd584a620bf076a69b6e97ecf5c"></a>
 void&#160;</td><td class="memItemRight" valign="bottom"><b>MutateOffset</b> (uoffset_t i, const uint8_t *val)</td></tr>
 <tr class="separator:a29803cd584a620bf076a69b6e97ecf5c inherit pub_methods_classflatbuffers_1_1_vector"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a7f62ee2a80431226cf14dd7348613f35 inherit pub_methods_classflatbuffers_1_1_vector"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7f62ee2a80431226cf14dd7348613f35"></a>
+<tr class="memitem:ac3ac8d3a0c31f1c822d8f2d37e8099cc inherit pub_methods_classflatbuffers_1_1_vector"><td class="memItemLeft" align="right" valign="top"><a id="ac3ac8d3a0c31f1c822d8f2d37e8099cc"></a>
 return_type&#160;</td><td class="memItemRight" valign="bottom"><b>operator[]</b> (uoffset_t i) const</td></tr>
-<tr class="separator:a7f62ee2a80431226cf14dd7348613f35 inherit pub_methods_classflatbuffers_1_1_vector"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a3aa5f37912192c5adf734ed24145174d inherit pub_methods_classflatbuffers_1_1_vector"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3aa5f37912192c5adf734ed24145174d"></a>
+<tr class="separator:ac3ac8d3a0c31f1c822d8f2d37e8099cc inherit pub_methods_classflatbuffers_1_1_vector"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a602e093850b2984a95581edc0b47b2f3 inherit pub_methods_classflatbuffers_1_1_vector"><td class="memItemLeft" align="right" valign="top"><a id="a602e093850b2984a95581edc0b47b2f3"></a>
 uoffset_t&#160;</td><td class="memItemRight" valign="bottom"><b>size</b> () const</td></tr>
-<tr class="separator:a3aa5f37912192c5adf734ed24145174d inherit pub_methods_classflatbuffers_1_1_vector"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="separator:a602e093850b2984a95581edc0b47b2f3 inherit pub_methods_classflatbuffers_1_1_vector"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
 Additional Inherited Members</h2></td></tr>
 <tr class="inherit_header pub_types_classflatbuffers_1_1_vector"><td colspan="2" onclick="javascript:toggleInherit('pub_types_classflatbuffers_1_1_vector')"><img src="closed.png" alt="-"/>&#160;Public Types inherited from <a class="el" href="classflatbuffers_1_1_vector.html">flatbuffers::Vector&lt; char &gt;</a></td></tr>
-<tr class="memitem:a66212ee5146550ed418a358a8b756dc6 inherit pub_types_classflatbuffers_1_1_vector"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a66212ee5146550ed418a358a8b756dc6"></a>
-typedef <a class="el" href="structflatbuffers_1_1_vector_iterator.html">VectorIterator</a>&lt; char, <br class="typebreak" />
-typename <a class="el" href="structflatbuffers_1_1_indirect_helper.html">IndirectHelper</a>&lt; char &gt;<br class="typebreak" />
-::return_type &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>const_iterator</b></td></tr>
+<tr class="memitem:a66212ee5146550ed418a358a8b756dc6 inherit pub_types_classflatbuffers_1_1_vector"><td class="memItemLeft" align="right" valign="top"><a id="a66212ee5146550ed418a358a8b756dc6"></a>
+typedef <a class="el" href="structflatbuffers_1_1_vector_iterator.html">VectorIterator</a>&lt; char, typename <a class="el" href="structflatbuffers_1_1_indirect_helper.html">IndirectHelper</a>&lt; char &gt;::return_type &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>const_iterator</b></td></tr>
 <tr class="separator:a66212ee5146550ed418a358a8b756dc6 inherit pub_types_classflatbuffers_1_1_vector"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a0eeca1798d12e29e1003e6f831668986 inherit pub_types_classflatbuffers_1_1_vector"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0eeca1798d12e29e1003e6f831668986"></a>
-typedef <a class="el" href="structflatbuffers_1_1_vector_iterator.html">VectorIterator</a>&lt; char, <br class="typebreak" />
-typename <a class="el" href="structflatbuffers_1_1_indirect_helper.html">IndirectHelper</a>&lt; char &gt;<br class="typebreak" />
-::mutable_return_type &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>iterator</b></td></tr>
+<tr class="memitem:a0eeca1798d12e29e1003e6f831668986 inherit pub_types_classflatbuffers_1_1_vector"><td class="memItemLeft" align="right" valign="top"><a id="a0eeca1798d12e29e1003e6f831668986"></a>
+typedef <a class="el" href="structflatbuffers_1_1_vector_iterator.html">VectorIterator</a>&lt; char, typename <a class="el" href="structflatbuffers_1_1_indirect_helper.html">IndirectHelper</a>&lt; char &gt;::mutable_return_type &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>iterator</b></td></tr>
 <tr class="separator:a0eeca1798d12e29e1003e6f831668986 inherit pub_types_classflatbuffers_1_1_vector"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a7703f4b1cbb1f99087b48cd58abb740e inherit pub_types_classflatbuffers_1_1_vector"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7703f4b1cbb1f99087b48cd58abb740e"></a>
-typedef <a class="el" href="structflatbuffers_1_1_indirect_helper.html">IndirectHelper</a>&lt; char &gt;<br class="typebreak" />
-::mutable_return_type&#160;</td><td class="memItemRight" valign="bottom"><b>mutable_return_type</b></td></tr>
+<tr class="memitem:a7703f4b1cbb1f99087b48cd58abb740e inherit pub_types_classflatbuffers_1_1_vector"><td class="memItemLeft" align="right" valign="top"><a id="a7703f4b1cbb1f99087b48cd58abb740e"></a>
+typedef <a class="el" href="structflatbuffers_1_1_indirect_helper.html">IndirectHelper</a>&lt; char &gt;::mutable_return_type&#160;</td><td class="memItemRight" valign="bottom"><b>mutable_return_type</b></td></tr>
 <tr class="separator:a7703f4b1cbb1f99087b48cd58abb740e inherit pub_types_classflatbuffers_1_1_vector"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a28dab085738663f5c866cf6570bb6289 inherit pub_types_classflatbuffers_1_1_vector"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a28dab085738663f5c866cf6570bb6289"></a>
-typedef <a class="el" href="structflatbuffers_1_1_indirect_helper.html">IndirectHelper</a>&lt; char &gt;<br class="typebreak" />
-::return_type&#160;</td><td class="memItemRight" valign="bottom"><b>return_type</b></td></tr>
+<tr class="memitem:a28dab085738663f5c866cf6570bb6289 inherit pub_types_classflatbuffers_1_1_vector"><td class="memItemLeft" align="right" valign="top"><a id="a28dab085738663f5c866cf6570bb6289"></a>
+typedef <a class="el" href="structflatbuffers_1_1_indirect_helper.html">IndirectHelper</a>&lt; char &gt;::return_type&#160;</td><td class="memItemRight" valign="bottom"><b>return_type</b></td></tr>
 <tr class="separator:a28dab085738663f5c866cf6570bb6289 inherit pub_types_classflatbuffers_1_1_vector"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="inherit_header pro_attribs_classflatbuffers_1_1_vector"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classflatbuffers_1_1_vector')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classflatbuffers_1_1_vector.html">flatbuffers::Vector&lt; char &gt;</a></td></tr>
-<tr class="memitem:a62170e531ab5fcef8b4c717c0e84553d inherit pro_attribs_classflatbuffers_1_1_vector"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a62170e531ab5fcef8b4c717c0e84553d"></a>
+<tr class="memitem:a62170e531ab5fcef8b4c717c0e84553d inherit pro_attribs_classflatbuffers_1_1_vector"><td class="memItemLeft" align="right" valign="top"><a id="a62170e531ab5fcef8b4c717c0e84553d"></a>
 uoffset_t&#160;</td><td class="memItemRight" valign="bottom"><b>length_</b></td></tr>
 <tr class="separator:a62170e531ab5fcef8b4c717c0e84553d inherit pro_attribs_classflatbuffers_1_1_vector"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
diff --git a/structflatbuffers_1_1_string.js b/structflatbuffers_1_1_string.js
index 53f58c80cd6bad580e6aca2f643bef27bfae0099..80d5d76f65cfb9a20354959d023514e979ffe52e 100644
--- a/structflatbuffers_1_1_string.js
+++ b/structflatbuffers_1_1_string.js
@@ -1,6 +1,6 @@
 var structflatbuffers_1_1_string =
 [
-    [ "c_str", "structflatbuffers_1_1_string.html#a859788ba800f24c7c99310c38eb7e195", null ],
-    [ "operator<", "structflatbuffers_1_1_string.html#a533b1aa0d76e4afa7b3b02992621ff6a", null ],
-    [ "str", "structflatbuffers_1_1_string.html#a4690a7167b39c091f03320e17e751c88", null ]
+    [ "c_str", "structflatbuffers_1_1_string.html#a4d0c586883282e5b93ddbb02f3d71eef", null ],
+    [ "operator<", "structflatbuffers_1_1_string.html#a1028f4733cff070adae7d57bf4325726", null ],
+    [ "str", "structflatbuffers_1_1_string.html#a4c49c553dfec1da5a6fd8852a97d508e", null ]
 ];
\ No newline at end of file
diff --git a/structflatbuffers_1_1_vector_iterator-members.html b/structflatbuffers_1_1_vector_iterator-members.html
index f11ffb3734b8ec9aec7ce7b2e0e17de4570c0aff..80b89c60bc6cbda4f47d9751df843d427fd4f969 100644
--- a/structflatbuffers_1_1_vector_iterator-members.html
+++ b/structflatbuffers_1_1_vector_iterator-members.html
@@ -4,23 +4,21 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <title>FlatBuffers: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
 <link href="navtree.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
 <script type="text/javascript" src="navtree.js"></script>
 <script type="text/javascript">
   $(document).ready(initResizable);
-  $(window).load(resizeHeight);
 </script>
 <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
 <script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
-  $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,500italic,700,700italic|Roboto+Mono:400,700" rel="stylesheet">
 <link href="style.css" rel="stylesheet" type="text/css"/>
@@ -46,53 +44,19 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.7 -->
+<!-- Generated by Doxygen 1.8.13 -->
 <script type="text/javascript">
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </script>
-  <div id="navrow1" class="tabs">
-    <ul class="tablist">
-      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
-      <li><a href="usergroup0.html"><span>Programmer's&#160;Guide</span></a></li>
-      <li><a href="flatbuffers_support.html"><span>Platform&#160;/&#160;Language&#160;/&#160;Feature&#160;support</span></a></li>
-      <li><a href="flatbuffers_benchmarks.html"><span>Benchmarks</span></a></li>
-      <li><a href="flatbuffers_white_paper.html"><span>FlatBuffers&#160;white&#160;paper</span></a></li>
-      <li><a href="flatbuffers_internals.html"><span>FlatBuffers&#160;internals</span></a></li>
-      <li><a href="flatbuffers_grammar.html"><span>Grammar&#160;of&#160;the&#160;schema&#160;language</span></a></li>
-      <li class="current"><a href="usergroup2.html"><span>API&#160;Reference</span></a></li>
-      <li><a href="contributing.html"><span>Contributing</span></a></li>
-      <li>
-        <div id="MSearchBox" class="MSearchBoxInactive">
-        <span class="left">
-          <img id="MSearchSelect" src="search/mag_sel.png"
-               onmouseover="return searchBox.OnSearchSelectShow()"
-               onmouseout="return searchBox.OnSearchSelectHide()"
-               alt=""/>
-          <input type="text" id="MSearchField" value="Search" accesskey="S"
-               onfocus="searchBox.OnSearchFieldFocus(true)" 
-               onblur="searchBox.OnSearchFieldFocus(false)" 
-               onkeyup="searchBox.OnSearchFieldChange(event)"/>
-          </span><span class="right">
-            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
-          </span>
-        </div>
-      </li>
-    </ul>
-  </div>
-  <div id="navrow2" class="tabs2">
-    <ul class="tablist">
-      <li><a href="modules.html"><span>APIs</span></a></li>
-      <li class="current"><a href="annotated.html"><span>Class&#160;List</span></a></li>
-    </ul>
-  </div>
-  <div id="navrow2" class="tabs2">
-    <ul class="tablist">
-      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
-      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
-      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
-      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
-    </ul>
-  </div>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -113,7 +77,7 @@ $(document).ready(function(){initNavTree('structflatbuffers_1_1_vector_iterator.
      onmouseover="return searchBox.OnSearchSelectShow()"
      onmouseout="return searchBox.OnSearchSelectHide()"
      onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Properties</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+</div>
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
@@ -132,22 +96,22 @@ $(document).ready(function(){initNavTree('structflatbuffers_1_1_vector_iterator.
 <table class="directory">
   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>difference_type</b> typedef (defined in <a class="el" href="structflatbuffers_1_1_vector_iterator.html">flatbuffers::VectorIterator&lt; T, IT &gt;</a>)</td><td class="entry"><a class="el" href="structflatbuffers_1_1_vector_iterator.html">flatbuffers::VectorIterator&lt; T, IT &gt;</a></td><td class="entry"></td></tr>
   <tr bgcolor="#f0f0f0"><td class="entry"><b>iterator_category</b> typedef (defined in <a class="el" href="structflatbuffers_1_1_vector_iterator.html">flatbuffers::VectorIterator&lt; T, IT &gt;</a>)</td><td class="entry"><a class="el" href="structflatbuffers_1_1_vector_iterator.html">flatbuffers::VectorIterator&lt; T, IT &gt;</a></td><td class="entry"></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>operator!=</b>(const VectorIterator &amp;other) const  (defined in <a class="el" href="structflatbuffers_1_1_vector_iterator.html">flatbuffers::VectorIterator&lt; T, IT &gt;</a>)</td><td class="entry"><a class="el" href="structflatbuffers_1_1_vector_iterator.html">flatbuffers::VectorIterator&lt; T, IT &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>operator*</b>() const  (defined in <a class="el" href="structflatbuffers_1_1_vector_iterator.html">flatbuffers::VectorIterator&lt; T, IT &gt;</a>)</td><td class="entry"><a class="el" href="structflatbuffers_1_1_vector_iterator.html">flatbuffers::VectorIterator&lt; T, IT &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>operator+</b>(const uoffset_t &amp;offset) const  (defined in <a class="el" href="structflatbuffers_1_1_vector_iterator.html">flatbuffers::VectorIterator&lt; T, IT &gt;</a>)</td><td class="entry"><a class="el" href="structflatbuffers_1_1_vector_iterator.html">flatbuffers::VectorIterator&lt; T, IT &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>operator!=</b>(const VectorIterator &amp;other) const (defined in <a class="el" href="structflatbuffers_1_1_vector_iterator.html">flatbuffers::VectorIterator&lt; T, IT &gt;</a>)</td><td class="entry"><a class="el" href="structflatbuffers_1_1_vector_iterator.html">flatbuffers::VectorIterator&lt; T, IT &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>operator*</b>() const (defined in <a class="el" href="structflatbuffers_1_1_vector_iterator.html">flatbuffers::VectorIterator&lt; T, IT &gt;</a>)</td><td class="entry"><a class="el" href="structflatbuffers_1_1_vector_iterator.html">flatbuffers::VectorIterator&lt; T, IT &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>operator+</b>(const uoffset_t &amp;offset) const (defined in <a class="el" href="structflatbuffers_1_1_vector_iterator.html">flatbuffers::VectorIterator&lt; T, IT &gt;</a>)</td><td class="entry"><a class="el" href="structflatbuffers_1_1_vector_iterator.html">flatbuffers::VectorIterator&lt; T, IT &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr bgcolor="#f0f0f0"><td class="entry"><b>operator++</b>() (defined in <a class="el" href="structflatbuffers_1_1_vector_iterator.html">flatbuffers::VectorIterator&lt; T, IT &gt;</a>)</td><td class="entry"><a class="el" href="structflatbuffers_1_1_vector_iterator.html">flatbuffers::VectorIterator&lt; T, IT &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>operator++</b>(int) (defined in <a class="el" href="structflatbuffers_1_1_vector_iterator.html">flatbuffers::VectorIterator&lt; T, IT &gt;</a>)</td><td class="entry"><a class="el" href="structflatbuffers_1_1_vector_iterator.html">flatbuffers::VectorIterator&lt; T, IT &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr bgcolor="#f0f0f0"><td class="entry"><b>operator+=</b>(const uoffset_t &amp;offset) (defined in <a class="el" href="structflatbuffers_1_1_vector_iterator.html">flatbuffers::VectorIterator&lt; T, IT &gt;</a>)</td><td class="entry"><a class="el" href="structflatbuffers_1_1_vector_iterator.html">flatbuffers::VectorIterator&lt; T, IT &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>operator-</b>(const VectorIterator &amp;other) const  (defined in <a class="el" href="structflatbuffers_1_1_vector_iterator.html">flatbuffers::VectorIterator&lt; T, IT &gt;</a>)</td><td class="entry"><a class="el" href="structflatbuffers_1_1_vector_iterator.html">flatbuffers::VectorIterator&lt; T, IT &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>operator-</b>(const VectorIterator &amp;other) const (defined in <a class="el" href="structflatbuffers_1_1_vector_iterator.html">flatbuffers::VectorIterator&lt; T, IT &gt;</a>)</td><td class="entry"><a class="el" href="structflatbuffers_1_1_vector_iterator.html">flatbuffers::VectorIterator&lt; T, IT &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr bgcolor="#f0f0f0"><td class="entry"><b>operator-</b>(const uoffset_t &amp;offset) (defined in <a class="el" href="structflatbuffers_1_1_vector_iterator.html">flatbuffers::VectorIterator&lt; T, IT &gt;</a>)</td><td class="entry"><a class="el" href="structflatbuffers_1_1_vector_iterator.html">flatbuffers::VectorIterator&lt; T, IT &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>operator--</b>() (defined in <a class="el" href="structflatbuffers_1_1_vector_iterator.html">flatbuffers::VectorIterator&lt; T, IT &gt;</a>)</td><td class="entry"><a class="el" href="structflatbuffers_1_1_vector_iterator.html">flatbuffers::VectorIterator&lt; T, IT &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr bgcolor="#f0f0f0"><td class="entry"><b>operator--</b>(int) (defined in <a class="el" href="structflatbuffers_1_1_vector_iterator.html">flatbuffers::VectorIterator&lt; T, IT &gt;</a>)</td><td class="entry"><a class="el" href="structflatbuffers_1_1_vector_iterator.html">flatbuffers::VectorIterator&lt; T, IT &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>operator-=</b>(const uoffset_t &amp;offset) (defined in <a class="el" href="structflatbuffers_1_1_vector_iterator.html">flatbuffers::VectorIterator&lt; T, IT &gt;</a>)</td><td class="entry"><a class="el" href="structflatbuffers_1_1_vector_iterator.html">flatbuffers::VectorIterator&lt; T, IT &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>operator-&gt;</b>() const  (defined in <a class="el" href="structflatbuffers_1_1_vector_iterator.html">flatbuffers::VectorIterator&lt; T, IT &gt;</a>)</td><td class="entry"><a class="el" href="structflatbuffers_1_1_vector_iterator.html">flatbuffers::VectorIterator&lt; T, IT &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>operator&lt;</b>(const VectorIterator &amp;other) const  (defined in <a class="el" href="structflatbuffers_1_1_vector_iterator.html">flatbuffers::VectorIterator&lt; T, IT &gt;</a>)</td><td class="entry"><a class="el" href="structflatbuffers_1_1_vector_iterator.html">flatbuffers::VectorIterator&lt; T, IT &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>operator-&gt;</b>() const (defined in <a class="el" href="structflatbuffers_1_1_vector_iterator.html">flatbuffers::VectorIterator&lt; T, IT &gt;</a>)</td><td class="entry"><a class="el" href="structflatbuffers_1_1_vector_iterator.html">flatbuffers::VectorIterator&lt; T, IT &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>operator&lt;</b>(const VectorIterator &amp;other) const (defined in <a class="el" href="structflatbuffers_1_1_vector_iterator.html">flatbuffers::VectorIterator&lt; T, IT &gt;</a>)</td><td class="entry"><a class="el" href="structflatbuffers_1_1_vector_iterator.html">flatbuffers::VectorIterator&lt; T, IT &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr bgcolor="#f0f0f0"><td class="entry"><b>operator=</b>(const VectorIterator &amp;other) (defined in <a class="el" href="structflatbuffers_1_1_vector_iterator.html">flatbuffers::VectorIterator&lt; T, IT &gt;</a>)</td><td class="entry"><a class="el" href="structflatbuffers_1_1_vector_iterator.html">flatbuffers::VectorIterator&lt; T, IT &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>operator=</b>(VectorIterator &amp;&amp;other) (defined in <a class="el" href="structflatbuffers_1_1_vector_iterator.html">flatbuffers::VectorIterator&lt; T, IT &gt;</a>)</td><td class="entry"><a class="el" href="structflatbuffers_1_1_vector_iterator.html">flatbuffers::VectorIterator&lt; T, IT &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>operator==</b>(const VectorIterator &amp;other) const  (defined in <a class="el" href="structflatbuffers_1_1_vector_iterator.html">flatbuffers::VectorIterator&lt; T, IT &gt;</a>)</td><td class="entry"><a class="el" href="structflatbuffers_1_1_vector_iterator.html">flatbuffers::VectorIterator&lt; T, IT &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>operator==</b>(const VectorIterator &amp;other) const (defined in <a class="el" href="structflatbuffers_1_1_vector_iterator.html">flatbuffers::VectorIterator&lt; T, IT &gt;</a>)</td><td class="entry"><a class="el" href="structflatbuffers_1_1_vector_iterator.html">flatbuffers::VectorIterator&lt; T, IT &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>pointer</b> typedef (defined in <a class="el" href="structflatbuffers_1_1_vector_iterator.html">flatbuffers::VectorIterator&lt; T, IT &gt;</a>)</td><td class="entry"><a class="el" href="structflatbuffers_1_1_vector_iterator.html">flatbuffers::VectorIterator&lt; T, IT &gt;</a></td><td class="entry"></td></tr>
   <tr bgcolor="#f0f0f0"><td class="entry"><b>reference</b> typedef (defined in <a class="el" href="structflatbuffers_1_1_vector_iterator.html">flatbuffers::VectorIterator&lt; T, IT &gt;</a>)</td><td class="entry"><a class="el" href="structflatbuffers_1_1_vector_iterator.html">flatbuffers::VectorIterator&lt; T, IT &gt;</a></td><td class="entry"></td></tr>
   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>value_type</b> typedef (defined in <a class="el" href="structflatbuffers_1_1_vector_iterator.html">flatbuffers::VectorIterator&lt; T, IT &gt;</a>)</td><td class="entry"><a class="el" href="structflatbuffers_1_1_vector_iterator.html">flatbuffers::VectorIterator&lt; T, IT &gt;</a></td><td class="entry"></td></tr>
diff --git a/structflatbuffers_1_1_vector_iterator.html b/structflatbuffers_1_1_vector_iterator.html
index 73be424c0a3e881d91c6a19cb56429e17e1b4cd4..7cb9e8f16743b6e8977835261170c13ff67f6cca 100644
--- a/structflatbuffers_1_1_vector_iterator.html
+++ b/structflatbuffers_1_1_vector_iterator.html
@@ -4,23 +4,21 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <title>FlatBuffers: flatbuffers::VectorIterator&lt; T, IT &gt; Struct Template Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
 <link href="navtree.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
 <script type="text/javascript" src="navtree.js"></script>
 <script type="text/javascript">
   $(document).ready(initResizable);
-  $(window).load(resizeHeight);
 </script>
 <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
 <script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
-  $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,500italic,700,700italic|Roboto+Mono:400,700" rel="stylesheet">
 <link href="style.css" rel="stylesheet" type="text/css"/>
@@ -46,53 +44,19 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.7 -->
+<!-- Generated by Doxygen 1.8.13 -->
 <script type="text/javascript">
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </script>
-  <div id="navrow1" class="tabs">
-    <ul class="tablist">
-      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
-      <li><a href="usergroup0.html"><span>Programmer's&#160;Guide</span></a></li>
-      <li><a href="flatbuffers_support.html"><span>Platform&#160;/&#160;Language&#160;/&#160;Feature&#160;support</span></a></li>
-      <li><a href="flatbuffers_benchmarks.html"><span>Benchmarks</span></a></li>
-      <li><a href="flatbuffers_white_paper.html"><span>FlatBuffers&#160;white&#160;paper</span></a></li>
-      <li><a href="flatbuffers_internals.html"><span>FlatBuffers&#160;internals</span></a></li>
-      <li><a href="flatbuffers_grammar.html"><span>Grammar&#160;of&#160;the&#160;schema&#160;language</span></a></li>
-      <li class="current"><a href="usergroup2.html"><span>API&#160;Reference</span></a></li>
-      <li><a href="contributing.html"><span>Contributing</span></a></li>
-      <li>
-        <div id="MSearchBox" class="MSearchBoxInactive">
-        <span class="left">
-          <img id="MSearchSelect" src="search/mag_sel.png"
-               onmouseover="return searchBox.OnSearchSelectShow()"
-               onmouseout="return searchBox.OnSearchSelectHide()"
-               alt=""/>
-          <input type="text" id="MSearchField" value="Search" accesskey="S"
-               onfocus="searchBox.OnSearchFieldFocus(true)" 
-               onblur="searchBox.OnSearchFieldFocus(false)" 
-               onkeyup="searchBox.OnSearchFieldChange(event)"/>
-          </span><span class="right">
-            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
-          </span>
-        </div>
-      </li>
-    </ul>
-  </div>
-  <div id="navrow2" class="tabs2">
-    <ul class="tablist">
-      <li><a href="modules.html"><span>APIs</span></a></li>
-      <li class="current"><a href="annotated.html"><span>Class&#160;List</span></a></li>
-    </ul>
-  </div>
-  <div id="navrow2" class="tabs2">
-    <ul class="tablist">
-      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
-      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
-      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
-      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
-    </ul>
-  </div>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -113,7 +77,7 @@ $(document).ready(function(){initNavTree('structflatbuffers_1_1_vector_iterator.
      onmouseover="return searchBox.OnSearchSelectShow()"
      onmouseout="return searchBox.OnSearchSelectHide()"
      onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Properties</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+</div>
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
@@ -134,77 +98,76 @@ $(document).ready(function(){initNavTree('structflatbuffers_1_1_vector_iterator.
 <table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
 Public Types</h2></td></tr>
-<tr class="memitem:a67b44f6c5e62b325e8cb4b91c99f60be"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a67b44f6c5e62b325e8cb4b91c99f60be"></a>
+<tr class="memitem:a67b44f6c5e62b325e8cb4b91c99f60be"><td class="memItemLeft" align="right" valign="top"><a id="a67b44f6c5e62b325e8cb4b91c99f60be"></a>
 typedef uoffset_t&#160;</td><td class="memItemRight" valign="bottom"><b>difference_type</b></td></tr>
 <tr class="separator:a67b44f6c5e62b325e8cb4b91c99f60be"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ac9e9c7cb6d2cc0a69c22b954bb73dc42"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac9e9c7cb6d2cc0a69c22b954bb73dc42"></a>
-typedef <br class="typebreak" />
-std::random_access_iterator_tag&#160;</td><td class="memItemRight" valign="bottom"><b>iterator_category</b></td></tr>
+<tr class="memitem:ac9e9c7cb6d2cc0a69c22b954bb73dc42"><td class="memItemLeft" align="right" valign="top"><a id="ac9e9c7cb6d2cc0a69c22b954bb73dc42"></a>
+typedef std::random_access_iterator_tag&#160;</td><td class="memItemRight" valign="bottom"><b>iterator_category</b></td></tr>
 <tr class="separator:ac9e9c7cb6d2cc0a69c22b954bb73dc42"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a74d61458dfc1c25d94f80cae8cebaa2a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a74d61458dfc1c25d94f80cae8cebaa2a"></a>
+<tr class="memitem:a74d61458dfc1c25d94f80cae8cebaa2a"><td class="memItemLeft" align="right" valign="top"><a id="a74d61458dfc1c25d94f80cae8cebaa2a"></a>
 typedef IT *&#160;</td><td class="memItemRight" valign="bottom"><b>pointer</b></td></tr>
 <tr class="separator:a74d61458dfc1c25d94f80cae8cebaa2a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:acb8ab7ba9e8ce289a1c8234e872c708b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acb8ab7ba9e8ce289a1c8234e872c708b"></a>
+<tr class="memitem:acb8ab7ba9e8ce289a1c8234e872c708b"><td class="memItemLeft" align="right" valign="top"><a id="acb8ab7ba9e8ce289a1c8234e872c708b"></a>
 typedef IT &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>reference</b></td></tr>
 <tr class="separator:acb8ab7ba9e8ce289a1c8234e872c708b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aaf980961b89f2b647a07135246b75088"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aaf980961b89f2b647a07135246b75088"></a>
+<tr class="memitem:aaf980961b89f2b647a07135246b75088"><td class="memItemLeft" align="right" valign="top"><a id="aaf980961b89f2b647a07135246b75088"></a>
 typedef IT&#160;</td><td class="memItemRight" valign="bottom"><b>value_type</b></td></tr>
 <tr class="separator:aaf980961b89f2b647a07135246b75088"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
 Public Member Functions</h2></td></tr>
-<tr class="memitem:aa489e5381af5c940b0fb8e7f54aef1f4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa489e5381af5c940b0fb8e7f54aef1f4"></a>
-bool&#160;</td><td class="memItemRight" valign="bottom"><b>operator!=</b> (const <a class="el" href="structflatbuffers_1_1_vector_iterator.html">VectorIterator</a> &amp;other) const </td></tr>
-<tr class="separator:aa489e5381af5c940b0fb8e7f54aef1f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a7d2af5bdf25869708ae89ee598f11346"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7d2af5bdf25869708ae89ee598f11346"></a>
-IT&#160;</td><td class="memItemRight" valign="bottom"><b>operator*</b> () const </td></tr>
-<tr class="separator:a7d2af5bdf25869708ae89ee598f11346"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aa0bc0de48d01ab1ca7bfb73924192451"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa0bc0de48d01ab1ca7bfb73924192451"></a>
-<a class="el" href="structflatbuffers_1_1_vector_iterator.html">VectorIterator</a>&#160;</td><td class="memItemRight" valign="bottom"><b>operator+</b> (const uoffset_t &amp;offset) const </td></tr>
-<tr class="separator:aa0bc0de48d01ab1ca7bfb73924192451"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a5fae31cf992a81412140a17dde196890"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5fae31cf992a81412140a17dde196890"></a>
+<tr class="memitem:a0b6a5544a9c48f2409690de7bfff6a63"><td class="memItemLeft" align="right" valign="top"><a id="a0b6a5544a9c48f2409690de7bfff6a63"></a>
+bool&#160;</td><td class="memItemRight" valign="bottom"><b>operator!=</b> (const <a class="el" href="structflatbuffers_1_1_vector_iterator.html">VectorIterator</a> &amp;other) const</td></tr>
+<tr class="separator:a0b6a5544a9c48f2409690de7bfff6a63"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a19fde04fa43b5967564883517ed10a82"><td class="memItemLeft" align="right" valign="top"><a id="a19fde04fa43b5967564883517ed10a82"></a>
+IT&#160;</td><td class="memItemRight" valign="bottom"><b>operator*</b> () const</td></tr>
+<tr class="separator:a19fde04fa43b5967564883517ed10a82"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aff7a7187d818290ee71274335f079191"><td class="memItemLeft" align="right" valign="top"><a id="aff7a7187d818290ee71274335f079191"></a>
+<a class="el" href="structflatbuffers_1_1_vector_iterator.html">VectorIterator</a>&#160;</td><td class="memItemRight" valign="bottom"><b>operator+</b> (const uoffset_t &amp;offset) const</td></tr>
+<tr class="separator:aff7a7187d818290ee71274335f079191"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5fae31cf992a81412140a17dde196890"><td class="memItemLeft" align="right" valign="top"><a id="a5fae31cf992a81412140a17dde196890"></a>
 <a class="el" href="structflatbuffers_1_1_vector_iterator.html">VectorIterator</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator++</b> ()</td></tr>
 <tr class="separator:a5fae31cf992a81412140a17dde196890"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a428a3df67f852563e25a040e41f3aef9"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a428a3df67f852563e25a040e41f3aef9"></a>
+<tr class="memitem:a428a3df67f852563e25a040e41f3aef9"><td class="memItemLeft" align="right" valign="top"><a id="a428a3df67f852563e25a040e41f3aef9"></a>
 <a class="el" href="structflatbuffers_1_1_vector_iterator.html">VectorIterator</a>&#160;</td><td class="memItemRight" valign="bottom"><b>operator++</b> (int)</td></tr>
 <tr class="separator:a428a3df67f852563e25a040e41f3aef9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a368b4ee9b89ab783045f96a2f69dec67"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a368b4ee9b89ab783045f96a2f69dec67"></a>
+<tr class="memitem:a368b4ee9b89ab783045f96a2f69dec67"><td class="memItemLeft" align="right" valign="top"><a id="a368b4ee9b89ab783045f96a2f69dec67"></a>
 <a class="el" href="structflatbuffers_1_1_vector_iterator.html">VectorIterator</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator+=</b> (const uoffset_t &amp;offset)</td></tr>
 <tr class="separator:a368b4ee9b89ab783045f96a2f69dec67"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aa7bd6c57906c8263d184750296d4d4b4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa7bd6c57906c8263d184750296d4d4b4"></a>
-ptrdiff_t&#160;</td><td class="memItemRight" valign="bottom"><b>operator-</b> (const <a class="el" href="structflatbuffers_1_1_vector_iterator.html">VectorIterator</a> &amp;other) const </td></tr>
-<tr class="separator:aa7bd6c57906c8263d184750296d4d4b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a5d2754d1859696e7a6d43e74d4f9ae29"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5d2754d1859696e7a6d43e74d4f9ae29"></a>
+<tr class="memitem:a9418ef8352fb8010aa2173a46220225c"><td class="memItemLeft" align="right" valign="top"><a id="a9418ef8352fb8010aa2173a46220225c"></a>
+ptrdiff_t&#160;</td><td class="memItemRight" valign="bottom"><b>operator-</b> (const <a class="el" href="structflatbuffers_1_1_vector_iterator.html">VectorIterator</a> &amp;other) const</td></tr>
+<tr class="separator:a9418ef8352fb8010aa2173a46220225c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5d2754d1859696e7a6d43e74d4f9ae29"><td class="memItemLeft" align="right" valign="top"><a id="a5d2754d1859696e7a6d43e74d4f9ae29"></a>
 <a class="el" href="structflatbuffers_1_1_vector_iterator.html">VectorIterator</a>&#160;</td><td class="memItemRight" valign="bottom"><b>operator-</b> (const uoffset_t &amp;offset)</td></tr>
 <tr class="separator:a5d2754d1859696e7a6d43e74d4f9ae29"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ae33269dea219a9a690f00c23d67c0208"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae33269dea219a9a690f00c23d67c0208"></a>
+<tr class="memitem:ae33269dea219a9a690f00c23d67c0208"><td class="memItemLeft" align="right" valign="top"><a id="ae33269dea219a9a690f00c23d67c0208"></a>
 <a class="el" href="structflatbuffers_1_1_vector_iterator.html">VectorIterator</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator--</b> ()</td></tr>
 <tr class="separator:ae33269dea219a9a690f00c23d67c0208"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a105a4e408b45c324f2ad445f5145bf51"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a105a4e408b45c324f2ad445f5145bf51"></a>
+<tr class="memitem:a105a4e408b45c324f2ad445f5145bf51"><td class="memItemLeft" align="right" valign="top"><a id="a105a4e408b45c324f2ad445f5145bf51"></a>
 <a class="el" href="structflatbuffers_1_1_vector_iterator.html">VectorIterator</a>&#160;</td><td class="memItemRight" valign="bottom"><b>operator--</b> (int)</td></tr>
 <tr class="separator:a105a4e408b45c324f2ad445f5145bf51"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:af17653cb8a120a9bbd35dcb35a570729"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af17653cb8a120a9bbd35dcb35a570729"></a>
+<tr class="memitem:af17653cb8a120a9bbd35dcb35a570729"><td class="memItemLeft" align="right" valign="top"><a id="af17653cb8a120a9bbd35dcb35a570729"></a>
 <a class="el" href="structflatbuffers_1_1_vector_iterator.html">VectorIterator</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator-=</b> (const uoffset_t &amp;offset)</td></tr>
 <tr class="separator:af17653cb8a120a9bbd35dcb35a570729"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:af0e098e805b8a387a108e0d156145329"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af0e098e805b8a387a108e0d156145329"></a>
-IT&#160;</td><td class="memItemRight" valign="bottom"><b>operator-&gt;</b> () const </td></tr>
-<tr class="separator:af0e098e805b8a387a108e0d156145329"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a7da0129573fc128410b7f0d5f2994301"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7da0129573fc128410b7f0d5f2994301"></a>
-bool&#160;</td><td class="memItemRight" valign="bottom"><b>operator&lt;</b> (const <a class="el" href="structflatbuffers_1_1_vector_iterator.html">VectorIterator</a> &amp;other) const </td></tr>
-<tr class="separator:a7da0129573fc128410b7f0d5f2994301"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a4b0747db5a2080cf4bd8bdbdeb1ceda2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4b0747db5a2080cf4bd8bdbdeb1ceda2"></a>
+<tr class="memitem:a78eb60f8754af75c1b2b5e0d8710ae6c"><td class="memItemLeft" align="right" valign="top"><a id="a78eb60f8754af75c1b2b5e0d8710ae6c"></a>
+IT&#160;</td><td class="memItemRight" valign="bottom"><b>operator-&gt;</b> () const</td></tr>
+<tr class="separator:a78eb60f8754af75c1b2b5e0d8710ae6c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3f537a771b03e39218f7c77df9a243c8"><td class="memItemLeft" align="right" valign="top"><a id="a3f537a771b03e39218f7c77df9a243c8"></a>
+bool&#160;</td><td class="memItemRight" valign="bottom"><b>operator&lt;</b> (const <a class="el" href="structflatbuffers_1_1_vector_iterator.html">VectorIterator</a> &amp;other) const</td></tr>
+<tr class="separator:a3f537a771b03e39218f7c77df9a243c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4b0747db5a2080cf4bd8bdbdeb1ceda2"><td class="memItemLeft" align="right" valign="top"><a id="a4b0747db5a2080cf4bd8bdbdeb1ceda2"></a>
 <a class="el" href="structflatbuffers_1_1_vector_iterator.html">VectorIterator</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (const <a class="el" href="structflatbuffers_1_1_vector_iterator.html">VectorIterator</a> &amp;other)</td></tr>
 <tr class="separator:a4b0747db5a2080cf4bd8bdbdeb1ceda2"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aaf71b80a66b9d7f5220e1cd4d2b27b3c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aaf71b80a66b9d7f5220e1cd4d2b27b3c"></a>
+<tr class="memitem:aaf71b80a66b9d7f5220e1cd4d2b27b3c"><td class="memItemLeft" align="right" valign="top"><a id="aaf71b80a66b9d7f5220e1cd4d2b27b3c"></a>
 <a class="el" href="structflatbuffers_1_1_vector_iterator.html">VectorIterator</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (<a class="el" href="structflatbuffers_1_1_vector_iterator.html">VectorIterator</a> &amp;&amp;other)</td></tr>
 <tr class="separator:aaf71b80a66b9d7f5220e1cd4d2b27b3c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:af7d486593808b4d955cb5f8d424d18ee"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af7d486593808b4d955cb5f8d424d18ee"></a>
-bool&#160;</td><td class="memItemRight" valign="bottom"><b>operator==</b> (const <a class="el" href="structflatbuffers_1_1_vector_iterator.html">VectorIterator</a> &amp;other) const </td></tr>
-<tr class="separator:af7d486593808b4d955cb5f8d424d18ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a415a449a3d8a04271260ecb380c3fa49"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a415a449a3d8a04271260ecb380c3fa49"></a>
+<tr class="memitem:ab8f96b2057c464d22dd03286ee8af5c0"><td class="memItemLeft" align="right" valign="top"><a id="ab8f96b2057c464d22dd03286ee8af5c0"></a>
+bool&#160;</td><td class="memItemRight" valign="bottom"><b>operator==</b> (const <a class="el" href="structflatbuffers_1_1_vector_iterator.html">VectorIterator</a> &amp;other) const</td></tr>
+<tr class="separator:ab8f96b2057c464d22dd03286ee8af5c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a415a449a3d8a04271260ecb380c3fa49"><td class="memItemLeft" align="right" valign="top"><a id="a415a449a3d8a04271260ecb380c3fa49"></a>
 &#160;</td><td class="memItemRight" valign="bottom"><b>VectorIterator</b> (const uint8_t *data, uoffset_t i)</td></tr>
 <tr class="separator:a415a449a3d8a04271260ecb380c3fa49"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a7e10ae7b14f5f79bf0da6bbed7c17b5d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7e10ae7b14f5f79bf0da6bbed7c17b5d"></a>
+<tr class="memitem:a7e10ae7b14f5f79bf0da6bbed7c17b5d"><td class="memItemLeft" align="right" valign="top"><a id="a7e10ae7b14f5f79bf0da6bbed7c17b5d"></a>
 &#160;</td><td class="memItemRight" valign="bottom"><b>VectorIterator</b> (const <a class="el" href="structflatbuffers_1_1_vector_iterator.html">VectorIterator</a> &amp;other)</td></tr>
 <tr class="separator:a7e10ae7b14f5f79bf0da6bbed7c17b5d"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
diff --git a/structflatbuffers_1_1_vector_iterator.js b/structflatbuffers_1_1_vector_iterator.js
index 26d79e8ed47dcf950603cbb1653ad28c2cbfa77f..2805135df6c6f5f2014dae18c059bd56470aa97d 100644
--- a/structflatbuffers_1_1_vector_iterator.js
+++ b/structflatbuffers_1_1_vector_iterator.js
@@ -7,20 +7,20 @@ var structflatbuffers_1_1_vector_iterator =
     [ "value_type", "structflatbuffers_1_1_vector_iterator.html#aaf980961b89f2b647a07135246b75088", null ],
     [ "VectorIterator", "structflatbuffers_1_1_vector_iterator.html#a415a449a3d8a04271260ecb380c3fa49", null ],
     [ "VectorIterator", "structflatbuffers_1_1_vector_iterator.html#a7e10ae7b14f5f79bf0da6bbed7c17b5d", null ],
-    [ "operator!=", "structflatbuffers_1_1_vector_iterator.html#aa489e5381af5c940b0fb8e7f54aef1f4", null ],
-    [ "operator*", "structflatbuffers_1_1_vector_iterator.html#a7d2af5bdf25869708ae89ee598f11346", null ],
-    [ "operator+", "structflatbuffers_1_1_vector_iterator.html#aa0bc0de48d01ab1ca7bfb73924192451", null ],
+    [ "operator!=", "structflatbuffers_1_1_vector_iterator.html#a0b6a5544a9c48f2409690de7bfff6a63", null ],
+    [ "operator*", "structflatbuffers_1_1_vector_iterator.html#a19fde04fa43b5967564883517ed10a82", null ],
+    [ "operator+", "structflatbuffers_1_1_vector_iterator.html#aff7a7187d818290ee71274335f079191", null ],
     [ "operator++", "structflatbuffers_1_1_vector_iterator.html#a5fae31cf992a81412140a17dde196890", null ],
     [ "operator++", "structflatbuffers_1_1_vector_iterator.html#a428a3df67f852563e25a040e41f3aef9", null ],
     [ "operator+=", "structflatbuffers_1_1_vector_iterator.html#a368b4ee9b89ab783045f96a2f69dec67", null ],
-    [ "operator-", "structflatbuffers_1_1_vector_iterator.html#aa7bd6c57906c8263d184750296d4d4b4", null ],
+    [ "operator-", "structflatbuffers_1_1_vector_iterator.html#a9418ef8352fb8010aa2173a46220225c", null ],
     [ "operator-", "structflatbuffers_1_1_vector_iterator.html#a5d2754d1859696e7a6d43e74d4f9ae29", null ],
     [ "operator--", "structflatbuffers_1_1_vector_iterator.html#ae33269dea219a9a690f00c23d67c0208", null ],
     [ "operator--", "structflatbuffers_1_1_vector_iterator.html#a105a4e408b45c324f2ad445f5145bf51", null ],
     [ "operator-=", "structflatbuffers_1_1_vector_iterator.html#af17653cb8a120a9bbd35dcb35a570729", null ],
-    [ "operator->", "structflatbuffers_1_1_vector_iterator.html#af0e098e805b8a387a108e0d156145329", null ],
-    [ "operator<", "structflatbuffers_1_1_vector_iterator.html#a7da0129573fc128410b7f0d5f2994301", null ],
+    [ "operator->", "structflatbuffers_1_1_vector_iterator.html#a78eb60f8754af75c1b2b5e0d8710ae6c", null ],
+    [ "operator<", "structflatbuffers_1_1_vector_iterator.html#a3f537a771b03e39218f7c77df9a243c8", null ],
     [ "operator=", "structflatbuffers_1_1_vector_iterator.html#a4b0747db5a2080cf4bd8bdbdeb1ceda2", null ],
     [ "operator=", "structflatbuffers_1_1_vector_iterator.html#aaf71b80a66b9d7f5220e1cd4d2b27b3c", null ],
-    [ "operator==", "structflatbuffers_1_1_vector_iterator.html#af7d486593808b4d955cb5f8d424d18ee", null ]
+    [ "operator==", "structflatbuffers_1_1_vector_iterator.html#ab8f96b2057c464d22dd03286ee8af5c0", null ]
 ];
\ No newline at end of file
diff --git a/tabs.css b/tabs.css
index 9cf578f23a154ff026365d61ea59013ad431466b..85a0cd5b5857b5fc94039256cd05e133b7e3bd9d 100644
--- a/tabs.css
+++ b/tabs.css
@@ -1,60 +1 @@
-.tabs, .tabs2, .tabs3 {
-    background-image: url('tab_b.png');
-    width: 100%;
-    z-index: 101;
-    font-size: 13px;
-    font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif;
-}
-
-.tabs2 {
-    font-size: 10px;
-}
-.tabs3 {
-    font-size: 9px;
-}
-
-.tablist {
-    margin: 0;
-    padding: 0;
-    display: table;
-}
-
-.tablist li {
-    float: left;
-    display: table-cell;
-    background-image: url('tab_b.png');
-    line-height: 36px;
-    list-style: none;
-}
-
-.tablist a {
-    display: block;
-    padding: 0 20px;
-    font-weight: bold;
-    background-image:url('tab_s.png');
-    background-repeat:no-repeat;
-    background-position:right;
-    color: #283A5D;
-    text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
-    text-decoration: none;
-    outline: none;
-}
-
-.tabs3 .tablist a {
-    padding: 0 10px;
-}
-
-.tablist a:hover {
-    background-image: url('tab_h.png');
-    background-repeat:repeat-x;
-    color: #fff;
-    text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);
-    text-decoration: none;
-}
-
-.tablist li.current a {
-    background-image: url('tab_a.png');
-    background-repeat:repeat-x;
-    color: #fff;
-    text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);
-}
+.sm{position:relative;z-index:9999}.sm,.sm ul,.sm li{display:block;list-style:none;margin:0;padding:0;line-height:normal;direction:ltr;text-align:left;-webkit-tap-highlight-color:rgba(0,0,0,0)}.sm-rtl,.sm-rtl ul,.sm-rtl li{direction:rtl;text-align:right}.sm>li>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.sm-dox{background-image:url("tab_b.png")}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0 12px;padding-right:43px;font-family:"Lucida Grande","Geneva","Helvetica",Arial,sans-serif;font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:0 1px 1px rgba(255,255,255,0.9);color:#283a5d;outline:0}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a.current{color:#d23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace!important;text-align:center;text-shadow:none;background:rgba(255,255,255,0.5);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{-moz-border-radius:5px 5px 0 0;-webkit-border-radius:5px;border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{-moz-border-radius:0 0 5px 5px;-webkit-border-radius:0;border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox ul{background:rgba(162,162,162,0.1)}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:white;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media(min-width:768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-image:url("tab_b.png");line-height:36px}.sm-dox a span.sub-arrow{top:50%;margin-top:-2px;right:12px;width:0;height:0;border-width:4px;border-style:solid dashed dashed dashed;border-color:#283a5d transparent transparent transparent;background:transparent;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0 12px;background-image:url("tab_s.png");background-repeat:no-repeat;background-position:right;-moz-border-radius:0!important;-webkit-border-radius:0;border-radius:0!important}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a:hover span.sub-arrow{border-color:white transparent transparent transparent}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0}.sm-dox>li>ul:before,.sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent #fff transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:#fff;-moz-border-radius:5px!important;-webkit-border-radius:5px;border-radius:5px!important;-moz-box-shadow:0 5px 9px rgba(0,0,0,0.2);-webkit-box-shadow:0 5px 9px rgba(0,0,0,0.2);box-shadow:0 5px 9px rgba(0,0,0,0.2)}.sm-dox ul a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent #555;border-style:dashed dashed dashed solid}.sm-dox ul a,.sm-dox ul a:hover,.sm-dox ul a:focus,.sm-dox ul a:active,.sm-dox ul a.highlighted{color:#555;background-image:none;border:0!important;color:#555;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul a:hover span.sub-arrow{border-color:transparent transparent transparent white}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:#fff;height:36px}.sm-dox span.scroll-up:hover,.sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow,.sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #d23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#d23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow,.sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent #555 transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:#555 transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:12px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:12px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px!important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover,.sm-dox.sm-vertical a:focus,.sm-dox.sm-vertical a:active,.sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a.disabled{background-image:url("tab_b.png")}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before,.sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover,.sm-dox.sm-vertical ul a:focus,.sm-dox.sm-vertical ul a:active,.sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:#fff}}
\ No newline at end of file
diff --git a/usergroup0.html b/usergroup0.html
index d68afff28894a556bd8cdd4b1b78f60910d69193..67acaf3d21a4e67a3df3580f33a51e34f46ec1b6 100644
--- a/usergroup0.html
+++ b/usergroup0.html
@@ -4,23 +4,21 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <title>FlatBuffers: Programmer&#39;s Guide</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
 <link href="navtree.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
 <script type="text/javascript" src="navtree.js"></script>
 <script type="text/javascript">
   $(document).ready(initResizable);
-  $(window).load(resizeHeight);
 </script>
 <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
 <script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
-  $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,500italic,700,700italic|Roboto+Mono:400,700" rel="stylesheet">
 <link href="style.css" rel="stylesheet" type="text/css"/>
@@ -46,56 +44,19 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.7 -->
+<!-- Generated by Doxygen 1.8.13 -->
 <script type="text/javascript">
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </script>
-  <div id="navrow1" class="tabs">
-    <ul class="tablist">
-      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
-      <li class="current"><a href="usergroup0.html"><span>Programmer's&#160;Guide</span></a></li>
-      <li><a href="flatbuffers_support.html"><span>Platform&#160;/&#160;Language&#160;/&#160;Feature&#160;support</span></a></li>
-      <li><a href="flatbuffers_benchmarks.html"><span>Benchmarks</span></a></li>
-      <li><a href="flatbuffers_white_paper.html"><span>FlatBuffers&#160;white&#160;paper</span></a></li>
-      <li><a href="flatbuffers_internals.html"><span>FlatBuffers&#160;internals</span></a></li>
-      <li><a href="flatbuffers_grammar.html"><span>Grammar&#160;of&#160;the&#160;schema&#160;language</span></a></li>
-      <li><a href="usergroup2.html"><span>API&#160;Reference</span></a></li>
-      <li><a href="contributing.html"><span>Contributing</span></a></li>
-      <li>
-        <div id="MSearchBox" class="MSearchBoxInactive">
-        <span class="left">
-          <img id="MSearchSelect" src="search/mag_sel.png"
-               onmouseover="return searchBox.OnSearchSelectShow()"
-               onmouseout="return searchBox.OnSearchSelectHide()"
-               alt=""/>
-          <input type="text" id="MSearchField" value="Search" accesskey="S"
-               onfocus="searchBox.OnSearchFieldFocus(true)" 
-               onblur="searchBox.OnSearchFieldFocus(false)" 
-               onkeyup="searchBox.OnSearchFieldChange(event)"/>
-          </span><span class="right">
-            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
-          </span>
-        </div>
-      </li>
-    </ul>
-  </div>
-  <div id="navrow2" class="tabs2">
-    <ul class="tablist">
-      <li><a href="flatbuffers_guide_building.html"><span>Building</span></a></li>
-      <li><a href="flatbuffers_guide_tutorial.html"><span>Tutorial</span></a></li>
-      <li><a href="flatbuffers_guide_using_schema_compiler.html"><span>Using&#160;the&#160;schema&#160;compiler</span></a></li>
-      <li><a href="flatbuffers_guide_writing_schema.html"><span>Writing&#160;a&#160;schema</span></a></li>
-      <li><a href="flatbuffers_guide_use_cpp.html"><span>Use&#160;in&#160;C++</span></a></li>
-      <li><a href="flatbuffers_guide_use_c.html"><span>Use&#160;in&#160;C</span></a></li>
-      <li><a href="flatbuffers_guide_use_go.html"><span>Use&#160;in&#160;Go</span></a></li>
-      <li><a href="flatbuffers_guide_use_java_c-sharp.html"><span>Use&#160;in&#160;Java/C#</span></a></li>
-      <li><a href="flatbuffers_guide_use_javascript.html"><span>Use&#160;in&#160;JavaScript</span></a></li>
-      <li><a href="flatbuffers_guide_use_php.html"><span>Use&#160;in&#160;PHP</span></a></li>
-      <li><a href="flatbuffers_guide_use_python.html"><span>Use&#160;in&#160;Python</span></a></li>
-      <li><a href="flexbuffers.html"><span>Schema-less&#160;version</span></a></li>
-      <li><a href="usergroup1.html"><span>gRPC</span></a></li>
-    </ul>
-  </div>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -116,7 +77,7 @@ $(document).ready(function(){initNavTree('usergroup0.html','');});
      onmouseover="return searchBox.OnSearchSelectShow()"
      onmouseout="return searchBox.OnSearchSelectHide()"
      onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Properties</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+</div>
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
diff --git a/usergroup1.html b/usergroup1.html
index 7f8b497cabc1653794429f5eda8b19ce9962934e..74595578a72651f3af077a494dbf63a1b527071d 100644
--- a/usergroup1.html
+++ b/usergroup1.html
@@ -4,23 +4,21 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <title>FlatBuffers: gRPC</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
 <link href="navtree.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
 <script type="text/javascript" src="navtree.js"></script>
 <script type="text/javascript">
   $(document).ready(initResizable);
-  $(window).load(resizeHeight);
 </script>
 <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
 <script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
-  $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,500italic,700,700italic|Roboto+Mono:400,700" rel="stylesheet">
 <link href="style.css" rel="stylesheet" type="text/css"/>
@@ -46,61 +44,19 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.7 -->
+<!-- Generated by Doxygen 1.8.13 -->
 <script type="text/javascript">
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </script>
-  <div id="navrow1" class="tabs">
-    <ul class="tablist">
-      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
-      <li class="current"><a href="usergroup0.html"><span>Programmer's&#160;Guide</span></a></li>
-      <li><a href="flatbuffers_support.html"><span>Platform&#160;/&#160;Language&#160;/&#160;Feature&#160;support</span></a></li>
-      <li><a href="flatbuffers_benchmarks.html"><span>Benchmarks</span></a></li>
-      <li><a href="flatbuffers_white_paper.html"><span>FlatBuffers&#160;white&#160;paper</span></a></li>
-      <li><a href="flatbuffers_internals.html"><span>FlatBuffers&#160;internals</span></a></li>
-      <li><a href="flatbuffers_grammar.html"><span>Grammar&#160;of&#160;the&#160;schema&#160;language</span></a></li>
-      <li><a href="usergroup2.html"><span>API&#160;Reference</span></a></li>
-      <li><a href="contributing.html"><span>Contributing</span></a></li>
-      <li>
-        <div id="MSearchBox" class="MSearchBoxInactive">
-        <span class="left">
-          <img id="MSearchSelect" src="search/mag_sel.png"
-               onmouseover="return searchBox.OnSearchSelectShow()"
-               onmouseout="return searchBox.OnSearchSelectHide()"
-               alt=""/>
-          <input type="text" id="MSearchField" value="Search" accesskey="S"
-               onfocus="searchBox.OnSearchFieldFocus(true)" 
-               onblur="searchBox.OnSearchFieldFocus(false)" 
-               onkeyup="searchBox.OnSearchFieldChange(event)"/>
-          </span><span class="right">
-            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
-          </span>
-        </div>
-      </li>
-    </ul>
-  </div>
-  <div id="navrow2" class="tabs2">
-    <ul class="tablist">
-      <li><a href="flatbuffers_guide_building.html"><span>Building</span></a></li>
-      <li><a href="flatbuffers_guide_tutorial.html"><span>Tutorial</span></a></li>
-      <li><a href="flatbuffers_guide_using_schema_compiler.html"><span>Using&#160;the&#160;schema&#160;compiler</span></a></li>
-      <li><a href="flatbuffers_guide_writing_schema.html"><span>Writing&#160;a&#160;schema</span></a></li>
-      <li><a href="flatbuffers_guide_use_cpp.html"><span>Use&#160;in&#160;C++</span></a></li>
-      <li><a href="flatbuffers_guide_use_c.html"><span>Use&#160;in&#160;C</span></a></li>
-      <li><a href="flatbuffers_guide_use_go.html"><span>Use&#160;in&#160;Go</span></a></li>
-      <li><a href="flatbuffers_guide_use_java_c-sharp.html"><span>Use&#160;in&#160;Java/C#</span></a></li>
-      <li><a href="flatbuffers_guide_use_javascript.html"><span>Use&#160;in&#160;JavaScript</span></a></li>
-      <li><a href="flatbuffers_guide_use_php.html"><span>Use&#160;in&#160;PHP</span></a></li>
-      <li><a href="flatbuffers_guide_use_python.html"><span>Use&#160;in&#160;Python</span></a></li>
-      <li><a href="flexbuffers.html"><span>Schema-less&#160;version</span></a></li>
-      <li class="current"><a href="usergroup1.html"><span>gRPC</span></a></li>
-    </ul>
-  </div>
-  <div id="navrow2" class="tabs2">
-    <ul class="tablist">
-      <li><a href="flatbuffers_grpc_guide_use_cpp.html"><span>Use&#160;in&#160;C++</span></a></li>
-    </ul>
-  </div>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -121,7 +77,7 @@ $(document).ready(function(){initNavTree('usergroup1.html','');});
      onmouseover="return searchBox.OnSearchSelectShow()"
      onmouseout="return searchBox.OnSearchSelectHide()"
      onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Properties</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+</div>
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">
diff --git a/usergroup2.html b/usergroup2.html
index 56f8de9e586ddb03a07bffd6d428f3a0e50d15c7..4c40dd5b727b50bc7d4d502ed6ffd6387ac1aabb 100644
--- a/usergroup2.html
+++ b/usergroup2.html
@@ -4,23 +4,21 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.7"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
 <title>FlatBuffers: API Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
 <link href="navtree.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
 <script type="text/javascript" src="navtree.js"></script>
 <script type="text/javascript">
   $(document).ready(initResizable);
-  $(window).load(resizeHeight);
 </script>
 <link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
 <script type="text/javascript" src="search/search.js"></script>
-<script type="text/javascript">
-  $(document).ready(function() { searchBox.OnSelectItem(0); });
-</script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,400italic,500,500italic,700,700italic|Roboto+Mono:400,700" rel="stylesheet">
 <link href="style.css" rel="stylesheet" type="text/css"/>
@@ -46,45 +44,19 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.7 -->
+<!-- Generated by Doxygen 1.8.13 -->
 <script type="text/javascript">
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </script>
-  <div id="navrow1" class="tabs">
-    <ul class="tablist">
-      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
-      <li><a href="usergroup0.html"><span>Programmer's&#160;Guide</span></a></li>
-      <li><a href="flatbuffers_support.html"><span>Platform&#160;/&#160;Language&#160;/&#160;Feature&#160;support</span></a></li>
-      <li><a href="flatbuffers_benchmarks.html"><span>Benchmarks</span></a></li>
-      <li><a href="flatbuffers_white_paper.html"><span>FlatBuffers&#160;white&#160;paper</span></a></li>
-      <li><a href="flatbuffers_internals.html"><span>FlatBuffers&#160;internals</span></a></li>
-      <li><a href="flatbuffers_grammar.html"><span>Grammar&#160;of&#160;the&#160;schema&#160;language</span></a></li>
-      <li class="current"><a href="usergroup2.html"><span>API&#160;Reference</span></a></li>
-      <li><a href="contributing.html"><span>Contributing</span></a></li>
-      <li>
-        <div id="MSearchBox" class="MSearchBoxInactive">
-        <span class="left">
-          <img id="MSearchSelect" src="search/mag_sel.png"
-               onmouseover="return searchBox.OnSearchSelectShow()"
-               onmouseout="return searchBox.OnSearchSelectHide()"
-               alt=""/>
-          <input type="text" id="MSearchField" value="Search" accesskey="S"
-               onfocus="searchBox.OnSearchFieldFocus(true)" 
-               onblur="searchBox.OnSearchFieldFocus(false)" 
-               onkeyup="searchBox.OnSearchFieldChange(event)"/>
-          </span><span class="right">
-            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
-          </span>
-        </div>
-      </li>
-    </ul>
-  </div>
-  <div id="navrow2" class="tabs2">
-    <ul class="tablist">
-      <li><a href="modules.html"><span>APIs</span></a></li>
-      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
-    </ul>
-  </div>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -105,7 +77,7 @@ $(document).ready(function(){initNavTree('usergroup2.html','');});
      onmouseover="return searchBox.OnSearchSelectShow()"
      onmouseout="return searchBox.OnSearchSelectHide()"
      onkeydown="return searchBox.OnSearchSelectKey(event)">
-<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Properties</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+</div>
 
 <!-- iframe showing the search results (closed by default) -->
 <div id="MSearchResultsWindow">