<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<html>
<head>
<title>About</title>
<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
</head>
<body lang="EN-US">
<h2>About This Content</h2>
 
<p>May 11, 2006</p>	
<h3>License</h3>

<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
indicated below, the Content is provided to you under the terms and conditions of the
Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>

<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
apply to your use of any object code in the Content.  Check the Redistributor's license that was 
provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
indicated below, the terms and conditions of the EPL still apply to any source code in the Content
and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>

<h3>Third Party Content</h3>

<p>The Content includes items that have been sourced from third parties as follows:</p>

<p><b>OSGi Materials</b></p>

<p>All files in the following sub-directories (and their sub-directories):</p>

<ul>
 <li>org/osgi</li>
</ul>

<p>shall be defined as the &quot;OSGi Materials.&quot;  The OSGi Materials are:</p>

<blockquote>
Copyright (c) 2000, 2005
<br /><br />
OSGi Alliance
Bishop Ranch 6<br/>
2400 Camino Ramon, Suite 375<br/>
San Ramon, CA 94583 USA
<br /><br />
All Rights Reserved.
</blockquote>

<p>The OSGi Materials are provided to you under the terms and conditions of the
Eclipse Public License Version 1.0 (&quot;EPL&quot;).  For purposes of the EPL, &quot;Program&quot; will mean the OSGi Materials.</p>

<p>Implementation of certain elements of the OSGi Materials may be subject to third party intellectual property rights, including without limitation, patent rights (such a third party may
or may not be a member of the OSGi Alliance).  The OSGi Alliance and its members are not responsible and shall not be held responsible in any manner for identifying or failing to identify any or all such third party
intellectual property rights.</p>

<small>OSGi&trade; is a trademark, registered trademark, or service mark of The OSGi Alliance in the US and other countries. Java is a trademark,
registered trademark, or service mark of Sun Microsystems, Inc. in the US and other countries. All other trademarks, registered trademarks, or
service marks used in the Content are the property of their respective owners and are hereby recognized.</small>

<small>Java and all Java-based trademarks and logos are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and other countries.</small>

</body>
</html>
