Skip to content

Commit

Permalink
deploy: afb6a38
Browse files Browse the repository at this point in the history
  • Loading branch information
0x17 committed Feb 28, 2024
1 parent d40f4b5 commit da6bc48
Show file tree
Hide file tree
Showing 17 changed files with 621 additions and 523 deletions.
127 changes: 64 additions & 63 deletions classgdx_1_1TGXFileObj-members.html

Large diffs are not rendered by default.

99 changes: 95 additions & 4 deletions classgdx_1_1TGXFileObj.html
Original file line number Diff line number Diff line change
Expand Up @@ -400,6 +400,9 @@
<tr class="memitem:a353576e44e5c307a26726a870ec3f39d"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgdx_1_1TGXFileObj.html#a353576e44e5c307a26726a870ec3f39d">gdxDataWriteRawStart</a> (const char *SyId, const char *ExplTxt, int Dimen, int Typ, int UserInfo)</td></tr>
<tr class="memdesc:a353576e44e5c307a26726a870ec3f39d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Start writing a new symbol in raw mode. Returns zero if the operation is not possible. <a href="classgdx_1_1TGXFileObj.html#a353576e44e5c307a26726a870ec3f39d">More...</a><br /></td></tr>
<tr class="separator:a353576e44e5c307a26726a870ec3f39d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a897d023fd95a72cba77de901255a6073"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgdx_1_1TGXFileObj.html#a897d023fd95a72cba77de901255a6073">gdxDataWriteRawStartKeyBounds</a> (const char *SyId, const char *ExplTxt, int Dimen, int Typ, int UserInfo, const int *MinUELIndices, const int *MaxUELIndices)</td></tr>
<tr class="memdesc:a897d023fd95a72cba77de901255a6073"><td class="mdescLeft">&#160;</td><td class="mdescRight">Start writing a new symbol in raw mode with bounds for UEL key indices being known in advance. This helps potentially reducing the required storage for the keys as smaller integral datatypes can be used. Returns zero if the operation is not possible. <a href="classgdx_1_1TGXFileObj.html#a897d023fd95a72cba77de901255a6073">More...</a><br /></td></tr>
<tr class="separator:a897d023fd95a72cba77de901255a6073"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1fdceb4091918007f4a4ca7819a43c20"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgdx_1_1TGXFileObj.html#a1fdceb4091918007f4a4ca7819a43c20">gdxDataWriteStr</a> (const char **KeyStr, const double *Values)</td></tr>
<tr class="memdesc:a1fdceb4091918007f4a4ca7819a43c20"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write a data element in string mode. Each element string must follow the GAMS rules for unique elements. Returns zero if the operation is not possible. <a href="classgdx_1_1TGXFileObj.html#a1fdceb4091918007f4a4ca7819a43c20">More...</a><br /></td></tr>
<tr class="separator:a1fdceb4091918007f4a4ca7819a43c20"><td class="memSeparator" colspan="2">&#160;</td></tr>
Expand Down Expand Up @@ -2100,6 +2103,94 @@ <h2 class="memtitle"><span class="permalink"><a href="#a353576e44e5c307a26726a87
<dl class="section return"><dt>Returns</dt><dd>Non-zero if the operation is possible, zero otherwise. </dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classgdx_1_1TGXFileObj.html#a08479eba2a07e327828b96098fbe14a6" title="Write a data element in raw mode. Returns zero if the operation is not possible.">gdxDataWriteRaw</a>, <a class="el" href="classgdx_1_1TGXFileObj.html#a7f86b31fb404c071ada8b5a2c8e47bdf" title="Finish a write operation. Returns zero if the operation is not possible.">gdxDataWriteDone</a> </dd></dl>

</div>
</div>
<a id="a897d023fd95a72cba77de901255a6073" name="a897d023fd95a72cba77de901255a6073"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a897d023fd95a72cba77de901255a6073">&#9670;&#160;</a></span>gdxDataWriteRawStartKeyBounds()</h2>

