<!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 ECA form.</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>
  <div id="text4">
    <p>
      You represent that the information provided below is accurate.
    </p> 
  </div>
</body>
</html>