Want to contribute? Great! First, read this page (including the small print at
the end).

### Before you contribute

**Before we can use your code, you must sign the [Google Individual Contributor
License
Agreement](https://developers.google.com/open-source/cla/individual?csw=1)
(CLA)**, which you can do online.

The CLA is necessary mainly because you own the copyright to your changes, even
after your contribution becomes part of our codebase, so we need your permission
to use and distribute your code. We also need to be sure of various other things
— for instance that you'll tell us if you know that your code infringes on other
people's patents. You don't have to sign the CLA until after you've submitted
your code for review and a member has approved it, but you must do it before we
can put your code into our codebase.

Before you start working on a larger contribution, you should get in touch with
us first. Use the issue tracker to explain your idea so we can help and possibly
guide you.

### Code reviews and other contributions.

**All submissions, including submissions by project members, require review.**
Please follow the instructions in [the patching guide](/patching.md).

### The small print

Contributions made by corporations are covered by a different agreement than the
one above, the [Software Grant and Corporate Contributor License
Agreement](https://cla.developers.google.com/about/google-corporate).
