# Notices for Eclipse Plug-in Development Environment

This content is produced and maintained by the Eclipse Plug-in Development
Environment project.

* Project home: https://projects.eclipse.org/projects/eclipse.pde

## Trademarks

Eclipse Plug-in Development Environment, Plug-in Development Environment,
Eclipse PDE, and PDE are trademarks of the Eclipse Foundation.

## Copyright

All content is the property of the respective authors or their employers. For
more information regarding authorship of content, please consult the listed
source code repository logs.

## Declared Project Licenses

This program and the accompanying materials are made available under the terms
of the Eclipse Public License v. 2.0 which is available at
http://www.eclipse.org/legal/epl-2.0.

SPDX-License-Identifier: EPL-2.0

## Source Code

The project maintains the following source code repositories:

* http://git.eclipse.org/c/pde/eclipse.pde.ui.git
* http://git.eclipse.org/c/pde/eclipse.pde.build.git