- 0. Definitions
"This License" refers to version 3 of the GNU General Public License. "Copyright" also means copyright-like laws that cover other types of works, such as semiconductor manufacturing jigs. "The Program" means any work that is copyrighted and released under this License. License holders are referred to as "you" or "you." Licensees and recipients may be individuals or organizations. "Modifying" a work means copying or adapting all or part of the work in a way that requires copyright permission, and does not indicate the simple action of making an exact copy of the work. The resulting work is called a "modified version" of the previous work, or is called a work "based on" the previous work. A "work covered by this license" means the original unmodified Program or a work based on the Program. "Propagating" a work means doing anything with it that, in the absence of express permission, would make you directly or indirectly liable for infringement under applicable copyright law, except for simply running the Program on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and, in some states, other similar and related activities. "Distribute" a work means any form of propagation that allows third parties to make or receive copies. Mere interaction with a user over a computer network, without there being any transfer of a copy, is not considered "Distribution." An interactive user interface provides "Adequate Legal Information" only if it includes an appropriate feature, made adequately visible, that (1) displays adequate copyright information, and (2) informs the user that there is no warranty on the work (except where warranties are expressly provided), says that the licensee may distribute the work using this License, indicates how a copy of this License can be viewed. If the interface presents a list of commands or options, such as a menu, one of the options provided in the list must meet this condition.
- 1. Source Code.
The "source code" of a work indicates the most suitable form of the work for making changes to it. "Object code" indicates any form of the work that is not source code. A "Standard Interface" is an interface that meets an official standard defined by a recognized standards body or, in the case of interfaces specific to a particular programming language, an interface that is widely used by developers to develop in that language. The "System Libraries" of an executable include anything, except the work as a whole, that (a) is included in the normal packaging form of a "Main Component," but is not part of that Main Component, and (b) that serves only to enable the work to be used with that Main Component, or to implement a Standard Interface for which there is a publicly available implementation in source form. A "Main Component," in this context, is an essential component (kernel, window manager, etc.) of the specific operating system (assuming there is one) on which the executable executes, or a compiler used to produce the program, or an object code interpreter used to execute the program. The "Corresponding Source" for a work in object code form is the source code needed to generate, install, and (for an executable program) execute the object code and to modify the work, including scripts to control the above generation, installation, and execution activities. Not included are the System Libraries used by the program, or the generic utility tools or freely accessible programs that are used, without modification, to accomplish the above activities but that are not part of the work. For example, the Corresponding Source includes the interface definition files associated with the source files of the work, and the source code of shared libraries and dynamically linked subprograms specifically needed for the program, e.g., because of close data communication or flow control between these subprograms and other parts of the program. The Corresponding Source does not include anything that the user can automatically regenerate from other parts of the Corresponding Source itself. The Corresponding Source of a work in source code form is the work itself.
- 2. Principal Rights
All rights granted by this License are granted for the duration of the copyright in the Program, and are irrevocable assuming the above conditions are met. This License explicitly states your unrestricted permission to run the Program unmodified. The result of running a program covered by this License is itself covered by this License only if the result itself, because of its content, is a work covered by this License. This License recognizes your right to lawful use or other equivalent rights as established by copyright law. You may create, perform, and propagate programs covered by this License that you do not distribute, without any conditions as long as your License remains valid. You may distribute works covered by this License to others for the sole purpose of getting them to make modifications to the program exclusively for you, or to provide you with services for performing these works, provided that you comply with the terms of this License in distributing all material for which you do not hold copyright. Those who create or perform a program covered by this License on your behalf do so solely on your behalf, under your direction and control, such that they are prohibited from making copies of material for which you hold the copyright outside of their relationship to you. Distributing licensed works under any other circumstances is permitted only under the conditions expressed below. Sublicensing works is not permitted: section 10 makes it unnecessary.
- 3. Protection of users' legal rights from anti-circumvention laws.
No program protected by this License may be considered to be part of a technological measure of restriction that falls under any of the laws that satisfy Article 11 of the "WIPO copyright treaty" adopted December 20, 1996, or similar laws that prohibit or restrict circumvention of such technological measures of restriction. When you distribute a program covered by this License, you reject all legal powers to prohibit the circumvention of technological measures of restriction assuming that such circumvention is carried out in the exercise of the rights granted by this License with respect to the program covered by this License, and you waive your intention to restrict the operation or modification of the program in order to assert, against the rights of the users of the program, legal rights of yours or of third parties that would prevent the circumvention of technological measures of restriction.
- 4. Distribution of Exact Copies.
You are permitted to distribute exact copies of the Program's source code as you have received it, by whatever means, provided that you appropriately add on each copy an appropriate copyright notice; that you leave intact all notices stating that this License and all non-permissive clauses added in accordance with Section 7 are valid for the code you distribute; that you leave intact all notices about the absence of warranty; and that you provide all recipients with a copy of this License along with the Program. You may charge a fee or no fee for each copy you distribute, and you may offer support or warranty for a fee.
- 5. Distribution of Modified Versions of the Source.
You may distribute a work based on the Program, or modifications to produce it from the Program, in source code form under the terms of section 4, provided that you also comply with all of the following conditions:
- a. The work must carry appropriate information stating that you have modified it, giving the date of modification.
- b. The work must bear adequate information stating that it is released under this License and under the additional conditions as set forth in Section 7. This condition modifies the condition expressed in Section 4 to "leave all notices intact."
- c. You must release the entire work, as a whole, under this License to anyone who comes into possession of a copy of it. This License will therefore apply, together with any clauses added in compliance with Section 7, to the work as a whole, to all its parts, regardless of how they are packaged. This License denies permission to license the work in any other way, but does not make such permission void assuming you have received it separately.
- d. If the work has interactive user interfaces, each must display Adequate Legal Information; otherwise, if the Program has interactive interfaces that do not display Adequate Legal Information, your program is not required to display it.
The juxtaposition of a work covered by this License together with other separate and independent works, which are not by their nature extensions of the Program, and which are not combined with it to form another larger program, in or on the same long-term storage or distribution medium, is simply called "aggregation" if the collection and its copyright are not used to restrict access or the legal rights of the users of the collection itself beyond what each individual program permits. The inclusion of a program covered by this License in an aggregate does not result in the application of this License to the other parts of the aggregate.
- 6. Distribution in a non-source format
You may distribute a program covered by this License in object code format under the terms of Sections 4 and 5, assuming you also provide the Corresponding Source in a computer-understandable format under the terms of this same License, in one of the following ways:
- a. By distributing the object code in, or contained in, a physical product (including physical means of distribution), accompanied by the Corresponding Source on a durable physical medium commonly used for software exchange.
- b. By distributing the object code in, or contained in, a physical product (including physical means of distribution), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or support for that product model, to provide anyone who owns the object code (1) with a copy of the Corresponding Source of all software contained in the product that is covered by this License, on a durable physical medium commonly used for software exchange, at a price not to exceed the reasonable cost of physically making such source distribution, or (2) access to the copy of the Corresponding Source through a network server at no additional charge.
- c. Distributing individual copies of the object code together with a copy of the written offer to provide the Corresponding Source. This is permitted only occasionally and for non-commercial purposes, and only if you have received the object code together with such an offer, in accordance with Section 6b.
- d. By distributing the object code by means of access from a designated location (for free or for a fee), and offering equivalent access to the Corresponding Source in the same manner from the same location at no additional cost. You should not force recipients to copy the Corresponding Source along with the object code. If the place from which to copy the object code is a network server, the Corresponding Source can be on a different server (managed by you or a third party) that provides equivalent functionality for copying, as long as you provide clear directions next to the object code indicating where to find the Corresponding Source. Regardless of which server hosts the Corresponding Source, you remain obligated to ensure that it remains available for as long as necessary to satisfy these conditions.
- e. Distributing the object code by peer-to-peer transmission, provided that you inform the other peers about where the object code and the Corresponding Source are freely offered to the public under the terms of Section 6d.
A separable portion of the object code, the source of which is excluded from the Corresponding Source and treated as a System Library, need not be mandatorily included in the distribution of the program's object code. A "User Product" is either (1) a "consumer product," i.e., any tangible personal property that is normally used for personal, family, or household purposes, or (2) anything designed or sold to be used in the home environment. In classifying a product as a "consumer product," doubtful cases should be resolved in favor of scope. For a given product received by a given user, "normally used" refers to typical or common use of that class of products, regardless of the status of the specific user or the way the specific user uses, or is expected or expected to use, the product. A product is a "consumer product" regardless of whether it has commercial, industrial, or other than "consumer" uses, unless those uses are the only useful way of using the product in question. "Installation Information" for a User Product is the methods, procedures, permission keys or other information necessary to install and run modified versions of a program covered by this License within a User Product from modified versions of its Corresponding Sources. Such information must be sufficient to ensure that the operation of the modified object code is in no case prohibited or hindered merely because changes have been made. If you distribute an object code in accordance with the conditions of this section in, or together with, or specifically for use in or with a User Product, and the distribution is made as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient forever or for a fixed period (regardless of how the transaction is characterized), the Corresponding Source distributed in accordance with the conditions of this section must be accompanied by the Installation Information. This condition is not required if neither you nor a third party has the ability to install modified versions of the object code on the User Product (e.g., if the program is installed on a ROM) The condition requiring you to provide Installation Information does not imply that support, warranty, or updates will be provided for a program that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied if the changes made materially impact the operation of the network or if they violate the rules and protocols for communication across the network. The Corresponding Source distributed, and Installation Information provided, in accordance with this section, must be in a format that is publicly documented (and with a publicly available implementation in source code format), and must not require special passwords or keys to be unpacked, read, or copied.
- 7. Additional Conditions.
"Additional Conditions" are conditions that supplement the conditions of this License by allowing exceptions to one or more of the conditions listed above. Additional Conditions that are applicable to the entire Program should be treated as if they were included in this License, provided that they are valid under applicable law. If any additional conditions refer only to certain parts of the Program, those parts may be used separately under the same conditions, but the entire Program remains subject to this License without reference to any additional conditions. When you distribute a copy of a program covered by this License, you may, at your discretion, remove any Additional Conditions from the copy, or any part of it. (Additional Conditions may be written in such a way as to require their removal in certain instances of modification of the Program.) You may add Additional Conditions on material, added by you to a work covered by this License, for which you have or can grant an appropriate copyright license. Regardless of any other terms of this License, and for material you add to a work covered by this License, you may (if authorized by the rightful copyright holders for such material) add to the terms of this License conditions that:
- a. Deny the Program's warranty or limit its liability in a manner different from what is stated in sections 15 and 16 of this License; or
- b. Require the maintenance of specific and circumstantial legal disclosures or attribution notes to authors in the material or together with the Adequate Legal Information displayed by the Program containing it; or
- c. Prohibit the provision of incorrect or misleading information about the origin and provenance of the subject material, or require that modified versions of such material be specially marked differently from the original version; or
- d. Restrict the use for advertising purposes of the name of the copyright holders or authors of the material; or
- e. Refuse to grant rights under intellectual property laws about the use of names, trademarks or the like; or
- f. Require indemnification of the copyright holders or authors of the material in question by those who distribute the material (or modified versions of it) with contractual commitments about liability to the recipient, for any liability that these contractual commitments would impose directly on said copyright holders and authors.
All additional non-permissive conditions are considered "further restrictions," according to the meaning specified in Section 10. If the Program or portions of it contain, upon receipt of the Program, notices specifying that it is subject to this License along with a condition that is an "additional restriction," you may remove the latter condition. If a license document contains additional restrictions but permits you to relicense or distribute the Program under this License, you may add material covered by the conditions of that license document to the Program, provided that the additional restrictions do not appear in the relicensed or redistributed versions. If you add additional conditions to a Program covered by this License in accordance with this section, you must also add, in the corresponding source files, a notice summarizing the additional conditions applied to those files, that is, a notice specifying where copies of the added conditions can be found. All Additional Conditions, permissive or non-permissive, must be expressed in the form of a separate, written license, or explicitly expressed as exceptions; in either case the above conditions apply.
- 8. Termination of License
You may not propagate or modify a program covered by this License other than as expressly permitted by this License. Any attempt to otherwise propagate or modify the Program is void, and will cause the immediate termination of the rights granted by this License (including any patent licenses granted under the third paragraph of Section 11). In any event, if all violations of this License cease, then your license from a given copyright holder is reinstated (a) on a precautionary basis unless and until the copyright holder explicitly and permanently terminates your license, and (b) permanently if the copyright holder does not notify you in any way of the violation within 60 days of the termination of the license. In addition, your license from a given copyright holder is permanently reinstated if the copyright holder properly notifies you of the infringement, if this is the first time you receive a notice of infringement of this License (for any Program) from the same copyright holder, and if you remedy the infringement within 30 days after the date of receipt of the notice of infringement. Termination of your rights as specified in this section does not cause termination of the licenses of third parties who have received copies or rights from you under this License. If your rights cease and are not permanently restored, you are not entitled to receive new licenses for the same material as set forth in Section 10.
- 9. Obtaining copies does not require you to accept the License
You are not obligated to accept the terms of this License for the sole purpose of obtaining or performing a copy of the Program. Similarly, collateral propagations of a Program covered by this License that occur as a mere consequence of using peer-to-peer transmissions to receive a copy do not require acceptance of the License. In any case, this License and only this License grant you permission to propagate and modify any Program covered by this License. These actions violate copyright laws if you do not accept this License. Therefore, by modifying or propagating a program covered by this License, you implicitly indicate your acceptance of the License.
- 10. Automatic License for Subsequent Recipients
Whenever you distribute a program covered by this License, the recipient automatically receives a license, from the original copyright holder, to run, modify, and propagate the program, subject to compliance with this License. You are not held responsible for third party compliance with this License. An "entity transaction" is a transaction that transfers control of an organization, or substantially all of its assets, that subdivides an organization, or that merges multiple organizations. If the propagation of a program covered by this License is consequent upon an entity transaction, each party who has a role in the transaction and who receives a copy of the program receives at the same time any license over the program that the party's predecessors owned or could issue in compliance with the preceding paragraph, and in addition the right to possession of the Corresponding Source of the program from the predecessor in interest, if the predecessor owns it or can obtain it without too much difficulty. You may not impose any further restrictions on the exercise of the rights granted or asserted by this License. For example, you may not impose a license price, royalty, or other charge for the exercise of the rights granted by this License, to you may not initiate litigation (including cross litigation or defense in lawsuits) alleging that patents have been infringed by reason of the manufacture, use, sale, offering for sale, or importation of the Program or parts thereof.
- 11. Patents.
A "contributor" is a copyright holder who licenses the use under this License of a Program or work based on the Program. The work so licensed is called a "contributor's version." "Essential patent rights" by a contributor are all patent rights that belong to or are controlled by the contributor, that are already acquired or will be acquired in the future, that may be infringed in some manner, permitted by this License, by generating, modifying, or selling the contributor's version, but does not include rights that may be infringed only as a result of further modifications to the contributor's version. In connection with this definition, the term "control" includes the right to grant patent sublicenses in a manner consistent with the terms of this License. Each contributor grants to you the contributor's own non-exclusive, valid worldwide, royalty-free license of patent essential rights to create, use, sell, offer for sale, import, and otherwise perform, modify, and propagate the contents of the contributor's version. In the next three paragraphs, "patent license" means any agreement or contract, however named, not to assert a patent (such as an express permission to use a patent or an agreement to waive prosecution for patent infringement). "Granting" such a patent license to a party means carrying out such a patent non-assertion agreement or contract against the party. If you distribute a program covered by this License, knowingly relying on a patent license, and the Corresponding Source for the program is not made available for copying, at no additional charge and otherwise in compliance with the terms of this License, through a publicly accessible network server or through other readily accessible means, then you must either (1) arrange for the Corresponding Source to be made available as above, or (2) arrange to waive the benefits of the patent license for that particular program, or (3) work, in a manner consistent with the terms of this License, to extend the patent license to all subsequent recipients. "Knowingly trust" means that you are currently aware that, except for the patent license, distribution by you of a program protected by this License in a country, or use in a country of the program covered by this License by a recipient, may infringe one or more patents in that country that you have reason to believe are valid. If, as a result of or in connection with a single transaction or a given agreement, you distribute, or cause to be distributed, a program covered by this License, and you grant a patent license to some of the parties receiving the Program by authorizing them to use, propagate, modify, or distribute a specific copy of the Program, then the patent license you provide is automatically extended to all recipients of the Program covered by this License and works based on the Program. A patent license is "discriminatory" if it does not include within the scope of its coverage, prohibits the exercise of, or is bound by the non-exercise of one or more of the rights that are specifically granted by this License. You may not distribute a Program covered by this License if you are a party to an agreement with a third party whose business includes the distribution of software, under which you are obligated to make a payment to the third party in consideration of your activity in distributing the Program, and as a result of which the third party grants, to any of the parties who will receive the Program from you a discriminatory patent license (a) together with copies of the Program covered by this License distributed by you (or other copies made from such copies), or (b) primarily for and in connection with specific products or collections of products containing the Program, unless the agreement was entered into, or patent licenses issued, before March 28, 2007. Nothing in this License shall be construed to exclude or limit the effect of any other licenses or other infringement defense mechanisms that may otherwise be made available by applicable patent law.
- 12. No Surrender of the Liberties of Others
If conditions are imposed on you (by court order, agreement, or any other contingency) that contradict the terms of this License, you are in no way excused from complying with the terms of this License. If you cannot distribute a Program covered by this License to simultaneously submit to the obligations under this License and other relevant obligations, then you may not distribute the Program for any reason. For example, if you agree to conditions that obligate you to charge a royalty for distributions subsequently made by those to whom you have distributed the Program, the only way to satisfy both those conditions and this License is to avoid distributing the Program altogether.
- 13. Use under the GNU Affero General Public License
Regardless of any other conditions expressed by this License, you have permission to link or combine any Program covered by this License with a work released under version 3 of the GNU Affero General Public License, resulting in a single derivative Program, and to distribute the resulting Program. The terms of this License continue to apply to the portions concerning the Program that are covered by this License, while the special terms of the GNU Affero General Public License, section 13, concerning interaction through networks, will apply to the resulting Program.
- 14. Revised Versions of this License
The Free Software Foundation may publish revised and/or new versions of the GNU General Public License from time to time. Such versions will be similar in spirit to this version, but may differ in detail in order to address new problems and new situations. Each version is assigned a version identification number. If the Program specifies that it applies to itself a certain version of the GNU General Public License, "or any later version," you have the option of being bound by the terms of that specific version or any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU General Public License, you may choose any version of the GNU General Public License published by the Free Software Foundation. If the Program specifies that a substitute or attorney may decide which future versions of the GNU General Public License may be used, then such a choice to accept a given version entitles you, permanently, to use that version of the License for the Program. Later versions of the License may grant additional or slightly different rights. In any case, no additional obligations are imposed on authors or copyright holders as a consequence of your choice to adopt a later version of the License.
- 15. Disclaimer of Warranty
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT AS OTHERWISE SET FORTH IN WRITING, THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK CONCERNING THE QUALITY AND PERFORMANCE OF THE PROGRAM RESTS WITH LICENSEE. SHOULD THE PROGRAM PROVE DEFECTIVE, LICENSEE ASSUMES THE COSTS OF MAINTENANCE, REPAIR OR CORRECTION.
- 16. Limitation of Liability
IN NO EVENT, UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING, SHALL THE COPYRIGHT HOLDERS, OR ANY OTHER PARTY MODIFYING AND/OR DISTRIBUTING THE PROGRAM UNDER THE FOREGOING TERMS, BE LIABLE TO THE LICENSEE FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL INCIDENTAL OR CONSEQUENTIAL DAMAGE DUE TO THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING, BUT NOT LIMITED TO, LOSS OF DATA, CORRUPTION OF DATA, LOSSES INCURRED BY THE LICENSEE OR THIRD PARTIES, OR THE INABILITY OF THE PROGRAM TO FUNCTION TOGETHER WITH OTHER PROGRAMS), EVEN IF THE HOLDER OR OTHER PARTIES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- 17. Interpretation of Sections 15 and 16.
If the statement of warranty and limitation of liability given above have no legal effect in a country because of their terms, the courts of law must apply the local rule that comes closest to absolute rejection of any civil liability relating to the Program, unless a written warranty or assumption of liability accompanies a copy of the program obtained against payment.