<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://sdkwiki.wizarpos.com/index.php?action=history&amp;feed=atom&amp;title=Pinpad_interface.h</id>
	<title>Pinpad interface.h - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://sdkwiki.wizarpos.com/index.php?action=history&amp;feed=atom&amp;title=Pinpad_interface.h"/>
	<link rel="alternate" type="text/html" href="http://sdkwiki.wizarpos.com/index.php?title=Pinpad_interface.h&amp;action=history"/>
	<updated>2026-04-08T10:11:19Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.5</generator>
	<entry>
		<id>http://sdkwiki.wizarpos.com/index.php?title=Pinpad_interface.h&amp;diff=133&amp;oldid=prev</id>
		<title>Mahong at 03:40, 9 April 2018</title>
		<link rel="alternate" type="text/html" href="http://sdkwiki.wizarpos.com/index.php?title=Pinpad_interface.h&amp;diff=133&amp;oldid=prev"/>
		<updated>2018-04-09T03:40:53Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 03:40, 9 April 2018&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;  &amp;lt;syntaxhighlight lang=&quot;c&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   #ifndef PINPAD_INTERFACE_H_&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   #ifndef PINPAD_INTERFACE_H_&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   #define PINPAD_INTERFACE_H_&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   #define PINPAD_INTERFACE_H_&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l206&quot;&gt;Line 206:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 207:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   }&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   }&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   #endif&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   #endif&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;  &amp;lt;/syntaxhighlight&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key media_wiki-wk:diff::1.12:old-111:rev-133 --&gt;