<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int gdx::TGXFileObj::gdxDataWriteRawStartKeyBounds </td>
<td>(</td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>SyId</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>ExplTxt</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>Dimen</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>Typ</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>UserInfo</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const int *&#160;</td>
<td class="paramname"><em>MinUELIndices</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const int *&#160;</td>
<td class="paramname"><em>MaxUELIndices</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">

<p>Start writing a new symbol in raw mode with bounds for UEL key indices being known in advance. This helps potentially reducing the required storage for the keys as smaller integral datatypes can be used. Returns zero if the operation is not possible. </p>
<p >Raw mode flushes new records immediately to the GDX file (unlike mapped or string mode). The key indices for the record are provided as unique element numbers. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">SyId</td><td>Name of the symbol (up to 63 characters). The first character of a symbol must be a letter. Following symbol characters may be letters, digits, and underscores. Symbol names must be new and unique. </td></tr>
<tr><td class="paramname">ExplTxt</td><td>Explanatory text for the symbol (up to 255 characters). </td></tr>
<tr><td class="paramname">Dimen</td><td>Dimension of the symbol (up to 20). </td></tr>
<tr><td class="paramname">Typ</td><td>Type of the symbol (set=0, parameter=1, variable=2, equation=3, alias=4). </td></tr>
<tr><td class="paramname">UserInfo</td><td>User field value storing additional data; GAMS follows the following conventions: <table class="doxtable">
<tr>
<td>Type </td><td>Value(s) </td></tr>
<tr>
<td>Aliased Set </td><td>The symbol number of the aliased set, or zero for the universe </td></tr>
<tr>
<td>Set </td><td>Zero </td></tr>
<tr>
<td>Parameter </td><td>Zero </td></tr>
<tr>
<td>Variable </td><td>The variable type: binary=1, integer=2, positive=3, negative=4, free=5, sos1=6, sos2=7, semicontinous=8, semiinteger=9 </td></tr>
<tr>
<td>Equation </td><td>The equation type: eque=53, equg=54, equl=55, equn=56, equx=57, equc=58, equb=59 </td></tr>
</table>
</td></tr>
<tr><td class="paramname">MinUELIndices</td><td>Minimum UEL indices for each symbol dimension. Can help with shrinking storage for keys. </td></tr>
<tr><td class="paramname">MaxUELIndices</td><td>Maximum UEL indices for each symbol dimension. Can help with shrinking storage for keys. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Non-zero if the operation is possible, zero otherwise. </dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classgdx_1_1TGXFileObj.html#a08479eba2a07e327828b96098fbe14a6" title="Write a data element in raw mode. Returns zero if the operation is not possible.">gdxDataWriteRaw</a>, <a class="el" href="classgdx_1_1TGXFileObj.html#a7f86b31fb404c071ada8b5a2c8e47bdf" title="Finish a write operation. Returns zero if the operation is not possible.">gdxDataWriteDone</a> </dd></dl>

</div>
</div>
<a id="a1fdceb4091918007f4a4ca7819a43c20" name="a1fdceb4091918007f4a4ca7819a43c20"></a>
Expand Down Expand Up @@ -2628,7 +2719,7 @@ <h2 class="memtitle"><span class="permalink"><a href="#a44fec2813995c0fa49b83a08
<div class="line">std::cout &lt;&lt; <span class="stringliteral">&quot;Get domain count = &quot;</span> &lt;&lt; cnt &lt;&lt; std::endl;</div>
<div class="line">pgx.gdxGetDomainElements(1, 1, 7, DataDomainCB, cnt);</div>
<div class="line">std::cout &lt;&lt; <span class="stringliteral">&quot;Using filter 7; number of records in error list = &quot;</span> &lt;&lt; <a class="code hl_function" href="classgdx_1_1TGXFileObj.html#aaae21ed2293db76cdbd05dd06a94a775">gdxDataErrorCount</a>(PGX) &lt;&lt; std::endl;</div>
<div class="ttc" id="aclassgdx_1_1TGXFileObj_html_aaae21ed2293db76cdbd05dd06a94a775"><div class="ttname"><a href="classgdx_1_1TGXFileObj.html#aaae21ed2293db76cdbd05dd06a94a775">gdx::TGXFileObj::gdxDataErrorCount</a></div><div class="ttdeci">int gdxDataErrorCount() const</div><div class="ttdoc">Query the number of error records.</div><div class="ttdef"><b>Definition:</b> gxfile.cpp:2131</div></div>
<div class="ttc" id="aclassgdx_1_1TGXFileObj_html_aaae21ed2293db76cdbd05dd06a94a775"><div class="ttname"><a href="classgdx_1_1TGXFileObj.html#aaae21ed2293db76cdbd05dd06a94a775">gdx::TGXFileObj::gdxDataErrorCount</a></div><div class="ttdeci">int gdxDataErrorCount() const</div><div class="ttdoc">Query the number of error records.</div><div class="ttdef"><b>Definition:</b> gxfile.cpp:2139</div></div>
</div><!-- fragment --> </dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classgdx_1_1TGXFileObj.html#a36c5e9b87188458bfca1d08e4595f4d7" title="Retrieve an error record. Non-zero if the record number is valid.">gdxDataErrorRecord</a> </dd></dl>

Expand Down Expand Up @@ -2942,7 +3033,7 @@ <h2 class="memtitle"><span class="permalink"><a href="#a52f09635e83e11b65dcfdcbd
<div class="line"><span class="keywordflow">if</span>(ErrCode) {</div>
<div class="line"> [ ... ]</div>
<div class="line">}</div>
<div class="ttc" id="aclassgdx_1_1TGXFileObj_html_a52f09635e83e11b65dcfdcbd617f0600"><div class="ttname"><a href="classgdx_1_1TGXFileObj.html#a52f09635e83e11b65dcfdcbd617f0600">gdx::TGXFileObj::gdxOpenAppend</a></div><div class="ttdeci">int gdxOpenAppend(const char *FileName, const char *Producer, int &amp;ErrNr)</div><div class="ttdoc">Open an existing GDX file for output. Non-zero if the file can be opened, zero otherwise.</div><div class="ttdef"><b>Definition:</b> gxfile.cpp:3409</div></div>
<div class="ttc" id="aclassgdx_1_1TGXFileObj_html_a52f09635e83e11b65dcfdcbd617f0600"><div class="ttname"><a href="classgdx_1_1TGXFileObj.html#a52f09635e83e11b65dcfdcbd617f0600">gdx::TGXFileObj::gdxOpenAppend</a></div><div class="ttdeci">int gdxOpenAppend(const char *FileName, const char *Producer, int &amp;ErrNr)</div><div class="ttdoc">Open an existing GDX file for output. Non-zero if the file can be opened, zero otherwise.</div><div class="ttdef"><b>Definition:</b> gxfile.cpp:3429</div></div>
</div><!-- fragment --> </dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classgdx_1_1TGXFileObj.html#a4a3b3e0ffdf3bbb17070e43ba7e98408" title="Open a GDX file for reading. Non-zero if the file can be opened, zero otherwise.">gdxOpenRead</a>, <a class="el" href="classgdx_1_1TGXFileObj.html#ae53f311244734378f4de7c9c7eafdf67" title="Open a new GDX file for output. Non-zero if the file can be opened, zero otherwise.">gdxOpenWrite</a>, <a class="el" href="classgdx_1_1TGXFileObj.html#a3a1538da866ff406cc50477f6bcdc63c" title="Create a GDX file for writing with explicitly given compression flag. Non-zero if the file can be ope...">gdxOpenWriteEx</a> </dd></dl>

Expand Down Expand Up @@ -2988,7 +3079,7 @@ <h2 class="memtitle"><span class="permalink"><a href="#a4a3b3e0ffdf3bbb17070e43b
<div class="line"><span class="keywordflow">if</span>(ErrNr) {</div>
<div class="line"> [...]</div>
<div class="line">}</div>
<div class="ttc" id="aclassgdx_1_1TGXFileObj_html_a4a3b3e0ffdf3bbb17070e43ba7e98408"><div class="ttname"><a href="classgdx_1_1TGXFileObj.html#a4a3b3e0ffdf3bbb17070e43ba7e98408">gdx::TGXFileObj::gdxOpenRead</a></div><div class="ttdeci">int gdxOpenRead(const char *FileName, int &amp;ErrNr)</div><div class="ttdoc">Open a GDX file for reading. Non-zero if the file can be opened, zero otherwise.</div><div class="ttdef"><b>Definition:</b> gxfile.cpp:1718</div></div>
<div class="ttc" id="aclassgdx_1_1TGXFileObj_html_a4a3b3e0ffdf3bbb17070e43ba7e98408"><div class="ttname"><a href="classgdx_1_1TGXFileObj.html#a4a3b3e0ffdf3bbb17070e43ba7e98408">gdx::TGXFileObj::gdxOpenRead</a></div><div class="ttdeci">int gdxOpenRead(const char *FileName, int &amp;ErrNr)</div><div class="ttdoc">Open a GDX file for reading. Non-zero if the file can be opened, zero otherwise.</div><div class="ttdef"><b>Definition:</b> gxfile.cpp:1726</div></div>
</div><!-- fragment --> </dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classgdx_1_1TGXFileObj.html#ae53f311244734378f4de7c9c7eafdf67" title="Open a new GDX file for output. Non-zero if the file can be opened, zero otherwise.">gdxOpenWrite</a>, <a class="el" href="classgdx_1_1TGXFileObj.html#a35273506e085ef6d885f94724ca02b86" title="Returns the last error number or zero if there was no error. Calling this function will clear the las...">gdxGetLastError</a> </dd></dl>

Expand Down Expand Up @@ -3152,7 +3243,7 @@ <h2 class="memtitle"><span class="permalink"><a href="#a3a1538da866ff406cc50477f
<div class="line"><span class="keywordflow">if</span>(ErrCode) {</div>
<div class="line">[ ... ]</div>
<div class="line">}</div>
<div class="ttc" id="aclassgdx_1_1TGXFileObj_html_a3a1538da866ff406cc50477f6bcdc63c"><div class="ttname"><a href="classgdx_1_1TGXFileObj.html#a3a1538da866ff406cc50477f6bcdc63c">gdx::TGXFileObj::gdxOpenWriteEx</a></div><div class="ttdeci">int gdxOpenWriteEx(const char *FileName, const char *Producer, int Compr, int &amp;ErrNr)</div><div class="ttdoc">Create a GDX file for writing with explicitly given compression flag. Non-zero if the file can be ope...</div><div class="ttdef"><b>Definition:</b> gxfile.cpp:394</div></div>
<div class="ttc" id="aclassgdx_1_1TGXFileObj_html_a3a1538da866ff406cc50477f6bcdc63c"><div class="ttname"><a href="classgdx_1_1TGXFileObj.html#a3a1538da866ff406cc50477f6bcdc63c">gdx::TGXFileObj::gdxOpenWriteEx</a></div><div class="ttdeci">int gdxOpenWriteEx(const char *FileName, const char *Producer, int Compr, int &amp;ErrNr)</div><div class="ttdoc">Create a GDX file for writing with explicitly given compression flag. Non-zero if the file can be ope...</div><div class="ttdef"><b>Definition:</b> gxfile.cpp:402</div></div>
</div><!-- fragment --> </dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classgdx_1_1TGXFileObj.html#a4a3b3e0ffdf3bbb17070e43ba7e98408" title="Open a GDX file for reading. Non-zero if the file can be opened, zero otherwise.">gdxOpenRead</a>, <a class="el" href="classgdx_1_1TGXFileObj.html#ae53f311244734378f4de7c9c7eafdf67" title="Open a new GDX file for output. Non-zero if the file can be opened, zero otherwise.">gdxOpenWrite</a>, <a class="el" href="classgdx_1_1TGXFileObj.html#ae0b2458fa7062edde0eedde8fc5ec40a" title="Returns the value of the AutoConvert variable and sets the variable to nv. When we close a new GDX fi...">gdxAutoConvert</a> </dd></dl>

Expand Down
1 change: 1 addition & 0 deletions classgdx_1_1TGXFileObj.js
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ var classgdx_1_1TGXFileObj =
[ "gdxDataWriteMapStart", "classgdx_1_1TGXFileObj.html#a7350fad4ba0a4010b6d53e62132937e6", null ],
[ "gdxDataWriteRaw", "classgdx_1_1TGXFileObj.html#a08479eba2a07e327828b96098fbe14a6", null ],
[ "gdxDataWriteRawStart", "classgdx_1_1TGXFileObj.html#a353576e44e5c307a26726a870ec3f39d", null ],
[ "gdxDataWriteRawStartKeyBounds", "classgdx_1_1TGXFileObj.html#a897d023fd95a72cba77de901255a6073", null ],
[ "gdxDataWriteStr", "classgdx_1_1TGXFileObj.html#a1fdceb4091918007f4a4ca7819a43c20", null ],
[ "gdxDataWriteStrStart", "classgdx_1_1TGXFileObj.html#a638d737c0364437390d5ffc731b31066", null ],
[ "gdxErrorCount", "classgdx_1_1TGXFileObj.html#ae3d45de882c24b8d2acdd47417bfc561", null ],
Expand Down
4 changes: 2 additions & 2 deletions datastorage_8h_source.html
Original file line number Diff line number Diff line change
Expand Up @@ -98,8 +98,8 @@
<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="comment">/*</span></div>
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="comment"> * GAMS - General Algebraic Modeling System GDX API</span></div>
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span><span class="comment"> *</span></div>
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="comment"> * Copyright (c) 2017-2023 GAMS Software GmbH &lt;[email protected]&gt;</span></div>
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="comment"> * Copyright (c) 2017-2023 GAMS Development Corp. &lt;[email protected]&gt;</span></div>
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="comment"> * Copyright (c) 2017-2024 GAMS Software GmbH &lt;[email protected]&gt;</span></div>
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="comment"> * Copyright (c) 2017-2024 GAMS Development Corp. &lt;[email protected]&gt;</span></div>
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span><span class="comment"> *</span></div>
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span><span class="comment"> * Permission is hereby granted, free of charge, to any person obtaining a copy</span></div>
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="comment"> * of this software and associated documentation files (the &quot;Software&quot;), to deal</span></div>
Expand Down
1 change: 1 addition & 0 deletions functions.html
Original file line number Diff line number Diff line change
Expand Up @@ -133,6 +133,7 @@ <h3><a id="index_g" name="index_g"></a>- g -</h3><ul>
<li>gdxDataWriteMapStart()&#160;:&#160;<a class="el" href="classgdx_1_1TGXFileObj.html#a7350fad4ba0a4010b6d53e62132937e6">gdx::TGXFileObj</a></li>
<li>gdxDataWriteRaw()&#160;:&#160;<a class="el" href="classgdx_1_1TGXFileObj.html#a08479eba2a07e327828b96098fbe14a6">gdx::TGXFileObj</a></li>
<li>gdxDataWriteRawStart()&#160;:&#160;<a class="el" href="classgdx_1_1TGXFileObj.html#a353576e44e5c307a26726a870ec3f39d">gdx::TGXFileObj</a></li>
<li>gdxDataWriteRawStartKeyBounds()&#160;:&#160;<a class="el" href="classgdx_1_1TGXFileObj.html#a897d023fd95a72cba77de901255a6073">gdx::TGXFileObj</a></li>
<li>gdxDataWriteStr()&#160;:&#160;<a class="el" href="classgdx_1_1TGXFileObj.html#a1fdceb4091918007f4a4ca7819a43c20">gdx::TGXFileObj</a></li>
<li>gdxDataWriteStrStart()&#160;:&#160;<a class="el" href="classgdx_1_1TGXFileObj.html#a638d737c0364437390d5ffc731b31066">gdx::TGXFileObj</a></li>
<li>gdxErrorCount()&#160;:&#160;<a class="el" href="classgdx_1_1TGXFileObj.html#ae3d45de882c24b8d2acdd47417bfc561">gdx::TGXFileObj</a></li>
Expand Down
1 change: 1 addition & 0 deletions functions_func.html
Original file line number Diff line number Diff line change
Expand Up @@ -133,6 +133,7 @@ <h3><a id="index_g" name="index_g"></a>- g -</h3><ul>
<li>gdxDataWriteMapStart()&#160;:&#160;<a class="el" href="classgdx_1_1TGXFileObj.html#a7350fad4ba0a4010b6d53e62132937e6">gdx::TGXFileObj</a></li>
<li>gdxDataWriteRaw()&#160;:&#160;<a class="el" href="classgdx_1_1TGXFileObj.html#a08479eba2a07e327828b96098fbe14a6">gdx::TGXFileObj</a></li>
<li>gdxDataWriteRawStart()&#160;:&#160;<a class="el" href="classgdx_1_1TGXFileObj.html#a353576e44e5c307a26726a870ec3f39d">gdx::TGXFileObj</a></li>
<li>gdxDataWriteRawStartKeyBounds()&#160;:&#160;<a class="el" href="classgdx_1_1TGXFileObj.html#a897d023fd95a72cba77de901255a6073">gdx::TGXFileObj</a></li>
<li>gdxDataWriteStr()&#160;:&#160;<a class="el" href="classgdx_1_1TGXFileObj.html#a1fdceb4091918007f4a4ca7819a43c20">gdx::TGXFileObj</a></li>
<li>gdxDataWriteStrStart()&#160;:&#160;<a class="el" href="classgdx_1_1TGXFileObj.html#a638d737c0364437390d5ffc731b31066">gdx::TGXFileObj</a></li>
<li>gdxErrorCount()&#160;:&#160;<a class="el" href="classgdx_1_1TGXFileObj.html#ae3d45de882c24b8d2acdd47417bfc561">gdx::TGXFileObj</a></li>
Expand Down
Loading

0 comments on commit da6bc48

Please sign in to comment.