Copyright (c) 2011 Petteri Aimonen &lt;jpa at nanopb.mail.kapsi.fi&gt;&#xA;&#xA;This software is provided &#39;as-is&#39;, without any express or &#xA;implied warranty. In no event will the authors be held liable &#xA;for any damages arising from the use of this software.&#xA;&#xA;Permission is granted to anyone to use this software for any &#xA;purpose, including commercial applications, and to alter it and &#xA;redistribute it freely, subject to the following restrictions:&#xA;&#xA;1. The origin of this software must not be misrepresented; you &#xA;   must not claim that you wrote the original software. If you use &#xA;   this software in a product, an acknowledgment in the product &#xA;   documentation would be appreciated but is not required.&#xA;&#xA;2. Altered source versions must be plainly marked as such, and &#xA;   must not be misrepresented as being the original software.&#xA;&#xA;3. This notice may not be removed or altered from any source &#xA;   distribution.&#xA;