<!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/html; charset=ISO-8859-1" />
  <title>Eclipse Contributor Agreement</title>
</head>
<body lang="EN-US">
  <div id="text1">
    <h1>Eclipse Contributor Agreement</h1>
    <p>Version 2.0.0&nbsp;&nbsp;&nbsp;August 22, 2016</p>

    <p id="reference">
      <strong>This is a reference copy of the terms of the Eclipse Contributor Agreement. 
      To actually complete and submit an ECA, please go to the <a href="https://accounts.eclipse.org/user/eca">ECA form</a>.</strong>
    </p>

    <p>
      Thank you for your interest in one or more projects managed by the Eclipse Foundation, Inc. 
      (&quot;Eclipse Foundation&quot;). In order for You (as defined below) to make intellectual 
      property Contributions (as defined below) now or in the future to Eclipse Foundation projects, 
      You must agree to this Eclipse Contributor Agreement (&quot;ECA&quot;). If You have any 
      questions about this agreement, licensing, or anything related to intellectual property at the 
      Eclipse Foundation, please send an email to <a href="mailto:license@eclipse.org">license@eclipse.org</a>.
    </p>

    <p>
      Please read this ECA carefully before accepting its terms. By accepting the ECA, You are agreeing 
      to be bound by its terms. If You want to accept this ECA, complete the form completely, print a 
      copy for Your records, and when ready, press the &ldquo;Accept&rdquo; button at the end of this form.
    </p>

    <p>
      As used in this ECA: (i) &ldquo;You&quot; (or &quot;Your&quot;) shall mean the entity that is
      making this Agreement with the Eclipse Foundation; (ii)&quot;Contribution&quot; shall mean any
      original work of authorship, including any modifications or additions to an existing work, that
      is submitted by You to the Eclipse Foundation for inclusion in, or documentation of, any of the 
      Eclipse Foundation projects; and (iii) &ldquo;Submit&rdquo; (or &ldquo;Submitted&rdquo;) means 
      any form of communication sent to the Eclipse Foundation (e.g. the content You post on electronic 
      mailing lists, forums, content management systems, source code control systems, code review systems, 
      issue tracking systems, etc. that are used by the Eclipse Foundation).
    </p>

    <p>
      This agreement applies to all Contributions You Submit.
    </p>

    <p>
      This ECA, and the license(s) associated with the particular Eclipse Foundation projects 
      You are contributing to, provides a license to Your Contributions to the Eclipse Foundation 
      and downstream consumers, but You still own Your Contributions, and except for the licenses 
      provided for in this ECA, You reserve all right, title and interest in Your Contributions.
    </p>

    <p>
      The Eclipse Foundation requires that each Contribution You Submit now or in the future to comply 
      with the following commitments documented in the Developer Certificate of Origin (DCO). 
      To confirm that You have read and agreed to each, please click on the box beside each one.
    </p>
  </div>
  <div id="text2">
    <h2>Developer Certificate of Origin</h2>
    <p>Version 1.1</p>
  
    <p>
      Copyright (C) 2004, 2006 The Linux Foundation and its contributors.<br/> 
      660 York Street, Suite 102,<br/> 
      San Francisco, CA 94110 USA<br/> 
    </p>
  
    <p>
      Everyone is permitted to copy and distribute verbatim copies of this license document, 
      but changing it is not allowed.
    </p>
  
    <h3>Developer's Certificate of Origin 1.1</h3>
  
    <p>By making a contribution to this project, I certify that: </p>
  </div>

  <ol style="list-style-type: lower-alpha;">

    <li id="question1">
      The contribution was created in whole or in part by me and I have the right to submit
      it under the open source license indicated in the file or
    </li>

    <li id="question2">
      The contribution is based upon previous work that, to the best of my knowledge, is
      covered under an appropriate open source license and I have the right under that
      license to submit that work with modifications, whether created in whole or in part by
      me, under the same open source license (unless I am permitted to submit under a
      different license), as indicated in the file or 
    </li>

    <li id="question3">
      The contribution was provided directly to me by some other person who certified (a),
      (b) or (c) and I have not modified it.
    </li>

    <li id="question4">
      I understand and agree that this project and the contribution are public and that a
      record of the contribution (including all personal information I submit with it, including
      my signoff) is maintained indefinitely and may be redistributed consistent with this
      project or the open source license(s) involved.
    </li>
  </ol>
  <div id="text3">
    <p>
      You will promptly notify the Eclipse Foundation if You become aware of any facts or circumstances
      that would make these commitments inaccurate in any way. To do so, please send an email to 
      <a href="mailto:license@eclipse.org">license@eclipse.org</a>
    </p>
  
    <p>
      The Eclipse Foundation takes intellectual property very seriously, so we are going to ask 
      You to re&shy;-confirm this ECA every three years.
    </p> 
  </div>
</body>
</html>