&lt;/table&gt;</summary>
		<author><name>Mahong</name></author>
	</entry>
	<entry>
		<id>http://sdkwiki.wizarpos.com/index.php?title=Pinpad_interface.h&amp;diff=111&amp;oldid=prev</id>
		<title>Mahong: Created page with &quot;  #ifndef PINPAD_INTERFACE_H_   #define PINPAD_INTERFACE_H_      #define KEY_TYPE_DUKPT		0   #define KEY_TYPE_TDUKPT		1   #define KEY_TYPE_MASTER		2   #define KEY_TYPE_PUBLIC...&quot;</title>
		<link rel="alternate" type="text/html" href="http://sdkwiki.wizarpos.com/index.php?title=Pinpad_interface.h&amp;diff=111&amp;oldid=prev"/>
		<updated>2018-04-08T09:14:11Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;  #ifndef PINPAD_INTERFACE_H_   #define PINPAD_INTERFACE_H_      #define KEY_TYPE_DUKPT		0   #define KEY_TYPE_TDUKPT		1   #define KEY_TYPE_MASTER		2   #define KEY_TYPE_PUBLIC...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;  #ifndef PINPAD_INTERFACE_H_&lt;br /&gt;
  #define PINPAD_INTERFACE_H_&lt;br /&gt;
  &lt;br /&gt;
  #define KEY_TYPE_DUKPT		0&lt;br /&gt;
  #define KEY_TYPE_TDUKPT		1&lt;br /&gt;
  #define KEY_TYPE_MASTER		2&lt;br /&gt;
  #define KEY_TYPE_PUBLIC		3&lt;br /&gt;
  #define KEY_TYPE_FIX		5&lt;br /&gt;
  &lt;br /&gt;
  #ifdef __cplusplus&lt;br /&gt;
  extern &amp;quot;C&amp;quot; {&lt;br /&gt;
  #endif&lt;br /&gt;
  &lt;br /&gt;
  /*&lt;br /&gt;
   * open the device&lt;br /&gt;
   * return value : 0 : success&lt;br /&gt;
   * 				  &amp;lt; 0 : error code&lt;br /&gt;
   */&lt;br /&gt;
  typedef int (*pinpad_open)();&lt;br /&gt;
  /*&lt;br /&gt;
   * close the device&lt;br /&gt;
   * return value : 0 : success&lt;br /&gt;
   * 				  &amp;lt; 0 : error code&lt;br /&gt;
   */&lt;br /&gt;
  typedef int (*pinpad_close)();&lt;br /&gt;
  /*&lt;br /&gt;
   * show text in the first line&lt;br /&gt;
   * param[in] : int nLineIndex : line index, from top to down&lt;br /&gt;
   * param[in] : char* strText : encoded string&lt;br /&gt;
   * param[in] : int nLength : length of string&lt;br /&gt;
   * param[in] : int nFlagSound : 0 : no voice prompt, 1 : voice prompt&lt;br /&gt;
   * return value : &amp;lt; 0 : error code, maybe, your display string is too long!&lt;br /&gt;
   * 				  &amp;gt;= 0 : success&lt;br /&gt;
   *&lt;br /&gt;
   */&lt;br /&gt;
  typedef int (*pinpad_show_text)(int nLineIndex, char* strText, int nLength,&lt;br /&gt;
  		int nFlagSound);&lt;br /&gt;
  /*&lt;br /&gt;
   * select master key and user key&lt;br /&gt;
   * @param[in] : int nKeyType : 0 : dukpt, 1: Tdukpt, 2 : master key, 3 : public key, 4 : fix key&lt;br /&gt;
   * @param[in] : int nMasterKeyID : master key ID , [0x00, ..., 0x09], make sense only when nKeyType is master-session pair,&lt;br /&gt;
   * @param[in] : int nUserkeyID : user key ID, [0x00, 0x01], 		  make sense only when nKeyType is master-session pair,&lt;br /&gt;
   * @param[in] : int nAlgorith : 1 : 3DES&lt;br /&gt;
   * 							   0 : DES&lt;br /&gt;
   * return value : &amp;lt; 0 : error code&lt;br /&gt;
   * 				  &amp;gt;= 0 : success&lt;br /&gt;
   */&lt;br /&gt;
  typedef int (*pinpad_select_key)(int nKeyType, int nMasterKeyID, int nUserKeyID,&lt;br /&gt;
  		int nAlgorith);&lt;br /&gt;
  &lt;br /&gt;
  /*&lt;br /&gt;
   * encrypt string using user key&lt;br /&gt;
   * @param[in] : unsigned char* pPlainText : plain text&lt;br /&gt;
   * @param[in] : int nTextLength : length of plain text&lt;br /&gt;
   * @param[out] : unsigned char* pCipherTextBuffer : buffer for saving cipher text&lt;br /&gt;
   * @param[in] : int CipherTextBufferLength : length of cipher text buffer&lt;br /&gt;
   * return value : &amp;lt; 0 : error code&lt;br /&gt;
   * 				  &amp;gt;= 0 : success, length of cipher text length&lt;br /&gt;
   */&lt;br /&gt;
  typedef int (*pinpad_encrypt_string)(unsigned char* pPlainText, int nTextLength,&lt;br /&gt;
  		unsigned char* pCipherTextBuffer, int nCipherTextBufferLength);&lt;br /&gt;
  &lt;br /&gt;
  /*&lt;br /&gt;
   * calculate pin block&lt;br /&gt;
   * @param[in] : unsigned char* pASCIICardNumber : card number in ASCII format&lt;br /&gt;
   * @param[in] : int nCardNumberLength : length of card number&lt;br /&gt;
   * @param[out] : unsigned char* pPinBlockBuffer : buffer for saving pin block&lt;br /&gt;
   * @param[in] : int nPinBlockBufferLength : buffer length of pin block&lt;br /&gt;
   * @param[in] : int nTimeout_MS : timeout waiting for user input in milliseconds, if it is less than zero, then wait forever&lt;br /&gt;
   * param[in]   : int nFlagSound : 0 : no voice prompt, 1 : voice prompt&lt;br /&gt;
   * return value : &amp;lt; 0 : error code&lt;br /&gt;
   * 			      &amp;gt;= 0 : success, length of pin block&lt;br /&gt;
   */&lt;br /&gt;
  typedef int (*pinpad_calculate_pin_block)(unsigned char* pASCIICardNumber,&lt;br /&gt;
  		int nCardNumberLength, unsigned char* pPinBlockBuffer,&lt;br /&gt;
  		int nPinBlockBufferLength, int nTimeout_MS, int nFlagSound);&lt;br /&gt;
  &lt;br /&gt;
  /*&lt;br /&gt;
   * calculate the MAC using current user key&lt;br /&gt;
   * @param[in] : unsigned char* pData : data&lt;br /&gt;
   * @param[in] : int nDataLength : data length&lt;br /&gt;
   * @param[in] : int nMACFlag : 0: X99, 1 : ECB&lt;br /&gt;
   * @param[out] : unsigned char* pMACOut : MAC data buffer&lt;br /&gt;
   * @param[in] : int nMACOutBufferLength : length of MAC data buffer&lt;br /&gt;
   * return value : &amp;lt; 0 : error code&lt;br /&gt;
   * 				  &amp;gt;= 0 : success&lt;br /&gt;
   *&lt;br /&gt;
   */&lt;br /&gt;
  typedef int (*pinpad_calculate_mac)(unsigned char* pData, int nDataLength,&lt;br /&gt;
  		int nMACFlag, unsigned char* pMACOutBuffer, int nMACOutBufferLength);&lt;br /&gt;
  &lt;br /&gt;
  /*&lt;br /&gt;
   * update the user key&lt;br /&gt;
   * @param[in] : int nMasterKeyID : master key id&lt;br /&gt;
   * @param[in] : int nUserKeyID : user key id&lt;br /&gt;
   * @param[in] : unsigned char* pCipherNewUserkey : new user key in cipher text&lt;br /&gt;
   * @param[in] : int nCipherNewUserKeyLength : length of new user key in cipher text&lt;br /&gt;
   * return value : &amp;lt; 0 : error code&lt;br /&gt;
   * 				  &amp;gt;= 0 : success&lt;br /&gt;
   */&lt;br /&gt;
  typedef int (*pinpad_update_user_key)(int nMasterKeyID, int nUserKeyID,&lt;br /&gt;
  		unsigned char* pCipherNewUserKey, int nCipherNewUserKeyLength);&lt;br /&gt;
  &lt;br /&gt;
  /*&lt;br /&gt;
   * update the user key&lt;br /&gt;
   * @param[in] : int nMasterKeyID : master key id&lt;br /&gt;
   * @param[in] : int nUserKeyID : user key id&lt;br /&gt;
   * @param[in] : unsigned char* pCipherNewUserkey : new user key in cipher text&lt;br /&gt;
   * @param[in] : int nCipherNewUserKeyLength : length of new user key in cipher text&lt;br /&gt;
   * @param[in] : SESSION_KEY_USAGE : nKeyUsage&lt;br /&gt;
   * @param[in] : unsigned char* pCheckValue : check value of user key&lt;br /&gt;
   * @param[in] : int nCheckValueLen : length of check value, 4 bytes in general&lt;br /&gt;
   * return value : &amp;lt; 0 : error code&lt;br /&gt;
   *                   &amp;gt;= 0 : success&lt;br /&gt;
   */&lt;br /&gt;
  //typedef int (*pinpad_update_user_key_with_check)(int nMasterKeyID,&lt;br /&gt;
  //		int nUserKeyID, unsigned char *pCipherNewUserKey,&lt;br /&gt;
  //		int nCipherNewUserKeyLength, SESSION_KEY_USAGE nKeyUsge,&lt;br /&gt;
  //		unsigned char *pCheckValue, int nCheckValueLen);&lt;br /&gt;
  typedef int (*pinpad_update_user_key_with_check)(int nMasterKeyID,&lt;br /&gt;
  		int nUserKeyID, unsigned char *pCipherUserKey,&lt;br /&gt;
  		int nCipherNewUserKeyLenght, int nKeyUsge, unsigned char *pCheckValue,&lt;br /&gt;
  		int nCheckValueLen);&lt;br /&gt;
  &lt;br /&gt;
  /*&lt;br /&gt;
   * update the master key&lt;br /&gt;
   * @param[in] : int nMasterKeyID : master key ID&lt;br /&gt;
   * @param[in] : unsigned char* pOldKey, old key&lt;br /&gt;
   * @param[in] : int nOldKeyLength : length of old key, 8 or 16&lt;br /&gt;
   * @param[in] : unsigned char* pNewLey : new key&lt;br /&gt;
   * @param[in] : int nNewLeyLength : length of new key, 8 or 16&lt;br /&gt;
   * return value : &amp;lt; 0 : error code&lt;br /&gt;
   * 				  &amp;gt;= 0 : success&lt;br /&gt;
   */&lt;br /&gt;
  typedef int (*pinpad_update_master_key)(int nMasterKeyID,&lt;br /&gt;
  		unsigned char* pOldKey, int nOldKeyLength, unsigned char* pNewKey,&lt;br /&gt;
  		int nNewKeyLength);&lt;br /&gt;
  &lt;br /&gt;
  /*&lt;br /&gt;
   * set the max length of pin&lt;br /&gt;
   * @param[in] : int nLength : length &amp;gt;= 0 &amp;amp;&amp;amp; length &amp;lt;= 0x0D&lt;br /&gt;
   * @param[in] : int nFlag : 1, max length&lt;br /&gt;
   * 							0, min length&lt;br /&gt;
   * return value : &amp;lt; 0 : error code&lt;br /&gt;
   * 				  &amp;gt;= 0 : success&lt;br /&gt;
   */&lt;br /&gt;
  typedef int (*pinpad_set_pin_length)(int nLength, int nFlag);&lt;br /&gt;
  &lt;br /&gt;
  /*&lt;br /&gt;
   * get serial number&lt;br /&gt;
   * @param[out] : unsigned char* pData : serial number buffer&lt;br /&gt;
   * @param[in]  : unsigned int nBufferLength : length of serial number buffer&lt;br /&gt;
   * return value : &amp;lt; 0 : error code&lt;br /&gt;
   * 				  &amp;gt;= 0 : success, length of serial number&lt;br /&gt;
   */&lt;br /&gt;
  typedef int (*pinpad_get_serial_number)(unsigned char* pData,&lt;br /&gt;
  		unsigned int nBufferLength);&lt;br /&gt;
  &lt;br /&gt;
  // char count call back&lt;br /&gt;
  typedef void (*KEYEVENT_NOTIFIER)(int nCount, int nExtra);&lt;br /&gt;
  &lt;br /&gt;
  typedef int (*pinpad_set_pinblock_callback)(KEYEVENT_NOTIFIER);&lt;br /&gt;
  &lt;br /&gt;
  typedef int (*pinpad_update_cipher_master_key)(int nMasterKeyID,&lt;br /&gt;
  		unsigned char* pCipherMasterKey, int nCipherMasterKeyLen,&lt;br /&gt;
  		unsigned char *pCheckValue, int nCheckValueLen);&lt;br /&gt;
  &lt;br /&gt;
  typedef int (*pinpad_update_user_key_with_check_E)(int nMasterKeyID, int nUserKeyID,&lt;br /&gt;
  		unsigned char *pCipherNewUserKey, int nCipherNewUserKeyLength,&lt;br /&gt;
  		int nKeyUsge, unsigned char *pCheckValue, int nCheckValueLen,&lt;br /&gt;
  		int algoCheckValue);&lt;br /&gt;
  typedef int (*pinpad_update_cipher_master_key_E)(int nMasterKeyID,&lt;br /&gt;
  		unsigned char *pCipherMasterKey, int nCipherMasterKeyLen,&lt;br /&gt;
  		unsigned char *pCheckValue, int nCheckValueLen,&lt;br /&gt;
  		int algoCheckValue);&lt;br /&gt;
  /**&lt;br /&gt;
   * nFlag : 1 : yes&lt;br /&gt;
     nFlag : 0 : no&lt;br /&gt;
   */&lt;br /&gt;
  typedef int (*pinpad_set_flag_allow_bypass_pin)(unsigned int nFlag);&lt;br /&gt;
  &lt;br /&gt;
  /*&lt;br /&gt;
   * encrypt string using user key&lt;br /&gt;
   * @param[in] : unsigned char* pPlainText : plain text&lt;br /&gt;
   * @param[in] : int nTextLength : length of plain text&lt;br /&gt;
   * @param[out] : unsigned char* pCipherTextBuffer : buffer for saving cipher text&lt;br /&gt;
   * @param[in] : int CipherTextBufferLength : length of cipher text buffer&lt;br /&gt;
   * @param[in] : unsigned int nMode :&lt;br /&gt;
   *                    PINPAD_ENCRYPT_STRING_MODE_EBC  0&lt;br /&gt;
   *                    PINPAD_ENCRYPT_STRING_MODE_CBC    1&lt;br /&gt;
   *                    PINPAD_ENCRYPT_STRING_MODE_CFB    2&lt;br /&gt;
   *                    PINPAD_ENCRYPT_STRING_MODE_OFB    3&lt;br /&gt;
   * @param[in] : unsigned char* PIV : initial vector, only for CBC, CFB, OFB mode&lt;br /&gt;
   * @param[in] : unsigned int nIVLen : length of IV, must be equal to block length according to the algorithm&lt;br /&gt;
   * return value : &amp;lt; 0 : error code&lt;br /&gt;
   *                   &amp;gt;= 0 : success, length of cipher text length&lt;br /&gt;
   */&lt;br /&gt;
  typedef int (*pinpad_encrypt_string_with_mode)(unsigned char* pPlainText, int nTextLength, unsigned char* pCipherTextBuffer, int nCipherTextBufferLength,&lt;br /&gt;
  unsigned int nMode, unsigned char* pIV, unsigned int nIVLen);&lt;br /&gt;
  &lt;br /&gt;
  typedef int (*pinpad_get_hwserialno)(unsigned char* pData, unsigned int nBufferLength);&lt;br /&gt;
  &lt;br /&gt;
  typedef int (*pinpad_get_mac_for_snk)(unsigned char* pData, unsigned int nBufferLength, unsigned char* pRandomData, unsigned int nRandomDataLength, unsigned char* pMAB, unsigned int nMABLength);&lt;br /&gt;
  &lt;br /&gt;
  #ifdef __cplusplus&lt;br /&gt;
  }&lt;br /&gt;
  #endif&lt;/div&gt;</summary>
		<author><name>Mahong</name></author>
	</entry>
</feed>