<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html DIR="LTR">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="viewport" content="initial-scale=1.0">
<title>Google Chrome Terms of Service</title>
<style>
body { font-family:Arial; font-size:13px; }
h2 { font-size:1em; margin-top:0 }
</style>
</head>

<body>
<h2>Google Chrome Terms of Service</h2>
<p>These Terms of Service apply to the executable code version of Google Chrome. Source code for Google Chrome is available free of charge under open source software licence agreements at chrome://credits.</p>
<p><strong>1. Your relationship with Google</strong></p>
<p>1.1 Your use of Google’s products, software, services and websites (referred to collectively as the “Services” in this document and excluding any services provided to you by Google under a separate written agreement) is subject to the terms of a legal agreement between you and Google. “Google” means Google Inc., whose principal place of business is at 1600 Amphitheatre Parkway, Mountain View, CA 94043, United States. This document explains how the agreement is made up and sets out some of the terms of that agreement.</p>
<p>1.2 Unless otherwise agreed in writing with Google, your agreement with Google will always include, at a minimum, the terms and conditions set out in this document. These are referred to below as the “Universal Terms”. Open-source software licences for Google Chrome source code constitute separate written agreements. To the limited extent that the open-source software licences expressly supersede these Universal Terms, the open-source licences govern your agreement with Google for the use of Google Chrome or specific included components of Google Chrome.</p>
<p>1.3 Your agreement with Google will also include the terms set forth below in the Google Chrome Additional Terms of Service and terms of any Legal Notices applicable to the Services, in addition to the Universal Terms. All of these are referred to below as the “Additional Terms”. Where Additional Terms apply to a Service, these will be accessible for you to read either within or through your use of that Service.</p>
<p>1.4 The Universal Terms, together with the Additional Terms, form a legally binding agreement between you and Google in relation to your use of the Services. It is important that you take the time to read them carefully. Collectively, this legal agreement is referred to below as the “Terms”.</p>
<p>1.5 If there is any contradiction between what the Additional Terms say and what the Universal Terms say, then the Additional Terms shall take precedence in relation to that Service.</p>
<p><strong>2. Accepting the Terms</strong></p>
<p>2.1 In order to use the Services, you must first agree to the Terms. You may not use the Services if you do not accept the Terms.</p>
<p>2.2 You can accept the Terms by:</p>
<p>(A) clicking to accept or agree to the Terms, where this option is made available to you by Google in the user interface for any Service; or</p>
<p>(B) by actually using the Services. In this case, you understand and agree that Google will treat your use of the Services as acceptance of the Terms from that point onwards.</p>
<p><strong>3. Language of the Terms</strong></p>
<p>3.1 Where Google has provided you with a translation of the English-language version of the Terms, then you agree that the translation is provided for your convenience only and that the English-language versions of the Terms will govern your relationship with Google.</p>
<p>3.2 If there is any contradiction between what the English-language version of the Terms says and what a translation says, then the English-language version shall take precedence.</p>
<p><strong>4. Provision of the Services by Google</strong></p>
<p>4.1 Google has subsidiaries and affiliated legal entities around the world (“Subsidiaries and Affiliates”). Sometimes, these companies will be providing the Services to you on behalf of Google itself. You acknowledge and agree that Subsidiaries and Affiliates will be entitled to provide the Services to you.</p>
<p>4.2 Google is constantly innovating in order to provide the best possible experience for its users. You acknowledge and agree that the form and nature of the Services that Google provides may change from time to time, without prior notice to you.</p>
<p>4.3 As part of this continuing innovation, you acknowledge and agree that Google may stop (permanently or temporarily) providing the Services (or any features within the Services) to you or to users generally at Google’s sole discretion, without prior notice to you. You may stop using the Services at any time. You do not need to specifically inform Google when you stop using the Services.</p>
<p>4.4 You acknowledge and agree that if Google disables access to your account, you may be prevented from accessing the Services, your account details or any files or other content that is contained in your account.</p>
<p><strong>5. Use of the Services by you</strong></p>
<p>5.1 You agree to use the Services only for purposes that are permitted by (a) the Terms and (b) any applicable law, regulation or generally accepted practices or guidelines in the relevant jurisdictions (including any laws regarding the export of data or software to and from the United States or other relevant countries).</p>
<p>5.2 You agree that you will not engage in any activity that interferes with or disrupts the Services (or the servers and networks that are connected to the Services).</p>
<p>5.3 Unless you have been specifically permitted to do so in a separate agreement with Google, you agree that you will not reproduce, duplicate, copy, sell, trade or resell the Services for any purpose.</p>
<p>5.4 You agree that you are solely responsible for (and that Google has no responsibility to you or to any third party for) any breach of your obligations under the Terms and for the consequences (including any loss or damage that Google may suffer) of any such breach.</p>
<p><strong>6. Privacy and your personal information</strong></p>
<p>6.1 For information about Google’s data protection practices, please read Google’s privacy policy at http://www.google.com/privacy.html and at http://www.google.com/chrome/intl/en-GB/privacy.html. This policy explains how Google treats your personal information and protects your privacy when you use the Services.</p>
<p>6.2 You agree to the use of your data in accordance with Google’s privacy policies.</p>
<p><strong>7. Content in the Services</strong></p>
<p>7.1 You understand that all information (such as data files, written text, computer software, music, audio files or other sounds, photographs, videos or other images) that you may have access to as part of, or through your use of the Services are the sole responsibility of the person from which such content originated. All such information is referred to below as the “Content”.</p>
<p>7.2 You should be aware that Content presented to you as part of the Services, including, but not limited to advertisements in the Services and sponsored Content within the Services, may be protected by intellectual property rights that are owned by the sponsors or advertisers who provide that Content to Google (or by other persons or companies on their behalf). You may not modify, rent, lease, loan, sell, distribute or create derivative works based on this Content (either in whole or in part), unless you have been specifically told that you may do so by Google or by the owners of that Content, in a separate agreement.</p>
<p>7.3 Google reserves the right (but shall have no obligation) to prescreen, review, flag, filter, modify, refuse or remove any or all Content from any Service. For some of the Services, Google may provide tools to filter out explicit sexual content. These tools include the SafeSearch preference settings (see https://support.google.com/websearch/answer/510). In addition, there are commercially available services and software to limit access to material that you may find objectionable.</p>
<p>7.4 You understand that by using the Services, you may be exposed to Content that you may find offensive, indecent or objectionable and that, in this respect, you use the Services at your own risk.</p>
<p>7.5 You agree that you are solely responsible for (and that Google has no responsibility to you or to any third party for) any Content that you create, transmit or display while using the Services, and for the consequences of your actions (including any loss or damage that Google may suffer) by doing so.</p>
<p><strong>8. Proprietary rights</strong></p>
<p>8.1 You acknowledge and agree that Google (or Google’s licensors) own all legal right, title and interest in and to the Services, including any intellectual property rights which subsist in the Services (whether those rights happen to be registered or not, and wherever in the world those rights may exist).</p>
<p>8.2 Unless you have agreed otherwise in writing with Google, nothing in the Terms gives you a right to use any of Google’s trade names, trade marks, service marks, logos, domain names and other distinctive brand features.</p>
<p>8.3 If you have been given an explicit right to use any of these brand features in a separate written agreement with Google, then you agree that your use of such features shall be in compliance with that agreement, any applicable provisions of the Terms and Google's brand-feature use guidelines, as updated from time to time. These guidelines can be viewed online at http://www.google.co.uk/permissions/guidelines.html (or such other URL as Google may provide for this purpose from time to time).</p>
<p>8.4 Google acknowledges and agrees that it obtains no right, title or interest from you (or your licensors) under these Terms in or to any Content that you submit, post, transmit or display on or through the Services, including any intellectual property rights which subsist in that Content (whether those rights happen to be registered or not, and wherever in the world those rights may exist). Unless you have agreed otherwise in writing with Google, you agree that you are responsible for protecting and enforcing those rights and that Google has no obligation to do so on your behalf.</p>
<p>8.5 You agree that you shall not remove, obscure or alter any proprietary rights notices (including copyright and trade-mark notices) that may be affixed to or contained within the Services.</p>
<p>8.6 Unless you have been expressly authorised to do so in writing by Google, you agree that in using the Services, you will not use any trade mark, service mark, trade name, logo of any company or organisation in a way that is likely or intended to cause confusion about the owner or authorised user of such marks, names or logos.</p>
<p><strong>9. Licence from Google</strong></p>
<p>9.1 Google gives you a personal, worldwide, royalty-free, non-assignable and non-exclusive licence to use the software provided to you by Google as part of the Services provided to you by Google (referred to as the “Software” below). This licence is for the sole purpose of enabling you to use and enjoy the benefit of the Services as provided by Google, in the manner permitted by the Terms.</p>
<p>9.2 Subject to section 1.2, you may not (and you may not permit anyone else to) copy, modify, create a derivative work of, reverse-engineer, decompile or otherwise attempt to extract the source code of the Software or any part thereof, unless this is expressly permitted or required by law or unless you have been specifically told that you may do so by Google, in writing.</p>
<p>9.3 Subject to section 1.2, unless Google has given you specific written permission to do so, you may not assign (or grant a sub-licence of) your rights to use the Software, grant a security interest in or over your rights to use the Software, or otherwise transfer any part of your rights to use the Software.</p>
<p><strong>10. Content licence from you</strong></p>
<p>10.1 You retain copyright and any other rights that you already hold in Content which you submit, post or display on or through the Services.</p>
<p><strong>11. Software updates</strong></p>
<p>11.1 The Software that you use may download and install updates automatically, from time to time, from Google. These updates are designed to improve, enhance and further develop the Services and may take the form of bug fixes, enhanced functions, new software modules and completely new versions. You agree to receive such updates (and permit Google to deliver these to you) as part of your use of the Services.</p>
<p><strong>12. Ending your relationship with Google</strong></p>
<p>12.1 The Terms will continue to apply until terminated either by you or Google, as set out below.</p>
<p>12.2 Google may, at any time, terminate its legal agreement with you if:</p>
<p>(A) you have breached any provision of the Terms (or have acted in a manner that clearly shows that you do not intend to or are unable to comply with the provisions of the Terms); or</p>
<p>(B) Google is required to do so by law (for example, where the provision of the Services to you is or becomes unlawful); or</p>
<p>(C) the partner with whom Google offered the Services to you has terminated its relationship with Google or ceased to offer the Services to you; or</p>
<p>(D) Google is transitioning to no longer providing the Services to users in the country in which you are resident or from which you use the service; or</p>
<p>(E) the provision of the Services to you by Google is, in Google’s opinion, no longer commercially viable.</p>
<p>12.3 Nothing in this Section shall affect Google’s rights regarding provision of Services under Section 4 of the Terms.</p>
<p>12.4 When these Terms come to an end, all the legal rights, obligations and liabilities that you and Google have benefited from, been subject to (or which have accrued over time whilst the Terms have been in force), or which are expressed to continue indefinitely, shall be unaffected by this cessation, and the provisions of paragraph 19.7 shall continue to apply to such rights, obligations and liabilities indefinitely.</p>
<p><strong>13. EXCLUSION OF WARRANTIES</strong></p>
<p>13.1 NOTHING IN THESE TERMS, INCLUDING SECTIONS 13 AND 14, SHALL EXCLUDE OR LIMIT GOOGLE’S WARRANTY OR LIABILITY FOR LOSSES THAT MAY NOT BE LAWFULLY EXCLUDED OR LIMITED BY APPLICABLE LAW. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF CERTAIN WARRANTIES OR CONDITIONS, OR THE LIMITATION OR EXCLUSION OF LIABILITY FOR LOSS OR DAMAGE CAUSED BY NEGLIGENCE, BREACH OF CONTRACT OR BREACH OF IMPLIED TERMS, OR INCIDENTAL OR CONSEQUENTIAL DAMAGES. ACCORDINGLY, ONLY THE LIMITATIONS THAT ARE LAWFUL IN YOUR JURISDICTION WILL APPLY TO YOU AND OUR LIABILITY WILL BE LIMITED TO THE MAXIMUM EXTENT PERMITTED BY LAW.</p>
<p>13.2 YOU EXPRESSLY UNDERSTAND AND AGREE THAT YOUR USE OF THE SERVICES IS AT YOUR SOLE RISK AND THAT THE SERVICES ARE PROVIDED &quot;AS IS&quot; AND “AS AVAILABLE”.</p>
<p>13.3 IN PARTICULAR, GOOGLE, ITS SUBSIDIARIES AND AFFILIATES, AND ITS LICENSORS DO NOT REPRESENT OR WARRANT TO YOU THAT:</p>
<p>(A) YOUR USE OF THE SERVICES WILL MEET YOUR REQUIREMENTS,</p>
<p>(B) YOUR USE OF THE SERVICES WILL BE UNINTERRUPTED, TIMELY, SECURE OR FREE FROM ERROR,</p>
<p>(C) ANY INFORMATION OBTAINED BY YOU AS A RESULT OF YOUR USE OF THE SERVICES WILL BE ACCURATE OR RELIABLE, AND</p>
<p>(D) THAT DEFECTS IN THE OPERATION OR FUNCTIONALITY OF ANY SOFTWARE PROVIDED TO YOU AS PART OF THE SERVICES WILL BE CORRECTED.</p>
<p>13.4 ANY MATERIAL DOWNLOADED OR OTHERWISE OBTAINED THROUGH THE USE OF THE SERVICES IS DONE AT YOUR OWN DISCRETION AND RISK, AND YOU WILL BE SOLELY RESPONSIBLE FOR ANY DAMAGE TO YOUR COMPUTER SYSTEM OR OTHER DEVICE. OR LOSS OF DATA THAT RESULTS FROM THE DOWNLOAD OF ANY SUCH MATERIAL.</p>
<p>13.5 NO ADVICE OR INFORMATION, WHETHER ORAL OR WRITTEN, OBTAINED BY YOU FROM GOOGLE, OR THROUGH OR FROM THE SERVICES, SHALL CREATE ANY WARRANTY NOT EXPRESSLY STATED IN THE TERMS.</p>
<p>13.6 GOOGLE FURTHER EXPRESSLY DISCLAIMS ALL WARRANTIES AND CONDITIONS OF ANY KIND, WHETHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO THE IMPLIED WARRANTIES AND CONDITIONS OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.</p>
<p><strong>14. LIMITATION OF LIABILITY</strong></p>
<p>14.1 SUBJECT TO OVERALL PROVISION IN PARAGRAPH 13.1 ABOVE, YOU EXPRESSLY UNDERSTAND AND AGREE THAT GOOGLE, ITS SUBSIDIARIES AND AFFILIATES, AND ITS LICENSORS SHALL NOT BE LIABLE TO YOU FOR:</p>
<p>(A) ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, CONSEQUENTIAL OR EXEMPLARY DAMAGES THAT MAY BE INCURRED BY YOU, HOWEVER CAUSED AND UNDER ANY THEORY OF LIABILITY. THIS SHALL INCLUDE, BUT NOT BE LIMITED TO ANY LOSS OF PROFIT (WHETHER INCURRED DIRECTLY OR INDIRECTLY), ANY LOSS OF GOODWILL OR BUSINESS REPUTATION, ANY LOSS OF DATA SUFFERED, COST OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR OTHER INTANGIBLE LOSS;</p>
<p>(B) ANY LOSS OR DAMAGE THAT MAY BE INCURRED BY YOU, INCLUDING BUT NOT LIMITED TO LOSS OR DAMAGE AS A RESULT OF:</p>
<p>(I) ANY RELIANCE PLACED BY YOU ON THE COMPLETENESS, ACCURACY OR EXISTENCE OF ANY ADVERTISING, OR AS A RESULT OF ANY RELATIONSHIP OR TRANSACTION BETWEEN YOU AND ANY ADVERTISER OR SPONSOR WHOSE ADVERTISING APPEARS ON THE SERVICES;</p>
<p>(II) ANY CHANGES THAT GOOGLE MAY MAKE TO THE SERVICES OR FOR ANY PERMANENT OR TEMPORARY CESSATION IN THE PROVISION OF THE SERVICES (OR ANY FEATURES WITHIN THE SERVICES);</p>
<p>(III) THE DELETION OF, CORRUPTION OF OR FAILURE TO STORE ANY CONTENT AND OTHER COMMUNICATIONS DATA MAINTAINED OR TRANSMITTED BY OR THROUGH YOUR USE OF THE SERVICES;</p>
<p>(IV) YOUR FAILURE TO PROVIDE GOOGLE WITH ACCURATE ACCOUNT INFORMATION;</p>
<p>(V) YOUR FAILURE TO KEEP YOUR PASSWORD OR ACCOUNT DETAILS SECURE AND CONFIDENTIAL;</p>
<p>14.2 THE LIMITATIONS ON GOOGLE’S LIABILITY TO YOU IN PARAGRAPH 14.1 ABOVE SHALL APPLY, WHETHER OR NOT GOOGLE HAS BEEN ADVISED OF OR SHOULD HAVE BEEN AWARE OF THE POSSIBILITY OF ANY SUCH LOSSES ARISING.</p>
<p><strong>15. Copyright and trade mark policies</strong></p>
<p>15.1 It is Google’s policy to respond to notices of alleged copyright infringement that comply with applicable international intellectual property law (including, in the United States, the Digital Millennium Copyright Act) and to terminate the accounts of repeated infringers. Details of Google’s policy can be found at http://www.google.co.uk/dmca.html.</p>
<p>15.2 Google operates a trade mark complaints procedure in respect of Google’s advertising business, details of which can be found at http://www.google.co.uk/tm_complaint.html.</p>
<p><strong>16. Advertisements</strong></p>
<p>16.1 Some of the Services are supported by advertising revenue and may display advertisements and promotions. These advertisements may be targeted to the content of information stored on the Services, queries made through the Services or other information.</p>
<p>16.2 The manner, mode and extent of advertising by Google on the Services are subject to change without specific notice to you.</p>
<p>16.3 In consideration for Google granting you access to and use of the Services, you agree that Google may place such advertising on the Services.</p>
<p><strong>17. Other content</strong></p>
<p>17.1 The Services may include hyperlinks to other websites, or content or resources. Google may have no control over any websites or resources that are provided by companies or persons other than Google.</p>
<p>17.2 You acknowledge and agree that Google is not responsible for the availability of any such external sites or resources and does not endorse any advertising, products or other materials on or available from such websites or resources.</p>
<p>17.3 You acknowledge and agree that Google is not liable for any loss or damage that may be incurred by you as a result of the availability of those external sites or resources, or as a result of any reliance placed by you on the completeness, accuracy or existence of any advertising, products or other materials on or available from such websites or resources.</p>
<p><strong>18. Changes to the Terms</strong></p>
<p>18.1 Google may make changes to the Universal Terms or Additional Terms from time to time. When these changes are made, Google will make a new copy of the Universal Terms available at http://www.google.com/chrome/intl/en-GB/eula_text.html and any new Additional Terms will be made available to you from within or through the affected Services.</p>
<p>18.2 You understand and agree that if you use the Services after the date on which the Universal Terms or Additional Terms have changed, Google will treat your use as acceptance of the updated Universal Terms or Additional Terms.</p>
<p><strong>19. General legal terms</strong></p>
<p>19.1 Sometimes, when you use the Services, you may (as a result of, or in connection with your use of the Services) use a service or download a piece of software, or purchase goods which are provided by another person or company. Your use of these other services, software or goods may be subject to separate terms between you and the company or person concerned. If so, the Terms do not affect your legal relationship with these other companies or individuals.</p>
<p>19.2 The Terms constitute the whole legal agreement between you and Google and govern your use of the Services (but exclude any services that Google may provide to you under a separate written agreement) and completely replace any prior agreements between you and Google in relation to the Services.</p>
<p>19.3 You agree that Google may provide you with notices, including those regarding changes to the Terms, by email, letter post or postings on the Services.</p>
<p>19.4 You agree that if Google does not exercise or enforce any legal right or remedy that is contained in the Terms (or which Google has the benefit of under any applicable law), this will not be taken to be a formal waiver of Google’s rights and that those rights or remedies will still be available to Google.</p>
<p>19.5 If any court of law, having the jurisdiction to decide on this matter, rules that any provision of these Terms is invalid, then that provision will be removed from the Terms without affecting the rest of the Terms. The remaining provisions of the Terms will continue to be valid and enforceable.</p>
<p>19.6 You acknowledge and agree that each member of the group of companies of which Google is the parent shall be third-party beneficiaries to the Terms and that such other companies shall be entitled to directly enforce and rely upon any provision of the Terms that confers a benefit on (or rights in favour of) them. Other than this, no other person or company shall be third-party beneficiaries to the Terms.</p>
<p>19.7 The Terms and your relationship with Google under the Terms shall be governed by the laws of the State of California, without regard to its conflict-of-laws provisions. You and Google agree to submit to the exclusive jurisdiction of the courts located within the county of Santa Clara, California to resolve any legal matter arising from the Terms. Notwithstanding this, you agree that Google shall still be allowed to apply for injunctive remedies (or an equivalent type of urgent legal relief) in any jurisdiction.</p>
<p><strong>20. Additional Terms for Extensions for Google Chrome</strong></p>
<p>20.1 These terms in this section apply if you install extensions on your copy of Google Chrome. Extensions are small software programmes, developed by Google or third parties that can modify and enhance the functionality of Google Chrome. Extensions may have greater privileges to access your browser or your computer than regular web pages, including the ability to read and modify your private data.</p>
<p>20.2 From time to time, Google Chrome may check with remote servers (hosted by Google or by third parties) for available updates to extensions, including, but not limited to bug fixes or enhanced functionality. You agree that such updates will be requested automatically, downloaded and installed without further notice to you.</p>
<p>20.3 From time to time, Google may discover an extension that violates Google developer terms or other legal agreements, laws, regulations or policies. Google Chrome will periodically download a list of such extensions from Google’s servers. You agree that Google may remotely disable or remove any such extension from user systems at its sole discretion. </p>
<p><strong>21. Additional Terms for Enterprise Use</strong></p>
<p>21.1 If you are a business entity, then the individual accepting on behalf of the entity (for the avoidance of doubt, for business entities, in these Terms, "you" means the entity) represents and warrants that he or she has the authority to act on your behalf, that you represent that you are duly authorised to do business in the country or countries where you operate and that your employees, officers, representatives and other agents accessing the Service are duly authorised to access Google Chrome and to legally bind you to these Terms.</p>
<p>21.2 Subject to the Terms and in addition to the licence grant in Section 9, Google grants you a non-exclusive, non-transferable licence to reproduce, distribute, install and use Google Chrome solely on machines intended for use by your employees, officers, representatives and agents in connection with your business entity, and provided that their use of Google Chrome will be subject to the Terms.</p>
<p>12 August 2010</p>
<br>
<hr>
<br>
<h2>Google Chrome Additional Terms of Service</h2>
<p><strong>MPEGLA</strong></p>
<p>THIS PRODUCT IS LICENSED UNDER THE AVC PATENT PORTFOLIO LICENCE FOR THE PERSONAL AND NON-COMMERCIAL USE OF A CONSUMER TO (i) ENCODE VIDEO IN COMPLIANCE WITH THE AVC STANDARD (“AVC VIDEO”) AND/OR (ii) DECODE AVC VIDEO THAT WAS ENCODED BY A CONSUMER ENGAGED IN A PERSONAL AND NON-COMMERCIAL ACTIVITY AND/OR WAS OBTAINED FROM A VIDEO PARTNER LICENSED TO PROVIDE AVC VIDEO. NO LICENCE IS GRANTED OR SHALL BE IMPLIED FOR ANY OTHER USE. ADDITIONAL INFORMATION MAY BE OBTAINED FROM MPEG LA, L.L.C. SEE HTTP://WWW.MPEGLA.COM.</p>
<p><strong>Adobe</strong></p>
<p>Google Chrome may include one or more components provided by Adobe Systems Incorporated and Adobe Software Ireland Limited (collectively, “Adobe”). Your use of the Adobe software, as provided by Google (“Adobe Software”), is subject to the following additional terms (the “Adobe Terms”). You, the entity receiving the Adobe Software, will be hereinafter referred to as “Sublicensee”.</p>
<p>1. Licensing Restrictions.</p>
<p>(a) Flash Player, Version 10.x is designed only as a browser plugin. Sublicensee may not modify or distribute this Adobe Software for use as anything but a browser plugin for playing back content on a web page. For example, Sublicensee will not modify this Adobe Software in order to allow interoperation with applications that run outside the browser (e.g. stand-alone applications, widgets, device UI).</p>  
<p>(b) Sublicensee will not expose any APIs of the Flash Player, Version 10.x through a browser plugin interface in such a way that allows such extension to be used to play back content from a web page as a stand-alone application.</p>
<p>(c) The Chrome-Reader Software may not be used to render any PDF or EPUB documents that utilise digital-rights management protocols or systems other than Adobe DRM.</p>
<p>(d) Adobe DRM must be enabled in the Chrome-Reader Software for all Adobe DRM-protected PDF and EPUB documents.</p>
<p>(e) The Chrome-Reader Software may not, other than as explicitly permitted by the technical specifications, disable any capabilities provided by Adobe in the Adobe Software, including, but not limited to, support for PDF and EPUB formats and Adobe DRM.</p>
<p>2. Electronic Transmission. Sublicensee may allow the download of the Adobe Software from a website, the Internet, an intranet or similar technology (“Electronic Transmissions”), provided that Sublicensee agrees that any distributions of the Adobe Software by Sublicensee, including those on CD-ROM, DVD-ROM or other storage media and Electronic Transmissions, if expressly permitted, shall be subject to reasonable security measures to prevent unauthorised use. With relation to Electronic Transmissions approved hereunder, Sublicensee agrees to employ any reasonable usage restrictions set by Adobe, including those related to security and/or the restriction of distribution to end users of the Sublicensee's Product.</p>  
<p>3. EULA and Distribution Terms.</p>  
<p>(a) Sublicensee shall ensure that the Adobe Software is distributed to end users under an enforceable end-user licence agreement, in favour of Sublicensee and its suppliers, containing at least each of the following minimum terms (the “End-User Licence”): (i) a prohibition against distribution and copying, (ii) a prohibition against modifications and derivative works, (iii) a prohibition against decompiling, reverse-engineering, disassembling and otherwise reducing the Adobe Software to a human-perceivable form, (iv) a provision indicating ownership of Sublicensee's Product (as defined in Section 8) by Sublicensee and its licensors, (v) a disclaimer of indirect, special, incidental, punitive and consequential damages and (vi) other industry-standard disclaimers and limitations, including, as applicable: a disclaimer of all applicable statutory warranties, to the full extent allowed by law.</p>
<p>(b) Sublicensee shall ensure that the Adobe Software is distributed to Sublicensee’s distributors under an enforceable distribution licence agreement, in favour of Sublicensee and its suppliers, containing terms as protective of Adobe as the Adobe Terms.</p>  
<p>4. Open Source. Sublicensee will not directly or indirectly grant, or purport to grant, to any third party any rights or immunities under Adobe’s intellectual property or proprietary rights that will subject such intellectual property to an open-source licence or scheme in which there is, or could be interpreted to be, a requirement that as a condition of use, modification and/or distribution, the Adobe Software be: (i) disclosed or distributed in source code form; (ii) licensed for the purpose of making derivative works; or (iii) redistributable at no charge. For clarification purposes, the foregoing restriction does not preclude Sublicensee from distributing, and Sublicensee will distribute the Adobe Software as bundled with the Google Software, without charge.</p>
<p>5. Additional Terms. With respect to any update, upgrade and new versions of the Adobe Software (collectively “Upgrades”) provided to Sublicenses, Adobe reserves the right to require additional terms and conditions applicable solely to the Upgrade and future versions thereof, and solely to the extent that such restrictions are imposed by Adobe on all licensees of such Upgrade. If Sublicensee does not agree to such additional terms or conditions, Sublicensee will have no licensing rights with respect to such Upgrade and Sublicensee’s licensing rights with respect to the Adobe Software will terminate automatically on the 90th day from the date that such additional terms are made available to Sublicensee.</p>  
<p>6. Proprietary Rights Notices. Sublicensee shall not, and shall require its distributors not to, delete or in any manner alter the copyright notices, trademarks, logos or related notices, or other proprietary rights notices of Adobe (and its licensors, if any) appearing on or within the Adobe Software or accompanying materials.</p>
<p>7. Technical Requirements. Sublicensee and its distributors may only distribute Adobe Software and/or Upgrade on devices that (i) meet the technical specifications posted on http://www.adobe.com/mobile/licensees, (or a successor website thereto) and (ii) have been verified by Adobe, as set forth below.</p>
<p>8. Verification and Update. Sublicensee must submit to Adobe each Sublicensee's product (and each version thereof) containing the Adobe Software and/or Upgrade (“Sublicensee's Product”) that do not meet the Device Verification exemption criteria to be communicated by Google, for Adobe to verify. Sublicensee shall pay for each submission made by Sublicensee by procuring verification packages under the Adobe terms applicable at the time set forth at http://flashmobile.adobe.com/. Sublicensee's Product that has not passed verification may not be distributed. Verification will be accomplished in accordance with the Adobe process applicable at the time described at http://flashmobile.adobe.com/ (“Verification”).</p>
<p>9. Profiles and Device Central. Sublicensee will be prompted to enter certain profile information about the Sublicensee's Products, either as part of the Verification process or some other method, and Sublicensee will provide such information to Adobe. Adobe may (i) use such profile information as reasonably necessary to verify the Sublicensee's Product (if such product is subject to Verification), and (ii) display such profile information in “Adobe Device Intelligence system”, located at https://devices.adobe.com/partnerportal/, and made available through Adobe’s authoring and development tools and services to enable developers and end users to see how content or applications are displayed in Sublicensee's Products (e.g. how video images appear in certain phones).</p>  
<p>10. Export. Sublicensee acknowledges that the laws and regulations of the United States restrict the export and re-export of commodities and technical data of United States origin, which may include the Adobe Software. Sublicensee agrees that it will not export or re-export the Adobe Software without the appropriate United States and foreign governmental clearances, if any.</p>
<p>11. Technology Pass-through Terms.</p>  
<p>(a) Except pursuant to applicable permissions or agreements therefore, from or with the applicable parties, Sublicensees shall not use, and shall not allow the use of, the Adobe Software for the encoding or decoding of MP3 audio-only (.MP3) data on any non-PC device (e.g. mobile phone or set-top box), nor may the MP3 encoders or decoders contained in the Adobe Software be used or accessed by any product other than the Adobe Software. The Adobe Software may be used for the encoding or decoding of MP3 data contained within an SWF or FLV file, which contains video, picture or other data. Sublicensee shall acknowledge that use of the Adobe Software for non-PC devices, as described in the prohibitions in this section, may require the payment of licensing royalties or other amounts to third parties who may hold intellectual property rights related to the MP3 technology, and that Adobe and Sublicensee have not paid any royalties or other amounts on account of third-party intellectual property rights for such use. If Sublicensee requires an MP3 encoder or decoder for such use, Sublicensee is responsible for obtaining the necessary intellectual property licence, including any applicable patent rights.</p>
<p>(b) Sublicensee will not use, copy, reproduce and modify (i) the On2 source code (provided hereunder as a component of the Source Code), as necessary, to enable the Adobe Software to decode video in the Flash video file format (.flv or .f4v) and (ii) the Sorenson Spark source code (provided hereunder as a component of the Source Code) for the limited purpose of making bug fixes and performance enhancements to the Adobe Software. All codecs provided with the Adobe Software may only be used and distributed as an integrated part of the Adobe Software and may not be accessed by any other application, including other Google applications.</p>  
<p>(c) The Source Code may be provided with an AAC codec and/or HE-AAC codec (“the AAC Codec”). Use of the AAC Codec is conditioned on Sublicensee obtaining a proper patent licence covering necessary patents, as provided by VIA Licensing, for end products on or in which the AAC Codec will be used. Sublicensee acknowledges and agrees that Adobe is not providing a patent licence for an AAC Codec under this Agreement to Sublicensee or its sublicensees.</p>
<p>(d) THE SOURCE CODE MAY CONTAIN CODE LICENSED UNDER THE AVC PATENT PORTFOLIO LICENCE FOR THE PERSONAL, NON-COMMERCIAL USE OF A CONSUMER TO (i) ENCODE VIDEO IN COMPLIANCE WITH THE AVC STANDARD ("AVC VIDEO") AND/OR (ii) DECODE AVC VIDEO THAT WAS ENCODED BY A CONSUMER ENGAGED IN A PERSONAL, NON-COMMERCIAL ACTIVITY AND/OR WAS OBTAINED FROM A VIDEO PROVIDER LICENSED TO PROVIDE AVC VIDEO. NO LICENCE IS GRANTED OR WILL BE IMPLIED FOR ANY OTHER USE. ADDITIONAL INFORMATION MAY BE OBTAINED FROM MPEG LA, L.L.C. See http://www.mpegla.com</p>
<p>12. Update. Sublicensee will not circumvent Google’s or Adobe’s efforts to update the Adobe Software in all Sublicensee’s products incorporating the Adobe Software as bundled with the Google Software (“Sublicensee's Products”).</p>  
<p>13. Attribution and Proprietary Notices. Sublicensee will list the Adobe Software in publicly available Sublicensee's Product specifications and include appropriate Adobe Software branding (specifically excluding the Adobe corporate logo) on the Sublicensee's Product packaging or marketing materials in a manner consistent with branding of other third-party products contained within the Sublicensee's Product.</p>
<p>14. No Warranty. THE ADOBE SOFTWARE IS MADE AVAILABLE TO SUBLICENSEE FOR USE AND REPRODUCTION “AS IS” AND ADOBE MAKES NO WARRANTY AS TO ITS USE OR PERFORMANCE. ADOBE AND ITS SUPPLIERS DO NOT AND CANNOT WARRANT THE PERFORMANCE OR RESULTS OBTAINED BY USING THE ADOBE SOFTWARE. EXCEPT FOR ANY WARRANTY, CONDITION, REPRESENTATION OR TERM, TO THE EXTENT TO WHICH THE SAME CANNOT OR MAY NOT BE EXCLUDED OR LIMITED BY LAW APPLICABLE TO SUBLICENSEE IN SUBLICENSEE’S JURISDICTION, ADOBE AND ITS SUPPLIERS MAKE NO WARRANTIES, CONDITIONS, REPRESENTATIONS OR TERMS (EXPRESS OR IMPLIED, WHETHER BY STATUTE, COMMON LAW, CUSTOM, USAGE OR OTHERWISE) AS TO ANY MATTER, INCLUDING, WITHOUT LIMITATION, NON-INFRINGEMENT OF THIRD-PARTY RIGHTS, MERCHANTABILITY, INTEGRATION, SATISFACTORY QUALITY OR FITNESS FOR ANY PARTICULAR PURPOSE. SUBLICENSEE AGREES THAT SUBLICENSEE SHALL NOT MAKE ANY WARRANTY, EXPRESS OR IMPLIED, ON BEHALF OF ADOBE.</p>  
<p>15. Limitation of Liability. IN NO EVENT WILL ADOBE OR ITS SUPPLIERS BE LIABLE TO SUBLICENSEE FOR ANY DAMAGES, CLAIMS OR COSTS WHATSOEVER, OR ANY CONSEQUENTIAL, INDIRECT OR INCIDENTAL DAMAGES, OR ANY LOST PROFITS OR LOST SAVINGS, EVEN IF AN ADOBE REPRESENTATIVE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH LOSS, DAMAGES, CLAIMS OR COSTS, OR FOR ANY CLAIM BY ANY THIRD PARTY. THE FOREGOING LIMITATIONS AND EXCLUSIONS APPLY TO THE EXTENT PERMITTED BY APPLICABLE LAW IN SUBLICENSEE’S JURISDICTION. ADOBE’S AGGREGATE LIABILITY AND THAT OF ITS SUPPLIERS UNDER OR IN CONNECTION WITH THIS AGREEMENT SHALL BE LIMITED TO ONE THOUSAND DOLLARS (US$1,000). Nothing contained in this Agreement limits Adobe’s liability to Sublicensee in the event of death or personal injury resulting from Adobe’s negligence or for the tort of deceit (fraud). Adobe is acting on behalf of its suppliers for the purpose of disclaiming, excluding and/or limiting obligations, warranties and liability, as provided in this Agreement, but in no other respects and for no other purpose.</p>
<p>16. Content Protection Terms</p>
<p>(a) Definitions.</p>
<p>“Compliance and Robustness Rules” means the document setting forth compliance and robustness rules for the Adobe Software, located at http://www.adobe.com/mobile/licensees or a successor website thereto.</p>
<p>“Content Protection Functions” means those aspects of the Adobe Software that are designed to ensure compliance with the Compliance and Robustness Rules, and to prevent playback, copying, modification, redistribution or other actions with respect to digital content distributed for consumption by users of the Adobe Software, when such actions are not authorised by the owners of such digital content or its licensed distributors.</p>
<p>“Content Protection Code” means code within certain designated versions of the Adobe Software that enables certain Content Protection Functions.</p>
<p>“Key” means a cryptographic value contained in the Adobe Software for use in decrypting digital content.</p>
<p>(b) Licensing Restrictions. Sublicensee’s right to exercise the licences with respect to the Adobe Software is subject to the following additional restrictions and obligations. Sublicensee will ensure that Sublicensee’s customers comply with these restrictions and obligations to the same extent imposed on Sublicensee with respect to the Adobe Software; any failure by Sublicensee’s customers to comply with these additional restrictions and obligations shall be treated as a material breach by Sublicensee.</p>
<p>b.1. Sublicensee and customers may only distribute the Adobe Software that meets the Robustness and Compliance Rules as so confirmed by Sublicensee during the verification process described above in the Adobe Terms.</p>   
<p>b.2. Sublicensee shall not (i) circumvent the Content Protection Functions of either the Adobe Software or any related Adobe Software that is used to encrypt or decrypt digital content for authorised consumption by users of the Adobe Software or (ii) develop or distribute products that are designed to circumvent the Content Protection Functions of either the Adobe Software or any Adobe Software that is used to encrypt or decrypt digital content for authorised consumption by users of the Adobe Software.</p>
<p>(c) The Keys are hereby designated as Adobe’s Confidential Information and Sublicensee will, with respect to the Keys, adhere to Adobe’s Source Code Handling Procedure (to be provided by Adobe upon request).</p>  
<p>(d) Injunctive Relief. Sublicensee agrees that a breach of this Agreement may compromise the Content Protection Functions of the Adobe Software and may cause unique and lasting harm to the interests of Adobe and owners of digital content who rely on such Content Protection Functions, and that monetary damages may be inadequate to compensate fully for such harm. Therefore, Sublicensee further agrees that Adobe may be entitled to seek injunctive relief to prevent or limit the harm caused by any such breach, in addition to monetary damages.</p>
<p>17. Intended Third-party Beneficiary. Adobe Systems Incorporated and Adobe Software Ireland Limited are the intended third-party beneficiaries of Google’s agreement with Sublicensee with respect to the Adobe Software, including, but not limited to, the Adobe Terms. Sublicensee agrees, notwithstanding anything to the contrary in its agreement with Google, that Google may disclose Sublicensee’s identity to Adobe and certify in writing that Sublicensee has entered into a licensing agreement with Google which includes the Adobe Terms. Sublicensee must have an agreement with each of its licensees and if such licensees are allowed to redistribute the Adobe Software, such agreement will include the Adobe Terms.</p>
</body>
</html>
