Yahoo! DomainKeys Patent License Agreement v1.2

Copyright (c) 2006, Yahoo! Inc.
All rights reserved.

This Yahoo! DomainKeys Patent License Agreement (this "Agreement") is
between Yahoo! Inc. ("Yahoo!") and you ("Licensee"). By attempting to
exercise any rights granted under this Agreement, Licensee agrees to be
bound by all the terms and conditions set forth below, and subject to those
terms and conditions, Licensee may use the intellectual property described
below.

1. LICENSE GRANT.

1.1. Subject to the terms and conditions of this Agreement, Licensor hereby
grants You a royalty-free, perpetual, worldwide, sublicensable,
non-exclusive license under its rights to the Yahoo! Patent Claims to make,
use, sell, offer for sale, and/or import Implementations.

2. DEFINITIONS.

2.1. "DomainKeys Developer(s)" means Yahoo, Inc. ("Yahoo!"), Licensor,
and/or any other individual or entity who distributes Implementations under
this Agreement.

2.2. "Implementations" means the specific portions of a hardware or
software implementation expressly required to be compliant with the
Specifications for the sole purpose of a sender verification solution in
connection with e-mail.

2.3. "Licensor" means Yahoo! or any other individual or entity that elects
to use this Agreement to license Yahoo! Patent Claims to any licensee.

2.4. "Specifications" means the specification having submission ID
"draft-delany-domainkeys-base-01.txt" dated Aug 2004 published through the
IETF (Internet Engineering Task Force). The Specifications may be found at
the following link:
http://antispam.yahoo.com/domainkeys/draft-delany-domainkeys-base-01.txt

2.5. "Yahoo! Patent Claims" shall mean those claims of all Yahoo! foreign
and domestic patents and patent applications that base their priority on
U.S. Provisional Patent Application Ser. Nos. 60/497,794, filed Aug. 26,
2003, or 60/553,300, filed Mar. 15, 2004, or U.S. Patent Application Ser.
Nos. 10/671,319, filed Sep. 24, 2003, or 10/805,181, filed Mar. 19, 2004.

2.6. "You" or "Your" means an individual, company, or other legal entity
exercising any rights under this Agreement. Any individual who accepts the
terms and conditions of this Agreement on behalf of a company or other
legal entity represents and warrants that the individual has the authority
to enter into this Agreement on behalf of the company or other legal
entity.

3. TERMS.

3.1. You agree not to assert against Yahoo!, any other DomainKeys Developer
or any of their respective licensees under Section 3.4, a patent
infringement claim based on the manufacture, use, sale, offer for sale
and/or importation of any Implementations ("Implementation IP Claim").

3.2. To indicate your assent to the terms and conditions of this Agreement
and in order to obtain a license to make, use, sell, offer for sale, and/or
import Implementations, You must include, attach or preserve the following
prominently displayed statement in the source code and object code of any
such Implementations: "This code incorporates intellectual property owned
by Yahoo! and licensed pursuant to the Yahoo! DomainKeys Patent License
Agreement.".

3.3. You will not use the name of Yahoo! to endorse or promote any
products, services, or Implementations without specific prior written
permission of Yahoo!. "DomainKeys" is a trademark of Yahoo!. However, You
may state Your Implementations are "DomainKeys compliant", "supports
DomainKeys", or is "DomainKeys-enabled", without citation to Yahoo!. You
must create Your own product or service names or trademarks for Your
Implementations and You agree not to use the term "DomainKeys" in or as
part of a name or trademark for Your Implementations.

3.4. You may choose to distribute Implementations under this Agreement or a
different agreement, provided that:

  (a) a copy of this Agreement or the different agreement is included with
  each Implementation along with the following prominently displayed
  statement: "By making, using, selling, offering for sale, importing,
  and/or sublicensing Implementations as permitted, you agree to the terms
  and conditions of the Yahoo! DomainKeys Patent License Agreement or
  other agreement contained herein."; and

  (b) if distributed under a different agreement, such different agreement
  contains terms and conditions that (i) provide no fewer rights,
  privileges and immunities to DomainKeys Developers than the terms and
  conditions of this Agreement, including, without limitation, Sections
  1.1, 3.1, 3.4, 3.7, 4.1, 4.2, and 4.3.

3.5. You acknowledge that implementations of the Specifications may be
subject to U.S. export restriction and other applicable national and
international laws. You agree to comply with all export, re-export, or
import restrictions, laws, or regulations.

3.6. Yahoo!, and only Yahoo!, may, from time to time and at its sole
discretion, update or modify the terms of this Agreement. If Yahoo! makes
any such modifications, You may continue under the terms and conditions of
this Agreement or agree to the updated or modified terms and conditions.
For the most recent version of this Agreement please contact Yahoo!.

3.7. This Agreement and the rights hereunder will terminate:

  (a) automatically without notice from Yahoo!, if You at any time during
  the term of this Agreement assert any Implementation IP Claim against
  Yahoo!;

  (b) upon written notice from Yahoo!, if You at any time during the term
  of this Agreement assert any Implementation IP Claim against any
  DomainKeys Developer (other than Yahoo!) or any licensees of any
  DomainKeys Developer; or

  (c) where (a) or (b) do not apply, automatically without notice from
  Yahoo!, if You fail to comply with any term(s) of this Agreement and
  fail to cure such breach within 30 days of You becoming aware of such
  breach.

3.8. This Agreement constitutes the entire agreement between the parties
with respect to the subject matter hereof. This Agreement shall be governed
by and construed under the laws of the United States and the State of
California without giving effect to California conflict of law provisions
or to construction provisions favoring either party. All actions arising
out of or relating to this Agreement that involve Yahoo! as a party will be
adjudicated exclusively by the Superior Court of the State of California
for the County of Santa Clara or the United States District Court for the
Northern District of California.

3.9. In the event that any provision of this Agreement is deemed to be
invalid, such invalidity shall not affect the remainder of this Agreement.

4. LEGAL DISCLAIMERS.

4.1. THE YAHOO! PATENT CLAIMS, THIS AGREEMENT, THE DOMAINKEYS TRADEMARK,
AND THE SPECIFICATIONS ARE PROVIDED ON AN "AS IS" BASIS, WITHOUT
REPRESENTATIONS, WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR
IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY REPRESENTATIONS, WARRANTIES OR
CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of exercising any rights under this Agreement and using the
Specifications and the DomainKeys trademark and assume all risks associated
in connection therewith, including, but not limited to, the risks and costs
of program errors, compliance with applicable laws, damage to or loss of
data, programs or equipment, and unavailability or interruption of
operations.

4.2. You expressly acknowledge and agree that no assurances are provided by
DomainKeys Developers with respect to the validity of the Yahoo! Patent
Claims or that the Specifications, the DomainKeys trademark or any
implementations related to the Specifications or the DomainKeys trademark
do not infringe or misappropriate the patent, trademark or other
intellectual property rights of any other entity. DomainKeys Developers
disclaim any liability to You for claims brought by any other person or
entity based on infringement or misappropriation of intellectual property
rights or otherwise. As a condition to exercising the rights and licenses
granted hereunder, You hereby assume sole responsibility to secure any
other intellectual property rights needed.

4.3. DOMAINKEYS DEVELOPERS SHALL NOT HAVE ANY LIABILITY FOR ANY DIRECT,
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE EXERCISE
OF ANY RIGHTS UNDER THIS AGREEMENT, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGES, AND EVEN IF THE REMEDIES PROVIDED FOR IN THIS AGREEMENT FAIL
OF THEIR ESSENTIAL PURPOSE.
