pax_global_header00006660000000000000000000000064126766701700014526gustar00rootroot0000000000000052 comment=0655b7f1e6c0f8475adc55f2b86404a877f26a77 auto-complete-1.5.1/000077500000000000000000000000001267667017000143105ustar00rootroot00000000000000auto-complete-1.5.1/.gitignore000066400000000000000000000001261267667017000162770ustar00rootroot00000000000000*.dat *.elc *.tar *.tar.gz *.tar.bz2 README.html doc/*.html /auto-complete-*/ /.cask/ auto-complete-1.5.1/.travis.yml000066400000000000000000000005161267667017000164230ustar00rootroot00000000000000language: generic sudo: false before_install: - curl -fsSkL https://gist.github.com/rejeep/ebcd57c3af83b049833b/raw > x.sh && source ./x.sh - evm install $EVM_EMACS --use --skip - cask env: - EVM_EMACS=emacs-24.3-travis - EVM_EMACS=emacs-24.4-travis - EVM_EMACS=emacs-24.5-travis script: - emacs --version - make test auto-complete-1.5.1/COPYING.FDL000066400000000000000000000546621267667017000157640ustar00rootroot00000000000000 GNU Free Documentation License Version 1.3, 3 November 2008 Copyright (C) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. 0. PREAMBLE The purpose of this License is to make a manual, textbook, or other functional and useful document "free" in the sense of freedom: to assure everyone the effective freedom to copy and redistribute it, with or without modifying it, either commercially or noncommercially. Secondarily, this License preserves for the author and publisher a way to get credit for their work, while not being considered responsible for modifications made by others. This License is a kind of "copyleft", which means that derivative works of the document must themselves be free in the same sense. It complements the GNU General Public License, which is a copyleft license designed for free software. We have designed this License in order to use it for manuals for free software, because free software needs free documentation: a free program should come with manuals providing the same freedoms that the software does. But this License is not limited to software manuals; it can be used for any textual work, regardless of subject matter or whether it is published as a printed book. We recommend this License principally for works whose purpose is instruction or reference. 1. APPLICABILITY AND DEFINITIONS This License applies to any manual or other work, in any medium, that contains a notice placed by the copyright holder saying it can be distributed under the terms of this License. Such a notice grants a world-wide, royalty-free license, unlimited in duration, to use that work under the conditions stated herein. The "Document", below, refers to any such manual or work. Any member of the public is a licensee, and is addressed as "you". You accept the license if you copy, modify or distribute the work in a way requiring permission under copyright law. A "Modified Version" of the Document means any work containing the Document or a portion of it, either copied verbatim, or with modifications and/or translated into another language. A "Secondary Section" is a named appendix or a front-matter section of the Document that deals exclusively with the relationship of the publishers or authors of the Document to the Document's overall subject (or to related matters) and contains nothing that could fall directly within that overall subject. (Thus, if the Document is in part a textbook of mathematics, a Secondary Section may not explain any mathematics.) The relationship could be a matter of historical connection with the subject or with related matters, or of legal, commercial, philosophical, ethical or political position regarding them. The "Invariant Sections" are certain Secondary Sections whose titles are designated, as being those of Invariant Sections, in the notice that says that the Document is released under this License. If a section does not fit the above definition of Secondary then it is not allowed to be designated as Invariant. The Document may contain zero Invariant Sections. If the Document does not identify any Invariant Sections then there are none. The "Cover Texts" are certain short passages of text that are listed, as Front-Cover Texts or Back-Cover Texts, in the notice that says that the Document is released under this License. A Front-Cover Text may be at most 5 words, and a Back-Cover Text may be at most 25 words. A "Transparent" copy of the Document means a machine-readable copy, represented in a format whose specification is available to the general public, that is suitable for revising the document straightforwardly with generic text editors or (for images composed of pixels) generic paint programs or (for drawings) some widely available drawing editor, and that is suitable for input to text formatters or for automatic translation to a variety of formats suitable for input to text formatters. A copy made in an otherwise Transparent file format whose markup, or absence of markup, has been arranged to thwart or discourage subsequent modification by readers is not Transparent. An image format is not Transparent if used for any substantial amount of text. A copy that is not "Transparent" is called "Opaque". Examples of suitable formats for Transparent copies include plain ASCII without markup, Texinfo input format, LaTeX input format, SGML or XML using a publicly available DTD, and standard-conforming simple HTML, PostScript or PDF designed for human modification. Examples of transparent image formats include PNG, XCF and JPG. Opaque formats include proprietary formats that can be read and edited only by proprietary word processors, SGML or XML for which the DTD and/or processing tools are not generally available, and the machine-generated HTML, PostScript or PDF produced by some word processors for output purposes only. The "Title Page" means, for a printed book, the title page itself, plus such following pages as are needed to hold, legibly, the material this License requires to appear in the title page. For works in formats which do not have any title page as such, "Title Page" means the text near the most prominent appearance of the work's title, preceding the beginning of the body of the text. The "publisher" means any person or entity that distributes copies of the Document to the public. A section "Entitled XYZ" means a named subunit of the Document whose title either is precisely XYZ or contains XYZ in parentheses following text that translates XYZ in another language. (Here XYZ stands for a specific section name mentioned below, such as "Acknowledgements", "Dedications", "Endorsements", or "History".) To "Preserve the Title" of such a section when you modify the Document means that it remains a section "Entitled XYZ" according to this definition. The Document may include Warranty Disclaimers next to the notice which states that this License applies to the Document. These Warranty Disclaimers are considered to be included by reference in this License, but only as regards disclaiming warranties: any other implication that these Warranty Disclaimers may have is void and has no effect on the meaning of this License. 2. VERBATIM COPYING You may copy and distribute the Document in any medium, either commercially or noncommercially, provided that this License, the copyright notices, and the license notice saying this License applies to the Document are reproduced in all copies, and that you add no other conditions whatsoever to those of this License. You may not use technical measures to obstruct or control the reading or further copying of the copies you make or distribute. However, you may accept compensation in exchange for copies. If you distribute a large enough number of copies you must also follow the conditions in section 3. You may also lend copies, under the same conditions stated above, and you may publicly display copies. 3. COPYING IN QUANTITY If you publish printed copies (or copies in media that commonly have printed covers) of the Document, numbering more than 100, and the Document's license notice requires Cover Texts, you must enclose the copies in covers that carry, clearly and legibly, all these Cover Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on the back cover. Both covers must also clearly and legibly identify you as the publisher of these copies. The front cover must present the full title with all words of the title equally prominent and visible. You may add other material on the covers in addition. Copying with changes limited to the covers, as long as they preserve the title of the Document and satisfy these conditions, can be treated as verbatim copying in other respects. If the required texts for either cover are too voluminous to fit legibly, you should put the first ones listed (as many as fit reasonably) on the actual cover, and continue the rest onto adjacent pages. If you publish or distribute Opaque copies of the Document numbering more than 100, you must either include a machine-readable Transparent copy along with each Opaque copy, or state in or with each Opaque copy a computer-network location from which the general network-using public has access to download using public-standard network protocols a complete Transparent copy of the Document, free of added material. If you use the latter option, you must take reasonably prudent steps, when you begin distribution of Opaque copies in quantity, to ensure that this Transparent copy will remain thus accessible at the stated location until at least one year after the last time you distribute an Opaque copy (directly or through your agents or retailers) of that edition to the public. It is requested, but not required, that you contact the authors of the Document well before redistributing any large number of copies, to give them a chance to provide you with an updated version of the Document. 4. MODIFICATIONS You may copy and distribute a Modified Version of the Document under the conditions of sections 2 and 3 above, provided that you release the Modified Version under precisely this License, with the Modified Version filling the role of the Document, thus licensing distribution and modification of the Modified Version to whoever possesses a copy of it. In addition, you must do these things in the Modified Version: A. Use in the Title Page (and on the covers, if any) a title distinct from that of the Document, and from those of previous versions (which should, if there were any, be listed in the History section of the Document). You may use the same title as a previous version if the original publisher of that version gives permission. B. List on the Title Page, as authors, one or more persons or entities responsible for authorship of the modifications in the Modified Version, together with at least five of the principal authors of the Document (all of its principal authors, if it has fewer than five), unless they release you from this requirement. C. State on the Title page the name of the publisher of the Modified Version, as the publisher. D. Preserve all the copyright notices of the Document. E. Add an appropriate copyright notice for your modifications adjacent to the other copyright notices. F. Include, immediately after the copyright notices, a license notice giving the public permission to use the Modified Version under the terms of this License, in the form shown in the Addendum below. G. Preserve in that license notice the full lists of Invariant Sections and required Cover Texts given in the Document's license notice. H. Include an unaltered copy of this License. I. Preserve the section Entitled "History", Preserve its Title, and add to it an item stating at least the title, year, new authors, and publisher of the Modified Version as given on the Title Page. If there is no section Entitled "History" in the Document, create one stating the title, year, authors, and publisher of the Document as given on its Title Page, then add an item describing the Modified Version as stated in the previous sentence. J. Preserve the network location, if any, given in the Document for public access to a Transparent copy of the Document, and likewise the network locations given in the Document for previous versions it was based on. These may be placed in the "History" section. You may omit a network location for a work that was published at least four years before the Document itself, or if the original publisher of the version it refers to gives permission. K. For any section Entitled "Acknowledgements" or "Dedications", Preserve the Title of the section, and preserve in the section all the substance and tone of each of the contributor acknowledgements and/or dedications given therein. L. Preserve all the Invariant Sections of the Document, unaltered in their text and in their titles. Section numbers or the equivalent are not considered part of the section titles. M. Delete any section Entitled "Endorsements". Such a section may not be included in the Modified Version. N. Do not retitle any existing section to be Entitled "Endorsements" or to conflict in title with any Invariant Section. O. Preserve any Warranty Disclaimers. If the Modified Version includes new front-matter sections or appendices that qualify as Secondary Sections and contain no material copied from the Document, you may at your option designate some or all of these sections as invariant. To do this, add their titles to the list of Invariant Sections in the Modified Version's license notice. These titles must be distinct from any other section titles. You may add a section Entitled "Endorsements", provided it contains nothing but endorsements of your Modified Version by various parties--for example, statements of peer review or that the text has been approved by an organization as the authoritative definition of a standard. You may add a passage of up to five words as a Front-Cover Text, and a passage of up to 25 words as a Back-Cover Text, to the end of the list of Cover Texts in the Modified Version. Only one passage of Front-Cover Text and one of Back-Cover Text may be added by (or through arrangements made by) any one entity. If the Document already includes a cover text for the same cover, previously added by you or by arrangement made by the same entity you are acting on behalf of, you may not add another; but you may replace the old one, on explicit permission from the previous publisher that added the old one. The author(s) and publisher(s) of the Document do not by this License give permission to use their names for publicity for or to assert or imply endorsement of any Modified Version. 5. COMBINING DOCUMENTS You may combine the Document with other documents released under this License, under the terms defined in section 4 above for modified versions, provided that you include in the combination all of the Invariant Sections of all of the original documents, unmodified, and list them all as Invariant Sections of your combined work in its license notice, and that you preserve all their Warranty Disclaimers. The combined work need only contain one copy of this License, and multiple identical Invariant Sections may be replaced with a single copy. If there are multiple Invariant Sections with the same name but different contents, make the title of each such section unique by adding at the end of it, in parentheses, the name of the original author or publisher of that section if known, or else a unique number. Make the same adjustment to the section titles in the list of Invariant Sections in the license notice of the combined work. In the combination, you must combine any sections Entitled "History" in the various original documents, forming one section Entitled "History"; likewise combine any sections Entitled "Acknowledgements", and any sections Entitled "Dedications". You must delete all sections Entitled "Endorsements". 6. COLLECTIONS OF DOCUMENTS You may make a collection consisting of the Document and other documents released under this License, and replace the individual copies of this License in the various documents with a single copy that is included in the collection, provided that you follow the rules of this License for verbatim copying of each of the documents in all other respects. You may extract a single document from such a collection, and distribute it individually under this License, provided you insert a copy of this License into the extracted document, and follow this License in all other respects regarding verbatim copying of that document. 7. AGGREGATION WITH INDEPENDENT WORKS A compilation of the Document or its derivatives with other separate and independent documents or works, in or on a volume of a storage or distribution medium, is called an "aggregate" if the copyright resulting from the compilation is not used to limit the legal rights of the compilation's users beyond what the individual works permit. When the Document is included in an aggregate, this License does not apply to the other works in the aggregate which are not themselves derivative works of the Document. If the Cover Text requirement of section 3 is applicable to these copies of the Document, then if the Document is less than one half of the entire aggregate, the Document's Cover Texts may be placed on covers that bracket the Document within the aggregate, or the electronic equivalent of covers if the Document is in electronic form. Otherwise they must appear on printed covers that bracket the whole aggregate. 8. TRANSLATION Translation is considered a kind of modification, so you may distribute translations of the Document under the terms of section 4. Replacing Invariant Sections with translations requires special permission from their copyright holders, but you may include translations of some or all Invariant Sections in addition to the original versions of these Invariant Sections. You may include a translation of this License, and all the license notices in the Document, and any Warranty Disclaimers, provided that you also include the original English version of this License and the original versions of those notices and disclaimers. In case of a disagreement between the translation and the original version of this License or a notice or disclaimer, the original version will prevail. If a section in the Document is Entitled "Acknowledgements", "Dedications", or "History", the requirement (section 4) to Preserve its Title (section 1) will typically require changing the actual title. 9. TERMINATION You may not copy, modify, sublicense, or distribute the Document except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, or distribute it is void, and will automatically terminate your rights under this License. However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation. Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, receipt of a copy of some or all of the same material does not give you any rights to use it. 10. FUTURE REVISIONS OF THIS LICENSE The Free Software Foundation may publish new, revised versions of the GNU Free Documentation License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. See http://www.gnu.org/copyleft/. Each version of the License is given a distinguishing version number. If the Document specifies that a particular numbered version of this License "or any later version" applies to it, you have the option of following the terms and conditions either of that specified version or of any later version that has been published (not as a draft) by the Free Software Foundation. If the Document does not specify a version number of this License, you may choose any version ever published (not as a draft) by the Free Software Foundation. If the Document specifies that a proxy can decide which future versions of this License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Document. 11. RELICENSING "Massive Multiauthor Collaboration Site" (or "MMC Site") means any World Wide Web server that publishes copyrightable works and also provides prominent facilities for anybody to edit those works. A public wiki that anybody can edit is an example of such a server. A "Massive Multiauthor Collaboration" (or "MMC") contained in the site means any set of copyrightable works thus published on the MMC site. "CC-BY-SA" means the Creative Commons Attribution-Share Alike 3.0 license published by Creative Commons Corporation, a not-for-profit corporation with a principal place of business in San Francisco, California, as well as future copyleft versions of that license published by that same organization. "Incorporate" means to publish or republish a Document, in whole or in part, as part of another Document. An MMC is "eligible for relicensing" if it is licensed under this License, and if all works that were first published under this License somewhere other than this MMC, and subsequently incorporated in whole or in part into the MMC, (1) had no cover texts or invariant sections, and (2) were thus incorporated prior to November 1, 2008. The operator of an MMC Site may republish an MMC contained in the site under CC-BY-SA on the same site at any time before August 1, 2009, provided the MMC is eligible for relicensing. ADDENDUM: How to use this License for your documents To use this License in a document you have written, include a copy of the License in the document and put the following copyright and license notices just after the title page: Copyright (c) YEAR YOUR NAME. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License". If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts, replace the "with...Texts." line with this: with the Invariant Sections being LIST THEIR TITLES, with the Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST. If you have Invariant Sections without Cover Texts, or some other combination of the three, merge those two alternatives to suit the situation. If your document contains nontrivial examples of program code, we recommend releasing these examples in parallel under your choice of free software license, such as the GNU General Public License, to permit their use in free software. auto-complete-1.5.1/COPYING.GPLv3000066400000000000000000001045131267667017000162410ustar00rootroot00000000000000 GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The GNU General Public License is a free, copyleft license for software and other kinds of works. The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors. You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things. To protect your rights, we need to prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have certain responsibilities if you distribute copies of the software, or if you modify it: responsibilities to respect the freedom of others. For example, if you distribute copies of such a program, whether gratis or for a fee, you must pass on to the recipients the same freedoms that you received. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. Developers that use the GNU GPL protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License giving you legal permission to copy, distribute and/or modify it. For the developers' and authors' protection, the GPL clearly explains that there is no warranty for this free software. For both users' and authors' sake, the GPL requires that modified versions be marked as changed, so that their problems will not be attributed erroneously to authors of previous versions. Some devices are designed to deny users access to install or run modified versions of the software inside them, although the manufacturer can do so. This is fundamentally incompatible with the aim of protecting users' freedom to change the software. The systematic pattern of such abuse occurs in the area of products for individuals to use, which is precisely where it is most unacceptable. Therefore, we have designed this version of the GPL to prohibit the practice for those products. If such problems arise substantially in other domains, we stand ready to extend this provision to those domains in future versions of the GPL, as needed to protect the freedom of users. Finally, every program is threatened constantly by software patents. States should not allow patents to restrict development and use of software on general-purpose computers, but in those that do, we wish to avoid the special danger that patents applied to a free program could make it effectively proprietary. To prevent this, the GPL assures that patents cannot be used to render the program non-free. The precise terms and conditions for copying, distribution and modification follow. TERMS AND CONDITIONS 0. Definitions. "This License" refers to version 3 of the GNU General Public License. "Copyright" also means copyright-like laws that apply to other kinds of works, such as semiconductor masks. "The Program" refers to any copyrightable work licensed under this License. Each licensee is addressed as "you". "Licensees" and "recipients" may be individuals or organizations. To "modify" a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a "modified version" of the earlier work or a work "based on" the earlier work. A "covered work" means either the unmodified Program or a work based on the Program. To "propagate" a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well. To "convey" a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying. An interactive user interface displays "Appropriate Legal Notices" to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion. 1. Source Code. The "source code" for a work means the preferred form of the work for making modifications to it. "Object code" means any non-source form of a work. A "Standard Interface" means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language. The "System Libraries" of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A "Major Component", in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it. The "Corresponding Source" for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work. The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source. The Corresponding Source for a work in source code form is that same work. 2. Basic Permissions. All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law. You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you. Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary. 3. Protecting Users' Legal Rights From Anti-Circumvention Law. No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures. When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures. 4. Conveying Verbatim Copies. You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program. You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee. 5. Conveying Modified Source Versions. You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions: a) The work must carry prominent notices stating that you modified it, and giving a relevant date. b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to "keep intact all notices". c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it. d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so. A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an "aggregate" if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate. 6. Conveying Non-Source Forms. You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways: a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange. b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge. c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b. d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements. e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d. A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work. A "User Product" is either (1) a "consumer product", which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, "normally used" refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product. "Installation Information" for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made. If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM). The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work 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 when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network. Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying. 7. Additional Terms. "Additional permissions" are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions. When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission. Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms: a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or d) Limiting the use for publicity purposes of names of licensors or authors of the material; or e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors. All other non-permissive additional terms are considered "further restrictions" within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying. If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms. Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way. 8. Termination. You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11). However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation. Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10. 9. Acceptance Not Required for Having Copies. You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so. 10. Automatic Licensing of Downstream Recipients. Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License. An "entity transaction" is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts. You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it. 11. Patents. A "contributor" is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's "contributor version". A contributor's "essential patent claims" are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, "control" includes the right to grant patent sublicenses in a manner consistent with the requirements of this License. Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version. In the following three paragraphs, a "patent license" is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To "grant" such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party. If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. "Knowingly relying" means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid. If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it. A patent license is "discriminatory" if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007. Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law. 12. No Surrender of Others' Freedom. If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program. 13. Use with the GNU Affero General Public License. Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such. 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 new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that numbered version or of 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 ever published by the Free Software Foundation. If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program. Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version. 15. Disclaimer of Warranty. THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. Limitation of Liability. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 17. Interpretation of Sections 15 and 16. If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . Also add information on how to contact you by electronic and paper mail. If the program does terminal interaction, make it output a short notice like this when it starts in an interactive mode: Copyright (C) This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, your program's commands might be different; for a GUI interface, you would use an "about box". You should also get your employer (if you work as a programmer) or school, if any, to sign a "copyright disclaimer" for the program, if necessary. For more information on this, and how to apply and follow the GNU GPL, see . The GNU General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. But first, please read . auto-complete-1.5.1/Cask000066400000000000000000000002141267667017000151110ustar00rootroot00000000000000(source gnu) (source melpa) (package-file "auto-complete.el") (depends-on "popup") (depends-on "fuzzy") (development (depends-on "ert")) auto-complete-1.5.1/Makefile000066400000000000000000000023031267667017000157460ustar00rootroot00000000000000VERSION=`perl -ne 'print $$1 if /;; Version: (.*)/' auto-complete.el` PACKAGE=auto-complete-${VERSION} EMACS ?= emacs CASK ?= cask SITE=../auto-complete.github.com ELPA_DIR = \ .cask/$(shell $(EMACS) -Q --batch --eval '(princ emacs-version)')/elpa test: elpa $(CASK) exec $(EMACS) -batch -Q -L . \ -l tests/run-test.el \ -f ert-run-tests-batch-and-exit byte-compile: elpa $(CASK) exec $(EMACS) -Q -L . -batch -f batch-byte-compile auto-complete.el auto-complete-config.el install: byte-compile $(CASK) exec $(EMACS) -Q -L . -batch -l etc/install ${DIR} README.html: README.md pandoc --standalone --to html --output $@ $^ site: README.html (cd doc && make) cp README.html $(SITE)/index.html mkdir -p $(SITE)/doc cp doc/*.png doc/*.html doc/*.css $(SITE)/doc clean: rm -f README.html rm -f *.elc rm -f doc/*.html rm -rf ${PACKAGE} rm -f ${PACKAGE}.zip ${PACKAGE}.tar ${PACKAGE}.tar.bz2 package: clean mkdir ${PACKAGE} cp -r *.el Makefile *.md COPYING.* doc dict ${PACKAGE} package.tar: package tar cf ${PACKAGE}.tar ${PACKAGE} package.tar.bz2: tar bzip2 ${PACKAGE}.tar package.zip: package zip -r ${PACKAGE}.zip ${PACKAGE} elpa: $(ELPA_DIR) $(ELPA_DIR): Cask $(CASK) install touch $@ auto-complete-1.5.1/README.md000066400000000000000000000025721267667017000155750ustar00rootroot00000000000000# Auto-Complete [![Build Status](https://secure.travis-ci.org/auto-complete/auto-complete.svg)](http://travis-ci.org/auto-complete/auto-complete) An Intelligent auto-completion extension for Emacs ## What is Auto-Complete? Auto-Complete is an intelligent auto-completion extension for Emacs. It extends the standard Emacs completion interface and provides an environment that allows users to concentrate more on their own work. ## Features * Visual interface * Reduce overhead of completion by using statistic method * Extensibility ## Screenshots ![](doc/ac.png "Auto Completion") ![](doc/ac-fuzzy.png "Fuzzy Completion") ![](doc/ac-isearch.png "Increamental Search") ## Demo Video * [YouTube](http://www.youtube.com/watch?v=rGVVnDxwJYE) ## Install `auto-complete` is available on [MELPA](https://melpa.org) and [MELPA-STABLE](https://stable.melpa.org) You can install `auto-complete` with the following command. M-x package-install [RET] auto-complete [RET] ## User Manual [Auto-Complete User Manual](http://auto-complete.org/doc/manual.html) ## Basic Configuration ```lisp (ac-config-default) ``` ## Development * ## Reporting Bugs Visit [Auto-Complete Issue Tracker](https://github.com/auto-complete/auto-complete/issues) and create a new issue. ## License This software is distributed under the term of GPLv3. auto-complete-1.5.1/TODO.md000066400000000000000000000004061267667017000153770ustar00rootroot00000000000000- etags, ctags - emacswiki - test facility - support composed chars - minibuffer completion - performance issue (cache issue) - asynchronous processing - kanji henkan support - create menu if needed - quick help positioning on tabs (bug) - skip short completion auto-complete-1.5.1/auto-complete-config.el000066400000000000000000000461721267667017000206650ustar00rootroot00000000000000;;; auto-complete-config.el --- auto-complete additional configuations ;; Copyright (C) 2009, 2010 Tomohiro Matsuyama ;; Author: Tomohiro Matsuyama ;; Keywords: convenience ;; Version: 1.5.0 ;; This program is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation, either version 3 of the License, or ;; (at your option) any later version. ;; This program is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with this program. If not, see . ;;; Commentary: ;; ;;; Code: (require 'cl-lib) (require 'auto-complete) ;;;; Additional sources ;; imenu (defvar ac-imenu-index nil) (ac-clear-variable-every-10-minutes 'ac-imenu-index) (defun ac-imenu-candidates () (cl-loop with i = 0 with stack = (progn (unless (local-variable-p 'ac-imenu-index) (make-local-variable 'ac-imenu-index)) (or ac-imenu-index (setq ac-imenu-index (ignore-errors (with-no-warnings (imenu--make-index-alist)))))) with result while (and stack (or (not (integerp ac-limit)) (< i ac-limit))) for node = (pop stack) if (consp node) do (let ((car (car node)) (cdr (cdr node))) (if (consp cdr) (mapc (lambda (child) (push child stack)) cdr) (when (and (stringp car) (string-match (concat "^" (regexp-quote ac-prefix)) car)) ;; Remove extra characters (if (string-match "^.*\\(()\\|=\\|<>\\)$" car) (setq car (substring car 0 (match-beginning 1)))) (push car result) (cl-incf i)))) finally return (nreverse result))) (ac-define-source imenu '((depends imenu) (candidates . ac-imenu-candidates) (symbol . "s"))) ;; gtags (defface ac-gtags-candidate-face '((t (:inherit ac-candidate-face :foreground "navy"))) "Face for gtags candidate" :group 'auto-complete) (defface ac-gtags-selection-face '((t (:inherit ac-selection-face :background "navy"))) "Face for the gtags selected candidate." :group 'auto-complete) (defun ac-gtags-candidate () (ignore-errors (split-string (shell-command-to-string (format "global -ciq %s" ac-prefix)) "\n"))) (ac-define-source gtags '((candidates . ac-gtags-candidate) (candidate-face . ac-gtags-candidate-face) (selection-face . ac-gtags-selection-face) (requires . 3) (symbol . "s"))) ;; yasnippet (defface ac-yasnippet-candidate-face '((t (:inherit ac-candidate-face :background "sandybrown" :foreground "black"))) "Face for yasnippet candidate." :group 'auto-complete) (defface ac-yasnippet-selection-face '((t (:inherit ac-selection-face :background "coral3"))) "Face for the yasnippet selected candidate." :group 'auto-complete) (defun ac-yasnippet-table-hash (table) (cond ((fboundp 'yas/snippet-table-hash) (yas/snippet-table-hash table)) ((fboundp 'yas/table-hash) (yas/table-hash table)))) (defun ac-yasnippet-table-parent (table) (cond ((fboundp 'yas/snippet-table-parent) (yas/snippet-table-parent table)) ((fboundp 'yas/table-parent) (yas/table-parent table)))) (defun ac-yasnippet-candidate-1 (table) (with-no-warnings (let ((hashtab (ac-yasnippet-table-hash table)) (parent (ac-yasnippet-table-parent table)) candidates) (maphash (lambda (key value) (push key candidates)) hashtab) (setq candidates (all-completions ac-prefix (nreverse candidates))) (if parent (setq candidates (append candidates (ac-yasnippet-candidate-1 parent)))) candidates))) (defun ac-yasnippet-candidates () (with-no-warnings (cond (;; 0.8 onwards (fboundp 'yas-active-keys) (all-completions ac-prefix (yas-active-keys))) (;; >0.6.0 (fboundp 'yas/get-snippet-tables) (apply 'append (mapcar 'ac-yasnippet-candidate-1 (condition-case nil (yas/get-snippet-tables major-mode) (wrong-number-of-arguments (yas/get-snippet-tables))))) ) (t (let ((table (if (fboundp 'yas/snippet-table) ;; <0.6.0 (yas/snippet-table major-mode) ;; 0.6.0 (yas/current-snippet-table)))) (if table (ac-yasnippet-candidate-1 table))))))) (ac-define-source yasnippet '((depends yasnippet) (candidates . ac-yasnippet-candidates) (action . yas/expand) (candidate-face . ac-yasnippet-candidate-face) (selection-face . ac-yasnippet-selection-face) (symbol . "a"))) ;; semantic (defun ac-semantic-candidates (prefix) (with-no-warnings (delete "" ; semantic sometimes returns an empty string (mapcar (lambda (elem) (cons (semantic-tag-name elem) (semantic-tag-clone elem))) (ignore-errors (or (semantic-analyze-possible-completions (semantic-analyze-current-context)) (senator-find-tag-for-completion prefix))))))) (defun ac-semantic-doc (symbol) (with-no-warnings (let* ((proto (semantic-format-tag-summarize-with-file symbol nil t)) (doc (semantic-documentation-for-tag symbol)) (res proto)) (when doc (setq res (concat res "\n\n" doc))) res))) (defun ac-semantic-action () (when (and (boundp 'yas-minor-mode) yas-minor-mode) (let* ((tag (car (last (oref (semantic-analyze-current-context) prefix)))) (class (semantic-tag-class tag)) (args)) (when (eq class 'function) (setq args (semantic-tag-function-arguments tag)) (yas-expand-snippet (concat "(" (mapconcat (lambda (arg) (let ((arg-type (semantic-format-tag-type arg nil)) (arg-name (semantic-format-tag-name arg nil))) (concat "${" (if (string= arg-name "") arg-type (concat arg-type " " arg-name)) "}"))) args ", ") ")$0")))))) (ac-define-source semantic '((available . (or (require 'semantic-ia nil t) (require 'semantic/ia nil t))) (candidates . (ac-semantic-candidates ac-prefix)) (document . ac-semantic-doc) (action . ac-semantic-action) (prefix . cc-member) (requires . 0) (symbol . "m"))) (ac-define-source semantic-raw '((available . (or (require 'semantic-ia nil t) (require 'semantic/ia nil t))) (candidates . (ac-semantic-candidates ac-prefix)) (document . ac-semantic-doc) (action . ac-semantic-action) (symbol . "s"))) ;; eclim (defun ac-eclim-candidates () (with-no-warnings (cl-loop for c in (eclim/java-complete) collect (nth 1 c)))) (ac-define-source eclim '((candidates . ac-eclim-candidates) (prefix . c-dot) (requires . 0) (symbol . "f"))) ;; css ;; Copied from company-css.el (defconst ac-css-property-alist ;; see http://www.w3.org/TR/CSS21/propidx.html '(("azimuth" angle "left-side" "far-left" "left" "center-left" "center" "center-right" "right" "far-right" "right-side" "behind" "leftwards" "rightwards") ("background" background-color background-image background-repeat background-attachment background-position) ("background-attachment" "scroll" "fixed") ("background-color" color "transparent") ("background-image" uri "none") ("background-position" percentage length "left" "center" "right" percentage length "top" "center" "bottom" "left" "center" "right" "top" "center" "bottom") ("background-repeat" "repeat" "repeat-x" "repeat-y" "no-repeat") ("border" border-width border-style border-color) ("border-bottom" border) ("border-bottom-color" border-color) ("border-bottom-style" border-style) ("border-bottom-width" border-width) ("border-collapse" "collapse" "separate") ("border-color" color "transparent") ("border-left" border) ("border-left-color" border-color) ("border-left-style" border-style) ("border-left-width" border-width) ("border-right" border) ("border-right-color" border-color) ("border-right-style" border-style) ("border-right-width" border-width) ("border-spacing" length length) ("border-style" border-style) ("border-top" border) ("border-top-color" border-color) ("border-top-style" border-style) ("border-top-width" border-width) ("border-width" border-width) ("bottom" length percentage "auto") ("caption-side" "top" "bottom") ("clear" "none" "left" "right" "both") ("clip" shape "auto") ("color" color) ("content" "normal" "none" string uri counter "attr()" "open-quote" "close-quote" "no-open-quote" "no-close-quote") ("counter-increment" identifier integer "none") ("counter-reset" identifier integer "none") ("cue" cue-before cue-after) ("cue-after" uri "none") ("cue-before" uri "none") ("cursor" uri "*" "auto" "crosshair" "default" "pointer" "move" "e-resize" "ne-resize" "nw-resize" "n-resize" "se-resize" "sw-resize" "s-resize" "w-resize" "text" "wait" "help" "progress") ("direction" "ltr" "rtl") ("display" "inline" "block" "list-item" "run-in" "inline-block" "table" "inline-table" "table-row-group" "table-header-group" "table-footer-group" "table-row" "table-column-group" "table-column" "table-cell" "table-caption" "none") ("elevation" angle "below" "level" "above" "higher" "lower") ("empty-cells" "show" "hide") ("float" "left" "right" "none") ("font" font-style font-variant font-weight font-size "/" line-height font-family "caption" "icon" "menu" "message-box" "small-caption" "status-bar") ("font-family" family-name generic-family) ("font-size" absolute-size relative-size length percentage) ("font-style" "normal" "italic" "oblique") ("font-variant" "normal" "small-caps") ("font-weight" "normal" "bold" "bolder" "lighter" "100" "200" "300" "400" "500" "600" "700" "800" "900") ("height" length percentage "auto") ("left" length percentage "auto") ("letter-spacing" "normal" length) ("line-height" "normal" number length percentage) ("list-style" list-style-type list-style-position list-style-image) ("list-style-image" uri "none") ("list-style-position" "inside" "outside") ("list-style-type" "disc" "circle" "square" "decimal" "decimal-leading-zero" "lower-roman" "upper-roman" "lower-greek" "lower-latin" "upper-latin" "armenian" "georgian" "lower-alpha" "upper-alpha" "none") ("margin" margin-width) ("margin-bottom" margin-width) ("margin-left" margin-width) ("margin-right" margin-width) ("margin-top" margin-width) ("max-height" length percentage "none") ("max-width" length percentage "none") ("min-height" length percentage) ("min-width" length percentage) ("orphans" integer) ("outline" outline-color outline-style outline-width) ("outline-color" color "invert") ("outline-style" border-style) ("outline-width" border-width) ("overflow" "visible" "hidden" "scroll" "auto") ("padding" padding-width) ("padding-bottom" padding-width) ("padding-left" padding-width) ("padding-right" padding-width) ("padding-top" padding-width) ("page-break-after" "auto" "always" "avoid" "left" "right") ("page-break-before" "auto" "always" "avoid" "left" "right") ("page-break-inside" "avoid" "auto") ("pause" time percentage) ("pause-after" time percentage) ("pause-before" time percentage) ("pitch" frequency "x-low" "low" "medium" "high" "x-high") ("pitch-range" number) ("play-during" uri "mix" "repeat" "auto" "none") ("position" "static" "relative" "absolute" "fixed") ("quotes" string string "none") ("richness" number) ("right" length percentage "auto") ("speak" "normal" "none" "spell-out") ("speak-header" "once" "always") ("speak-numeral" "digits" "continuous") ("speak-punctuation" "code" "none") ("speech-rate" number "x-slow" "slow" "medium" "fast" "x-fast" "faster" "slower") ("stress" number) ("table-layout" "auto" "fixed") ("text-align" "left" "right" "center" "justify") ("text-decoration" "none" "underline" "overline" "line-through" "blink") ("text-indent" length percentage) ("text-transform" "capitalize" "uppercase" "lowercase" "none") ("top" length percentage "auto") ("unicode-bidi" "normal" "embed" "bidi-override") ("vertical-align" "baseline" "sub" "super" "top" "text-top" "middle" "bottom" "text-bottom" percentage length) ("visibility" "visible" "hidden" "collapse") ("voice-family" specific-voice generic-voice "*" specific-voice generic-voice) ("volume" number percentage "silent" "x-soft" "soft" "medium" "loud" "x-loud") ("white-space" "normal" "pre" "nowrap" "pre-wrap" "pre-line") ("widows" integer) ("width" length percentage "auto") ("word-spacing" "normal" length) ("z-index" "auto" integer)) "A list of CSS properties and their possible values.") (defconst ac-css-value-classes '((absolute-size "xx-small" "x-small" "small" "medium" "large" "x-large" "xx-large") (border-style "none" "hidden" "dotted" "dashed" "solid" "double" "groove" "ridge" "inset" "outset") (color "aqua" "black" "blue" "fuchsia" "gray" "green" "lime" "maroon" "navy" "olive" "orange" "purple" "red" "silver" "teal" "white" "yellow" "rgb") (counter "counter") (family-name "Courier" "Helvetica" "Times") (generic-family "serif" "sans-serif" "cursive" "fantasy" "monospace") (generic-voice "male" "female" "child") (margin-width "auto") ;; length percentage (relative-size "larger" "smaller") (shape "rect") (uri "url")) "A list of CSS property value classes and their contents.") (defconst ac-css-pseudo-classes '("active" "after" "before" "first" "first-child" "first-letter" "first-line" "focus" "hover" "lang" "left" "link" "right" "visited") "Identifiers for CSS pseudo-elements and pseudo-classes.") (defvar ac-css-property nil "Current editing property.") (defun ac-css-prefix () (when (save-excursion (re-search-backward "\\_<\\(.+?\\)\\_>\\s *:[^;]*\\=" nil t)) (setq ac-css-property (match-string 1)) (or (ac-prefix-symbol) (point)))) (defun ac-css-property-candidates () (let ((list (assoc-default ac-css-property ac-css-property-alist))) (if list (cl-loop with seen with value while (setq value (pop list)) if (symbolp value) do (unless (memq value seen) (push value seen) (setq list (append list (or (assoc-default value ac-css-value-classes) (assoc-default (symbol-name value) ac-css-property-alist))))) else collect value) ac-css-pseudo-classes))) (ac-define-source css-property '((candidates . ac-css-property-candidates) (prefix . ac-css-prefix) (requires . 0))) ;; slime (ac-define-source slime '((depends slime) (candidates . (car (slime-simple-completions ac-prefix))) (symbol . "s") (cache))) ;; ghc-mod (ac-define-source ghc-mod '((depends ghc) (candidates . (ghc-select-completion-symbol)) (symbol . "s") (cache))) ;;;; Not maintained sources ;; ropemacs (defvar ac-ropemacs-loaded nil) (defun ac-ropemacs-require () (with-no-warnings (unless ac-ropemacs-loaded (pymacs-load "ropemacs" "rope-") (if (boundp 'ropemacs-enable-autoimport) (setq ropemacs-enable-autoimport t)) (setq ac-ropemacs-loaded t)))) (defun ac-ropemacs-setup () (ac-ropemacs-require) ;(setq ac-sources (append (list 'ac-source-ropemacs) ac-sources)) (setq ac-omni-completion-sources '(("\\." ac-source-ropemacs)))) (defun ac-ropemacs-initialize () (autoload 'pymacs-apply "pymacs") (autoload 'pymacs-call "pymacs") (autoload 'pymacs-eval "pymacs" nil t) (autoload 'pymacs-exec "pymacs" nil t) (autoload 'pymacs-load "pymacs" nil t) (add-hook 'python-mode-hook 'ac-ropemacs-setup) t) (defvar ac-ropemacs-completions-cache nil) (defvar ac-source-ropemacs '((init . (lambda () (setq ac-ropemacs-completions-cache (mapcar (lambda (completion) (concat ac-prefix completion)) (ignore-errors (rope-completions)))))) (candidates . ac-ropemacs-completions-cache))) ;; rcodetools (defvar ac-source-rcodetools '((init . (lambda () (require 'rcodetools) (condition-case x (save-excursion (rct-exec-and-eval rct-complete-command-name "--completion-emacs-icicles")) (error) (setq rct-method-completion-table nil)))) (candidates . (lambda () (all-completions ac-prefix (mapcar (lambda (completion) (replace-regexp-in-string "\t.*$" "" (car completion))) rct-method-completion-table)))))) ;;;; Default settings (defun ac-common-setup () ;(add-to-list 'ac-sources 'ac-source-filename) ) (defun ac-emacs-lisp-mode-setup () (setq ac-sources (append '(ac-source-features ac-source-functions ac-source-yasnippet ac-source-variables ac-source-symbols) ac-sources))) (defun ac-cc-mode-setup () (setq ac-sources (append '(ac-source-yasnippet ac-source-gtags) ac-sources))) (defun ac-ruby-mode-setup ()) (defun ac-css-mode-setup () (setq ac-sources (append '(ac-source-css-property) ac-sources))) ;;;###autoload (defun ac-config-default () (setq-default ac-sources '(ac-source-abbrev ac-source-dictionary ac-source-words-in-same-mode-buffers)) (add-hook 'emacs-lisp-mode-hook 'ac-emacs-lisp-mode-setup) (add-hook 'c-mode-common-hook 'ac-cc-mode-setup) (add-hook 'ruby-mode-hook 'ac-ruby-mode-setup) (add-hook 'css-mode-hook 'ac-css-mode-setup) (add-hook 'auto-complete-mode-hook 'ac-common-setup) (global-auto-complete-mode t)) (provide 'auto-complete-config) ;;; auto-complete-config.el ends here auto-complete-1.5.1/auto-complete-pkg.el000066400000000000000000000001651267667017000201710ustar00rootroot00000000000000(define-package "auto-complete" "1.5.0" "Auto Completion for GNU Emacs" '((popup "0.5.0") (cl-lib "0.5"))) auto-complete-1.5.1/auto-complete.el000066400000000000000000002216101267667017000174120ustar00rootroot00000000000000;;; auto-complete.el --- Auto Completion for GNU Emacs ;; Copyright (C) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 Tomohiro Matsuyama ;; Author: Tomohiro Matsuyama ;; URL: https://github.com/auto-complete/auto-complete ;; Keywords: completion, convenience ;; Version: 1.5.1 ;; This program is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation, either version 3 of the License, or ;; (at your option) any later version. ;; This program is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with this program. If not, see . ;;; Commentary: ;; ;; This extension provides a way to complete with popup menu like: ;; ;; def-!- ;; +-----------------+ ;; |defun::::::::::::| ;; |defvar | ;; |defmacro | ;; | ... | ;; +-----------------+ ;; ;; You can complete by typing and selecting menu. ;; ;; Entire documents are located in doc/ directory. ;; Take a look for information. ;; ;; Enjoy! ;;; Code: (defconst ac-version "1.5.1" "Version of auto-complete in string format. Use `version-to-list' to get version component.") (defconst ac-version-major (car (version-to-list ac-version)) "Major version number of auto-complete") (defconst ac-version-minor (cadr (version-to-list ac-version)) "Minor version number of auto-complete") (require 'cl-lib) (require 'popup) ;;;; Global stuff (defun ac-error (&optional var) "Report an error and disable `auto-complete-mode'." (ignore-errors (message "auto-complete error: %s" var) (auto-complete-mode -1) var)) ;;;; Customization (defgroup auto-complete nil "Auto completion." :group 'completion :prefix "ac-") (defcustom ac-delay 0.1 "Delay to completions will be available." :type 'float :group 'auto-complete) (defcustom ac-auto-show-menu 0.8 "Non-nil means completion menu will be automatically shown." :type '(choice (const :tag "Yes" t) (const :tag "Never" nil) (float :tag "Timer")) :group 'auto-complete) (defcustom ac-show-menu-immediately-on-auto-complete t "Non-nil means menu will be showed immediately on `auto-complete'." :type 'boolean :group 'auto-complete) (defcustom ac-expand-on-auto-complete t "Non-nil means expand whole common part on first time `auto-complete'." :type 'boolean :group 'auto-complete) (defcustom ac-disable-faces '(font-lock-comment-face font-lock-string-face font-lock-doc-face) "Non-nil means disable automatic completion on specified faces." :type '(repeat symbol) :group 'auto-complete) (defcustom ac-stop-flymake-on-completing t "Non-nil means disble flymake temporarily on completing." :type 'boolean :group 'auto-complete) (defcustom ac-flycheck-poll-completion-end-interval 0.5 "Polling interval to restart automatically flycheck's checking after completion is end." :type 'float :group 'auto-complete) (defcustom ac-use-fuzzy (and (locate-library "fuzzy") t) "Non-nil means use fuzzy matching." :type 'boolean :group 'auto-complete) (defcustom ac-fuzzy-cursor-color "red" "Cursor color in fuzzy mode." :type 'string :group 'auto-complete) (defcustom ac-use-comphist t "Non-nil means use intelligent completion history." :type 'boolean :group 'auto-complete) (defcustom ac-comphist-threshold 0.7 "Percentage of ignoring low scored candidates." :type 'float :group 'auto-complete) (defcustom ac-comphist-file (expand-file-name (concat (if (boundp 'user-emacs-directory) user-emacs-directory "~/.emacs.d/") "/ac-comphist.dat")) "Completion history file name." :type 'string :group 'auto-complete) (defcustom ac-user-dictionary nil "User defined dictionary" :type '(repeat string) :group 'auto-complete) (defcustom ac-dictionary-files '("~/.dict") "Dictionary files." :type '(repeat string) :group 'auto-complete) (defvaralias 'ac-user-dictionary-files 'ac-dictionary-files) (defcustom ac-dictionary-directories (ignore-errors (when load-file-name (let ((installed-dir (file-name-directory load-file-name))) (cl-loop for name in '("ac-dict" "dict") for dir = (concat installed-dir name) if (file-directory-p dir) collect dir)))) "Dictionary directories." :type '(repeat string) :group 'auto-complete) (defcustom ac-use-quick-help t "Non-nil means use quick help." :type 'boolean :group 'auto-complete) (defcustom ac-quick-help-delay 1.5 "Delay to show quick help." :type 'float :group 'auto-complete) (defcustom ac-menu-height 10 "Max height of candidate menu." :type 'integer :group 'auto-complete) (defvaralias 'ac-candidate-menu-height 'ac-menu-height) (defcustom ac-quick-help-height 20 "Max height of quick help." :type 'integer :group 'auto-complete) (defcustom ac-quick-help-prefer-pos-tip t "Prefer native tooltip with pos-tip than overlay popup for displaying quick help." :type 'boolean :group 'auto-complete) (defvaralias 'ac-quick-help-prefer-x 'ac-quick-help-prefer-pos-tip) (defcustom ac-candidate-limit nil "Limit number of candidates. Non-integer means no limit." :type 'integer :group 'auto-complete) (defvaralias 'ac-candidate-max 'ac-candidate-limit) (defcustom ac-modes '(emacs-lisp-mode lisp-mode lisp-interaction-mode slime-repl-mode nim-mode c-mode cc-mode c++-mode go-mode java-mode malabar-mode clojure-mode clojurescript-mode scala-mode scheme-mode ocaml-mode tuareg-mode coq-mode haskell-mode agda-mode agda2-mode perl-mode cperl-mode python-mode ruby-mode lua-mode tcl-mode ecmascript-mode javascript-mode js-mode js2-mode php-mode css-mode scss-mode less-css-mode makefile-mode sh-mode fortran-mode f90-mode ada-mode xml-mode sgml-mode web-mode ts-mode sclang-mode verilog-mode qml-mode apples-mode) "Major modes `auto-complete-mode' can run on." :type '(repeat symbol) :group 'auto-complete) (defcustom ac-compatible-packages-regexp "^ac-" "Regexp to indicate what packages can work with auto-complete." :type 'string :group 'auto-complete) (defcustom ac-non-trigger-commands '(*table--cell-self-insert-command electric-buffer-list) "Commands that can't be used as triggers of `auto-complete'." :type '(repeat symbol) :group 'auto-complete) (defcustom ac-trigger-commands '(self-insert-command) "Trigger commands that specify whether `auto-complete' should start or not." :type '(repeat symbol) :group 'auto-complete) (defcustom ac-trigger-commands-on-completing '(delete-backward-char backward-delete-char backward-delete-char-untabify ;; autopair autopair-backspace ;; paredit paredit-backward-delete paredit-backward-delete-word) "Trigger commands that specify whether `auto-complete' should continue or not." :type '(repeat symbol) :group 'auto-complete) (defcustom ac-trigger-key nil "Non-nil means `auto-complete' will start by typing this key. If you specify this TAB, for example, `auto-complete' will start by typing TAB, and if there is no completions, an original command will be fallbacked." :type '(choice (const :tag "None" nil) (string :tag "Key")) :group 'auto-complete :set (lambda (symbol value) (set-default symbol value) (when (and value (fboundp 'ac-set-trigger-key)) (ac-set-trigger-key value)))) (defcustom ac-auto-start 2 "Non-nil means completion will be started automatically. Positive integer means if a length of a word you entered is larger than the value, completion will be started automatically. If you specify `nil', never be started automatically." :type '(choice (const :tag "Yes" t) (const :tag "Never" nil) (integer :tag "Require")) :group 'auto-complete) (defcustom ac-stop-words nil "List of string to stop completion." :type '(repeat string) :group 'auto-complete) (defvaralias 'ac-ignores 'ac-stop-words) (defcustom ac-use-dictionary-as-stop-words t "Non-nil means a buffer related dictionary will be thought of as stop words." :type 'boolean :group 'auto-complete) (defcustom ac-ignore-case 'smart "Non-nil means auto-complete ignores case. If this value is `smart', auto-complete ignores case only when a prefix doesn't contain any upper case letters." :type '(choice (const :tag "Yes" t) (const :tag "Smart" smart) (const :tag "No" nil)) :group 'auto-complete) (defcustom ac-dwim t "Non-nil means `auto-complete' works based on Do What I Mean." :type 'boolean :group 'auto-complete) (defcustom ac-use-menu-map nil "Non-nil means a special keymap `ac-menu-map' on completing menu will be used." :type 'boolean :group 'auto-complete) (defcustom ac-use-overriding-local-map nil "Non-nil means `overriding-local-map' will be used to hack for overriding key events on auto-completion." :type 'boolean :group 'auto-complete) (defcustom ac-disable-inline nil "Non-nil disable inline completion visibility" :type 'boolean :group 'auto-complete) (defcustom ac-candidate-menu-min 1 "Number of candidates required to display menu" :type 'integer :group 'auto-complete) (defcustom ac-max-width nil "Maximum width for auto-complete menu to have" :type '(choice (const :tag "No limit" nil) (const :tag "Character Limit" 25) (const :tag "Window Ratio Limit" 0.5)) :group 'auto-complete) (defface ac-completion-face '((t (:foreground "darkgray" :underline t))) "Face for inline completion" :group 'auto-complete) (defface ac-candidate-face '((t (:inherit popup-face))) "Face for candidate." :group 'auto-complete) (defface ac-candidate-mouse-face '((t (:inherit popup-menu-mouse-face))) "Mouse face for candidate." :group 'auto-complete) (defface ac-selection-face '((t (:inherit popup-menu-selection-face))) "Face for selected candidate." :group 'auto-complete) (defvar auto-complete-mode-hook nil "Hook for `auto-complete-mode'.") ;;;; Internal variables (defvar auto-complete-mode nil "Dummy variable to suppress compiler warnings.") (defvar ac-cursor-color nil "Old cursor color.") (defvar ac-inline nil "Inline completion instance.") (defvar ac-menu nil "Menu instance.") (defvar ac-show-menu nil "Flag to show menu on timer tick.") (defvar ac-last-completion nil "Cons of prefix marker and selected item of last completion.") (defvar ac-quick-help nil "Quick help instance") (defvar ac-completing nil "Non-nil means `auto-complete-mode' is now working on completion.") (defvar ac-buffer nil "Buffer where auto-complete is started.") (defvar ac-point nil "Start point of prefix.") (defvar ac-last-point nil "Last point of updating pattern.") (defvar ac-prefix nil "Prefix string.") (defvaralias 'ac-target 'ac-prefix) (defvar ac-selected-candidate nil "Last selected candidate.") (defvar ac-common-part nil "Common part string of meaningful candidates. If there is no common part, this will be nil.") (defvar ac-whole-common-part nil "Common part string of whole candidates. If there is no common part, this will be nil.") (defvar ac-prefix-overlay nil "Overlay for prefix string.") (defvar ac-timer nil "Completion idle timer.") (defvar ac-show-menu-timer nil "Show menu idle timer.") (defvar ac-quick-help-timer nil "Quick help idle timer.") (defvar ac-triggered nil "Flag to update.") (defvar ac-limit nil "Limit number of candidates for each sources.") (defvar ac-candidates nil "Current candidates.") (defvar ac-candidates-cache nil "Candidates cache for individual sources.") (defvar ac-fuzzy-enable nil "Non-nil means fuzzy matching is enabled.") (defvar ac-dwim-enable nil "Non-nil means DWIM completion will be allowed.") (defvar ac-mode-map (make-sparse-keymap) "Auto-complete mode map. It is also used for trigger key command. See also `ac-trigger-key'.") (defvar ac-completing-map (let ((map (make-sparse-keymap))) (define-key map "\t" 'ac-expand) (define-key map [tab] 'ac-expand) (define-key map "\r" 'ac-complete) (define-key map (kbd "M-TAB") 'auto-complete) (define-key map "\M-n" 'ac-next) (define-key map "\M-p" 'ac-previous) (define-key map [down] 'ac-next) (define-key map [up] 'ac-previous) (define-key map [f1] 'ac-help) (define-key map [M-f1] 'ac-persist-help) (define-key map (kbd "C-?") 'ac-help) (define-key map (kbd "C-M-?") 'ac-persist-help) (define-key map [C-down] 'ac-quick-help-scroll-down) (define-key map [C-up] 'ac-quick-help-scroll-up) (define-key map "\C-\M-n" 'ac-quick-help-scroll-down) (define-key map "\C-\M-p" 'ac-quick-help-scroll-up) (dotimes (i 9) (let ((symbol (intern (format "ac-complete-select-%d" (1+ i))))) (fset symbol `(lambda () (interactive) (when (and (ac-menu-live-p) (popup-select ac-menu ,i)) (ac-complete)))) (define-key map (read-kbd-macro (format "M-%s" (1+ i))) symbol))) map) "Keymap for completion.") (defvaralias 'ac-complete-mode-map 'ac-completing-map) (defvar ac-menu-map (let ((map (make-sparse-keymap))) (set-keymap-parent map ac-completing-map) (define-key map (kbd "RET") 'ac-complete) (define-key map "\C-n" 'ac-next) (define-key map "\C-p" 'ac-previous) (define-key map "\C-s" 'ac-isearch) (define-key map [mouse-1] 'ac-mouse-1) (define-key map [down-mouse-1] 'ac-ignore) (define-key map [mouse-4] 'ac-mouse-4) (define-key map [mouse-5] 'ac-mouse-5) map) "Keymap for completion on completing menu.") (defvar ac-current-map (let ((map (make-sparse-keymap))) (set-keymap-parent map ac-completing-map) map)) (defvar ac-match-function 'all-completions "Default match function.") (defvar ac-prefix-definitions '((symbol . ac-prefix-symbol) (file . ac-prefix-file) (valid-file . ac-prefix-valid-file) (c-dot . ac-prefix-c-dot) (c-dot-ref . ac-prefix-c-dot-ref) (cc-member . ac-prefix-cc-member)) "Prefix definitions for common use.") (defvar ac-sources '(ac-source-words-in-same-mode-buffers) "Sources for completion.") (make-variable-buffer-local 'ac-sources) (defvar ac-compiled-sources nil "Compiled source of `ac-sources'.") (defvar ac-current-sources nil "Current working sources. This is sublist of `ac-compiled-sources'.") (defvar ac-omni-completion-sources nil "Do not use this anymore.") (defvar ac-current-prefix-def nil) (defvar ac-ignoring-prefix-def nil) ;;;; Intelligent completion history (defvar ac-comphist nil "Database of completion history.") (defsubst ac-comphist-make-tab () (make-hash-table :test 'equal)) (defsubst ac-comphist-tab (db) (nth 0 db)) (defsubst ac-comphist-cache (db) (nth 1 db)) (defun ac-comphist-make (&optional tab) (list (or tab (ac-comphist-make-tab)) (make-hash-table :test 'equal :weakness t))) (defun ac-comphist-get (db string &optional create) (let* ((tab (ac-comphist-tab db)) (index (gethash string tab))) (when (and create (null index)) (setq index (make-vector (length string) 0)) (puthash string index tab)) index)) (defun ac-comphist-add (db string prefix) (setq prefix (min prefix (1- (length string)))) (when (<= 0 prefix) (setq string (substring-no-properties string)) (let ((stat (ac-comphist-get db string t))) (cl-incf (aref stat prefix)) (remhash string (ac-comphist-cache db))))) (defun ac-comphist-score (db string prefix) (setq prefix (min prefix (1- (length string)))) (if (<= 0 prefix) (let ((cache (gethash string (ac-comphist-cache db)))) (or (and cache (aref cache prefix)) (let ((stat (ac-comphist-get db string)) (score 0.0)) (when stat (cl-loop for p from 0 below (length string) ;; sigmoid function with a = 5 with b = (/ 700.0 a) ; bounds for avoiding range error in `exp' with d = (/ 6.0 a) for x = (max (- b) (min b (- d (abs (- prefix p))))) for r = (/ 1.0 (1+ (exp (* (- a) x)))) do (cl-incf score (* (aref stat p) r)))) ;; Weight by distance (cl-incf score (max 0.0 (- 0.3 (/ (- (length string) prefix) 100.0)))) (unless cache (setq cache (make-vector (length string) nil)) (puthash string cache (ac-comphist-cache db))) (aset cache prefix score) score))) 0.0)) (defun ac-comphist-sort (db collection prefix &optional threshold) (let (result (n 0) (total 0) (cur 0)) (setq result (mapcar (lambda (a) (when (and cur threshold) (if (>= cur (* total threshold)) (setq cur nil) (cl-incf n) (cl-incf cur (cdr a)))) (car a)) (sort (mapcar (lambda (string) (let ((score (ac-comphist-score db string prefix))) (cl-incf total score) (cons string score))) collection) (lambda (a b) (< (cdr b) (cdr a)))))) (if threshold (cons n result) result))) (defun ac-comphist-serialize (db) (let (alist) (maphash (lambda (k v) (push (cons k v) alist)) (ac-comphist-tab db)) (list alist))) (defun ac-comphist-deserialize (sexp) (condition-case nil (ac-comphist-make (let ((tab (ac-comphist-make-tab))) (mapc (lambda (cons) (puthash (car cons) (cdr cons) tab)) (nth 0 sexp)) tab)) (error (message "Invalid comphist db.") nil))) (defun ac-comphist-init () (ac-comphist-load) (add-hook 'kill-emacs-hook 'ac-comphist-save)) (defun ac-comphist-load () (interactive) (let ((db (if (file-exists-p ac-comphist-file) (ignore-errors (with-temp-buffer (insert-file-contents ac-comphist-file) (goto-char (point-min)) (ac-comphist-deserialize (read (current-buffer)))))))) (setq ac-comphist (or db (ac-comphist-make))))) (defun ac-comphist-save () (interactive) (require 'pp) (ignore-errors (with-temp-buffer (pp (ac-comphist-serialize ac-comphist) (current-buffer)) (write-region (point-min) (point-max) ac-comphist-file)))) ;;;; Dictionary (defvar ac-buffer-dictionary nil) (defvar ac-file-dictionary (make-hash-table :test 'equal)) (defun ac-clear-dictionary-cache () (interactive) (dolist (buffer (buffer-list)) (with-current-buffer buffer (if (local-variable-p 'ac-buffer-dictionary) (kill-local-variable 'ac-buffer-dictionary)))) (clrhash ac-file-dictionary)) (defun ac-file-dictionary (filename) (let ((cache (gethash filename ac-file-dictionary 'none))) (if (and cache (not (eq cache 'none))) cache (let (result) (ignore-errors (with-temp-buffer (insert-file-contents filename) (setq result (split-string (buffer-string) "\n" t)))) (puthash filename result ac-file-dictionary) result)))) (defun ac-mode-dictionary (mode) (cl-loop for name in (cons (symbol-name mode) (ignore-errors (list (file-name-extension (buffer-file-name))))) append (cl-loop for dir in ac-dictionary-directories for file = (concat dir "/" name) if (file-exists-p file) append (ac-file-dictionary file)))) (defun ac-buffer-dictionary (&optional buffer) (with-current-buffer (or buffer (current-buffer)) (if (local-variable-p 'ac-buffer-dictionary) ac-buffer-dictionary (make-local-variable 'ac-buffer-dictionary) (setq ac-buffer-dictionary (apply 'append ac-user-dictionary (ac-mode-dictionary major-mode) (mapcar 'ac-file-dictionary ac-dictionary-files)))))) ;;;; Auto completion internals (defun ac-menu-at-wrapper-line-p () "Return non-nil if current line is long and wrapped to next visual line." (and (not truncate-lines) (eq (line-beginning-position) (save-excursion (vertical-motion 1) (line-beginning-position))))) (defun ac-stop-word-p (word) (or (member word ac-stop-words) (if ac-use-dictionary-as-stop-words (member word (ac-buffer-dictionary))))) (defun ac-prefix-default () "Same as `ac-prefix-symbol' but ignore a number prefix." (let ((start (ac-prefix-symbol))) (when start (cl-loop with end = (point) for pos from start below end for c = (char-after pos) if (not (and (<= ?0 c) (<= c ?9))) return start)))) (defun ac-prefix-symbol () "Default prefix definition function." (require 'thingatpt) (car-safe (bounds-of-thing-at-point 'symbol))) (defun ac-prefix-file () "File prefix." (let ((point (re-search-backward "[\"<>' \t\r\n]" nil t))) (if point (1+ point)))) (defsubst ac-windows-remote-file-p (file) (and (memq system-type '(ms-dos windows-nt cygwin)) (string-match-p "\\`\\(?://\\|\\\\\\\\\\)" file))) (defun ac-prefix-valid-file () "Existed (or to be existed) file prefix." (let* ((line-beg (line-beginning-position)) (end (point)) (start (or (let ((point (re-search-backward "[\"<>'= \t\r\n]" line-beg t))) (if point (1+ point))) line-beg)) (file (buffer-substring start end))) (if (and file (or (string-match "^/" file) (and (setq file (and (string-match "^[^/]*/" file) (match-string 0 file))) (file-directory-p file)))) (unless (ac-windows-remote-file-p file) start)))) (defun ac-prefix-c-dot () "C-like languages dot(.) prefix." (if (re-search-backward "\\.\\(\\(?:[a-zA-Z0-9][_a-zA-Z0-9]*\\)?\\)\\=" nil t) (match-beginning 1))) (defun ac-prefix-c-dot-ref () "C-like languages dot(.) and reference(->) prefix." (if (re-search-backward "\\(?:\\.\\|->\\)\\(\\(?:[a-zA-Z0-9][_a-zA-Z0-9]*\\)?\\)\\=" nil t) (match-beginning 1))) (defun ac-prefix-cc-member () "C-like languages member(.)(->)(::) prefix." (when (re-search-backward "\\(?:\\.\\|->\\|::\\)\\(\\(?:[a-zA-Z0-9][_a-zA-Z0-9]*\\)?\\)\\=" nil t) (match-beginning 1))) (defun ac-define-prefix (name prefix) "Define new prefix definition. You can not use it in source definition like (prefix . `NAME')." (push (cons name prefix) ac-prefix-definitions)) (defun ac-match-substring (prefix candidates) (cl-loop with regexp = (regexp-quote prefix) for candidate in candidates if (string-match regexp candidate) collect candidate)) (defsubst ac-source-entity (source) (if (symbolp source) (symbol-value source) source)) (defun ac-source-available-p (source) (if (and (symbolp source) (get source 'available)) (eq (get source 'available) t) (let* ((src (ac-source-entity source)) (avail-pair (assq 'available src)) (avail-cond (cdr avail-pair)) (available (and (if avail-pair (cond ((symbolp avail-cond) (funcall avail-cond)) ((listp avail-cond) (eval avail-cond))) t) (cl-loop for feature in (assoc-default 'depends src) unless (require feature nil t) return nil finally return t)))) (if (symbolp source) (put source 'available (if available t 'no))) available))) (defun ac-compile-sources (sources) "Compiled `SOURCES' into expanded sources style." (cl-loop for source in sources if (ac-source-available-p source) do (setq source (ac-source-entity source)) ;; prefix (let* ((prefix (assoc 'prefix source)) (real (assoc-default (cdr prefix) ac-prefix-definitions))) (cond (real (add-to-list 'source (cons 'prefix real))) ((null prefix) (add-to-list 'source (cons 'prefix 'ac-prefix-default))))) ;; match (let ((match (assq 'match source))) (cond ((eq (cdr match) 'substring) (setcdr match 'ac-match-substring)))) and collect source)) (defun ac-compiled-sources () (or ac-compiled-sources (setq ac-compiled-sources (ac-compile-sources ac-sources)))) (defsubst ac-menu-live-p () (popup-live-p ac-menu)) (defun ac-menu-create (point width height) (setq ac-menu (popup-create point width height :around t :face 'ac-candidate-face :max-width ac-max-width :mouse-face 'ac-candidate-mouse-face :selection-face 'ac-selection-face :symbol t :scroll-bar t :margin-left 1 :keymap ac-menu-map ))) (defun ac-menu-delete () (when ac-menu (popup-delete ac-menu) (setq ac-menu nil))) (defsubst ac-inline-overlay () (nth 0 ac-inline)) (defsubst ac-inline-live-p () (and ac-inline (ac-inline-overlay) t)) (defun ac-inline-show (point string) (unless ac-inline (setq ac-inline (list nil))) (save-excursion (let ((overlay (ac-inline-overlay)) (width 0) (string-width (string-width string)) (length 0) (original-string string)) ;; Calculate string space to show completion (goto-char point) (let (c) (while (and (not (eolp)) (< width string-width) (setq c (char-after)) (not (eq c ?\t))) ; special case for tab (cl-incf width (char-width c)) (cl-incf length) (forward-char))) ;; Show completion (goto-char point) (cond ((= width 0) ;; End-of-line ;; Do nothing ) ((<= width string-width) ;; No space to show ;; Do nothing ) ((> width string-width) ;; Need to fill space (setq string (concat string (make-string (- width string-width) ? ))))) (setq string (propertize string 'face 'ac-completion-face)) (if overlay (progn (move-overlay overlay point (+ point length)) (overlay-put overlay 'invisible nil)) (setq overlay (make-overlay point (+ point length))) (setf (nth 0 ac-inline) overlay) (overlay-put overlay 'priority 9999) ;; Help prefix-overlay in some cases (overlay-put overlay 'keymap ac-current-map)) ;; TODO no width but char (if (eq length 0) ;; Case: End-of-line (progn (put-text-property 0 1 'cursor t string) (overlay-put overlay 'after-string string)) (let ((display (substring string 0 1)) (after-string (substring string 1))) (overlay-put overlay 'display display) (overlay-put overlay 'after-string after-string))) (overlay-put overlay 'string original-string)))) (defun ac-inline-delete () (when (ac-inline-live-p) (ac-inline-hide) (delete-overlay (ac-inline-overlay)) (setq ac-inline nil))) (defun ac-inline-hide () (when (ac-inline-live-p) (let ((overlay (ac-inline-overlay)) (buffer-undo-list t)) (when overlay (move-overlay overlay (point-min) (point-min)) (overlay-put overlay 'invisible t) (overlay-put overlay 'display nil) (overlay-put overlay 'after-string nil))))) (defun ac-inline-update () (if (and ac-completing ac-prefix (stringp ac-common-part)) (let ((common-part-length (length ac-common-part)) (prefix-length (length ac-prefix))) (if (> common-part-length prefix-length) (progn (ac-inline-hide) (ac-inline-show (point) (substring ac-common-part prefix-length))) (ac-inline-delete))) (ac-inline-delete))) (defun ac-put-prefix-overlay () (unless ac-prefix-overlay (let (newline) ;; Insert newline to make sure that cursor always on the overlay (when (eobp) (popup-save-buffer-state (insert "\n")) (setq newline t)) (setq ac-prefix-overlay (make-overlay ac-point (1+ (point)) nil t t)) (overlay-put ac-prefix-overlay 'priority 9999) (overlay-put ac-prefix-overlay 'keymap (make-sparse-keymap)) (overlay-put ac-prefix-overlay 'newline newline)))) (defun ac-remove-prefix-overlay () (when ac-prefix-overlay (when (overlay-get ac-prefix-overlay 'newline) ;; Remove inserted newline (popup-save-buffer-state (goto-char (point-max)) (if (eq (char-before) ?\n) (delete-char -1)))) (delete-overlay ac-prefix-overlay))) (defun ac-activate-completing-map () (if (and ac-show-menu ac-use-menu-map) (set-keymap-parent ac-current-map ac-menu-map)) (when (and ac-use-overriding-local-map (null overriding-terminal-local-map)) (setq overriding-terminal-local-map ac-current-map)) (when ac-prefix-overlay (set-keymap-parent (overlay-get ac-prefix-overlay 'keymap) ac-current-map))) (defun ac-deactivate-completing-map () (set-keymap-parent ac-current-map ac-completing-map) (when (and ac-use-overriding-local-map (eq overriding-terminal-local-map ac-current-map)) (setq overriding-terminal-local-map nil)) (when ac-prefix-overlay (set-keymap-parent (overlay-get ac-prefix-overlay 'keymap) nil))) (defsubst ac-selected-candidate () (if ac-menu (popup-selected-item ac-menu))) (defun ac-prefix (requires ignore-list) (cl-loop with current = (point) with point with point-def with prefix-def with sources for source in (ac-compiled-sources) for prefix = (assoc-default 'prefix source) for req = (or (assoc-default 'requires source) requires 1) do (unless (member prefix ignore-list) (save-excursion (setq point (cond ((symbolp prefix) (funcall prefix)) ((stringp prefix) (and (re-search-backward (concat prefix "\\=") nil t) (or (match-beginning 1) (match-beginning 0)))) ((stringp (car-safe prefix)) (let ((regexp (nth 0 prefix)) (end (nth 1 prefix)) (group (nth 2 prefix))) (and (re-search-backward (concat regexp "\\=") nil t) (funcall (if end 'match-end 'match-beginning) (or group 0))))) (t (eval prefix)))) (if (and point (integerp req) (< (- current point) req)) (setq point nil)) (when point (if (null prefix-def) (setq prefix-def prefix point-def point)) (if (equal point point-def) (push source sources))))) finally return (and point-def (list prefix-def point-def (nreverse sources))))) (defun ac-init () "Initialize current sources to start completion." (setq ac-candidates-cache nil) (cl-loop for source in ac-current-sources for function = (assoc-default 'init source) if function do (save-excursion (cond ((functionp function) (funcall function)) (t (eval function)))))) (defun ac-candidates-1 (source) (let* ((do-cache (assq 'cache source)) (function (assoc-default 'candidates source)) (action (assoc-default 'action source)) (document (assoc-default 'document source)) (symbol (assoc-default 'symbol source)) (ac-limit (or (assoc-default 'limit source) ac-limit)) (face (or (assoc-default 'face source) (assoc-default 'candidate-face source))) (selection-face (assoc-default 'selection-face source)) (cache (and do-cache (assq source ac-candidates-cache))) (candidates (cdr cache))) (unless cache (setq candidates (save-excursion (cond ((functionp function) (funcall function)) (t (eval function))))) ;; Convert (name value) format candidates into name with text properties. (setq candidates (mapcar (lambda (candidate) (if (consp candidate) (propertize (car candidate) 'value (cdr candidate)) candidate)) candidates)) (when do-cache (push (cons source candidates) ac-candidates-cache))) (setq candidates (funcall (or (assoc-default 'match source) ac-match-function) ac-prefix candidates)) ;; Remove extra items regarding to ac-limit (if (and (integerp ac-limit) (> ac-limit 1) (> (length candidates) ac-limit)) (setcdr (nthcdr (1- ac-limit) candidates) nil)) ;; Put candidate properties (setq candidates (mapcar (lambda (candidate) (popup-item-propertize candidate 'action action 'symbol symbol 'document document 'popup-face face 'selection-face selection-face)) candidates)) candidates)) (defun ac-delete-duplicated-candidates (candidates) (cl-delete-duplicates candidates :test (lambda (x y) ;; We assume two candidates are same if their titles are ;; equal and their actions are equal. (and (equal x y) (eq (popup-item-property x 'action) (popup-item-property y 'action)))) :from-end t)) (defun ac-reduce-candidates (candidates) ;; Call `ac-delete-duplicated-candidates' on first portion of ;; candidate list for speed. (let ((size 20)) (if (< (length candidates) size) (ac-delete-duplicated-candidates candidates) (cl-loop for c on candidates by 'cdr repeat (1- size) finally return (let ((rest (cdr c))) (setcdr c nil) (append (ac-delete-duplicated-candidates candidates) (copy-sequence rest))))))) (defun ac-candidates () "Produce candidates for current sources." (cl-loop with completion-ignore-case = (or (eq ac-ignore-case t) (and (eq ac-ignore-case 'smart) (let ((case-fold-search nil)) (not (string-match "[[:upper:]]" ac-prefix))))) with case-fold-search = completion-ignore-case with prefix-len = (length ac-prefix) for source in ac-current-sources append (ac-candidates-1 source) into candidates finally return (progn (if (and ac-use-comphist ac-comphist) (if ac-show-menu (let* ((pair (ac-comphist-sort ac-comphist candidates prefix-len ac-comphist-threshold)) (n (car pair)) (result (ac-reduce-candidates (cdr pair))) (cons (if (> n 0) (nthcdr (1- n) result))) (cdr (cdr cons))) ;; XXX ugly (if cons (setcdr cons nil)) (setq ac-common-part (try-completion ac-prefix result)) (setq ac-whole-common-part (try-completion ac-prefix candidates)) (if cons (setcdr cons cdr)) result) (setq candidates (ac-comphist-sort ac-comphist candidates prefix-len)) (setq ac-common-part (if candidates (popup-x-to-string (car candidates)))) (setq ac-whole-common-part (try-completion ac-prefix candidates)) candidates) (when ac-show-menu (setq candidates (ac-reduce-candidates candidates))) (setq ac-common-part (try-completion ac-prefix candidates)) (setq ac-whole-common-part ac-common-part) candidates)))) (defun ac-update-candidates (cursor scroll-top) "Update candidates of menu to `ac-candidates' and redraw it." (setf (popup-cursor ac-menu) cursor (popup-scroll-top ac-menu) scroll-top) (setq ac-dwim-enable (= (length ac-candidates) 1)) (if ac-candidates (progn (setq ac-completing t) (ac-activate-completing-map)) (setq ac-completing nil) (ac-deactivate-completing-map)) (unless ac-disable-inline (ac-inline-update)) (popup-set-list ac-menu ac-candidates) (if (and (not ac-fuzzy-enable) (<= (length ac-candidates) ac-candidate-menu-min)) (popup-hide ac-menu) (if ac-show-menu (popup-draw ac-menu)))) (defun ac-reposition () "Force to redraw candidate menu with current `ac-candidates'." (let ((cursor (popup-cursor ac-menu)) (scroll-top (popup-scroll-top ac-menu)) (height (popup-height ac-menu))) (ac-menu-delete) (ac-menu-create ac-point (popup-preferred-width ac-candidates) height) (ac-update-candidates cursor scroll-top))) (defun ac-cleanup () "Cleanup auto completion." (if ac-cursor-color (set-cursor-color ac-cursor-color)) (when (and ac-use-comphist ac-comphist) (when (and (null ac-selected-candidate) (member ac-prefix ac-candidates)) ;; Assume candidate is selected by just typing (setq ac-selected-candidate ac-prefix) (setq ac-last-point ac-point)) (when ac-selected-candidate (ac-comphist-add ac-comphist ac-selected-candidate (if ac-last-point (- ac-last-point ac-point) (length ac-prefix))))) (ac-deactivate-completing-map) (ac-remove-prefix-overlay) (ac-remove-quick-help) (ac-inline-delete) (ac-menu-delete) (ac-cancel-timer) (ac-cancel-show-menu-timer) (ac-cancel-quick-help-timer) (setq ac-cursor-color nil ac-inline nil ac-show-menu nil ac-menu nil ac-completing nil ac-point nil ac-last-point nil ac-prefix nil ac-prefix-overlay nil ac-selected-candidate nil ac-common-part nil ac-whole-common-part nil ac-triggered nil ac-limit nil ac-candidates nil ac-candidates-cache nil ac-fuzzy-enable nil ac-dwim-enable nil ac-compiled-sources nil ac-current-sources nil ac-current-prefix-def nil ac-ignoring-prefix-def nil)) (defsubst ac-abort () "Abort completion." (ac-cleanup)) (defun ac-extend-region-to-delete (string) "Determine the boundary of the region to delete before inserting the completed string. This will be either the position of current point, or the end of the symbol at point, if the text from point to end of symbol is the right part of the completed string." (let* ((end-of-symbol (or (cdr-safe (bounds-of-thing-at-point 'symbol)) (point))) (remaindar (buffer-substring-no-properties (point) end-of-symbol)) (remaindar-length (length remaindar))) (if (and (>= (length string) remaindar-length) (string= (substring-no-properties string (- remaindar-length)) remaindar)) end-of-symbol (point)))) (defun ac-expand-string (string &optional remove-undo-boundary) "Expand `STRING' into the buffer and update `ac-prefix' to `STRING'. This function records deletion and insertion sequences by `undo-boundary'. If `remove-undo-boundary' is non-nil, this function also removes `undo-boundary' that have been made before in this function. When `buffer-undo-list' is `t', `remove-undo-boundary' has no effect." (when (eq buffer-undo-list t) (setq remove-undo-boundary nil)) (when (not (equal string (buffer-substring ac-point (point)))) (undo-boundary) ;; We can't use primitive-undo since it undoes by ;; groups, divided by boundaries. ;; We don't want boundary between deletion and insertion. ;; So do it manually. ;; Delete region silently for undo: (if remove-undo-boundary (progn (let (buffer-undo-list) (save-excursion (delete-region ac-point (ac-extend-region-to-delete string)))) (setq buffer-undo-list (nthcdr 2 buffer-undo-list))) (delete-region ac-point (ac-extend-region-to-delete string))) (insert (substring-no-properties string)) ;; Sometimes, possible when omni-completion used, (insert) added ;; to buffer-undo-list strange record about position changes. ;; Delete it here: (when (and remove-undo-boundary (integerp (cadr buffer-undo-list))) (setcdr buffer-undo-list (nthcdr 2 buffer-undo-list))) (undo-boundary) (setq ac-selected-candidate string) (setq ac-prefix string))) (defun ac-set-trigger-key (key) "Set `ac-trigger-key' to `KEY'. It is recommemded to use this function instead of calling `setq'." ;; Remove old mapping (when ac-trigger-key (define-key ac-mode-map (read-kbd-macro ac-trigger-key) nil)) ;; Make new mapping (setq ac-trigger-key key) (when key (define-key ac-mode-map (read-kbd-macro key) 'ac-trigger-key-command))) (defun ac-set-timer () (unless ac-timer (setq ac-timer (run-with-idle-timer ac-delay ac-delay 'ac-update-greedy)))) (defun ac-cancel-timer () (when (timerp ac-timer) (cancel-timer ac-timer) (setq ac-timer nil))) (defun ac-update (&optional force) (when (and auto-complete-mode ac-prefix (or ac-triggered force) (not isearch-mode)) (ac-put-prefix-overlay) (setq ac-candidates (ac-candidates)) (let ((preferred-width (popup-preferred-width ac-candidates))) ;; Reposition if needed (when (or (null ac-menu) (>= (popup-width ac-menu) preferred-width) (<= (popup-width ac-menu) (- preferred-width 10)) (and (> (popup-direction ac-menu) 0) (ac-menu-at-wrapper-line-p))) (ac-inline-hide) ; Hide overlay to calculate correct column (ac-remove-quick-help) (ac-menu-delete) (ac-menu-create ac-point preferred-width ac-menu-height))) (ac-update-candidates 0 0) t)) (defun ac-update-greedy (&optional force) (let (result) (while (when (and (setq result (ac-update force)) (null ac-candidates)) (add-to-list 'ac-ignoring-prefix-def ac-current-prefix-def) (ac-start :force-init t) ac-current-prefix-def)) result)) (defun ac-set-show-menu-timer () (when (and (or (integerp ac-auto-show-menu) (floatp ac-auto-show-menu)) (null ac-show-menu-timer)) (setq ac-show-menu-timer (run-with-idle-timer ac-auto-show-menu ac-auto-show-menu 'ac-show-menu)))) (defun ac-cancel-show-menu-timer () (when (timerp ac-show-menu-timer) (cancel-timer ac-show-menu-timer) (setq ac-show-menu-timer nil))) (defun ac-show-menu () (when (not (eq ac-show-menu t)) (setq ac-show-menu t) (ac-inline-hide) (ac-remove-quick-help) (ac-update t))) (defun ac-help (&optional persist) (interactive "P") (when ac-menu (popup-menu-show-help ac-menu persist))) (defun ac-persist-help () (interactive) (ac-help t)) (defun ac-last-help (&optional persist) (interactive "P") (when ac-last-completion (popup-item-show-help (cdr ac-last-completion) persist))) (defun ac-last-persist-help () (interactive) (ac-last-help t)) (defun ac-set-quick-help-timer () (when (and ac-use-quick-help (null ac-quick-help-timer)) (setq ac-quick-help-timer (run-with-idle-timer ac-quick-help-delay ac-quick-help-delay 'ac-quick-help)))) (defun ac-cancel-quick-help-timer () (when (timerp ac-quick-help-timer) (cancel-timer ac-quick-help-timer) (setq ac-quick-help-timer nil))) (defun ac-pos-tip-show-quick-help (menu &optional item &rest args) (let* ((point (plist-get args :point)) (around nil) (parent-offset (popup-offset menu)) (doc (popup-menu-documentation menu item))) (when (stringp doc) (if (popup-hidden-p menu) (setq around t) (setq point nil)) (with-no-warnings (pos-tip-show doc 'popup-tip-face (or point (and menu (popup-child-point menu parent-offset)) (point)) nil 300 popup-tip-max-width nil nil (and (not around) 0)) (unless (plist-get args :nowait) (clear-this-command-keys) (unwind-protect (push (read-event (plist-get args :prompt)) unread-command-events) (pos-tip-hide)) t))))) (defun ac-quick-help-use-pos-tip-p () (and ac-quick-help-prefer-pos-tip window-system (featurep 'pos-tip))) (defun ac-quick-help (&optional force) (interactive) ;; TODO don't use FORCE (when (and (or force (with-no-warnings ;; called-interactively-p can take no args (called-interactively-p)) ;; ac-isearch'ing (null this-command)) (ac-menu-live-p) (null ac-quick-help)) (setq ac-quick-help (funcall (if (ac-quick-help-use-pos-tip-p) 'ac-pos-tip-show-quick-help 'popup-menu-show-quick-help) ac-menu nil :point ac-point :height ac-quick-help-height :nowait t)))) (defun ac-remove-quick-help () (when (ac-quick-help-use-pos-tip-p) (with-no-warnings (pos-tip-hide))) (when ac-quick-help (popup-delete ac-quick-help) (setq ac-quick-help nil))) (defun ac-last-quick-help () (interactive) (when (and ac-last-completion (eq (marker-buffer (car ac-last-completion)) (current-buffer))) (let ((doc (popup-item-documentation (cdr ac-last-completion))) (point (marker-position (car ac-last-completion)))) (when (stringp doc) (if (ac-quick-help-use-pos-tip-p) (with-no-warnings (pos-tip-show doc nil point nil 300)) (popup-tip doc :point point :around t :scroll-bar t :margin t)))))) (defmacro ac-define-quick-help-command (name arglist &rest body) (declare (indent 2)) `(progn (defun ,name ,arglist ,@body) (put ',name 'ac-quick-help-command t))) (ac-define-quick-help-command ac-quick-help-scroll-down () (interactive) (when ac-quick-help (popup-scroll-down ac-quick-help))) (ac-define-quick-help-command ac-quick-help-scroll-up () (interactive) (when ac-quick-help (popup-scroll-up ac-quick-help))) ;;;; Auto completion isearch (defun ac-isearch-callback (list) (setq ac-dwim-enable (eq (length list) 1))) (defun ac-isearch () (interactive) (when (ac-menu-live-p) (ac-cancel-show-menu-timer) (ac-show-menu) (if ac-use-quick-help (let ((popup-menu-show-quick-help-function (if (ac-quick-help-use-pos-tip-p) 'ac-pos-tip-show-quick-help 'popup-menu-show-quick-help))) (popup-isearch ac-menu :callback 'ac-isearch-callback :help-delay ac-quick-help-delay)) (popup-isearch ac-menu :callback 'ac-isearch-callback)))) ;;;; Auto completion commands (cl-defun auto-complete-1 (&key sources (triggered 'command)) (let ((menu-live (ac-menu-live-p)) (inline-live (ac-inline-live-p)) started) (ac-abort) (let ((ac-sources (or sources ac-sources))) (if (or ac-show-menu-immediately-on-auto-complete inline-live) (setq ac-show-menu t)) (setq started (ac-start :triggered triggered))) (when (ac-update-greedy t) ;; TODO Not to cause inline completion to be disrupted. (if (ac-inline-live-p) (ac-inline-hide)) ;; Not to expand when it is first time to complete (when (and (or (and (not ac-expand-on-auto-complete) (> (length ac-candidates) 1) (not menu-live)) (not (let ((ac-common-part ac-whole-common-part)) (ac-expand-common)))) ac-use-fuzzy (null ac-candidates)) (ac-fuzzy-complete))) started)) ;;;###autoload (defun auto-complete (&optional sources) "Start auto-completion at current point." (interactive) (auto-complete-1 :sources sources)) (defun ac-fuzzy-complete () "Start fuzzy completion at current point." (interactive) (if (not (require 'fuzzy nil t)) (message "Please install fuzzy.el if you use fuzzy completion") (unless (ac-menu-live-p) (ac-start)) (let ((ac-match-function 'fuzzy-all-completions)) (when ac-fuzzy-cursor-color (unless ac-cursor-color (setq ac-cursor-color (frame-parameter (selected-frame) 'cursor-color))) (set-cursor-color ac-fuzzy-cursor-color)) (setq ac-show-menu t) (setq ac-fuzzy-enable t) (setq ac-triggered nil) (ac-update t))) t) (defun ac-next () "Select next candidate." (interactive) (when (ac-menu-live-p) (when (popup-hidden-p ac-menu) (ac-show-menu)) (popup-next ac-menu) (if (eq this-command 'ac-next) (setq ac-dwim-enable t)))) (defun ac-previous () "Select previous candidate." (interactive) (when (ac-menu-live-p) (when (popup-hidden-p ac-menu) (ac-show-menu)) (popup-previous ac-menu) (if (eq this-command 'ac-previous) (setq ac-dwim-enable t)))) (defun ac-expand (arg) "Try expand, and if expanded twice, select next candidate. If given a prefix argument, select the previous candidate." (interactive "P") (unless (ac-expand-common) (let ((string (ac-selected-candidate))) (when string (when (equal ac-prefix string) (if (not arg) (ac-next) (ac-previous)) (setq string (ac-selected-candidate))) (ac-expand-string string (or (eq last-command 'ac-expand) (eq last-command 'ac-expand-previous))) ;; Do reposition if menu at long line (if (and (> (popup-direction ac-menu) 0) (ac-menu-at-wrapper-line-p)) (ac-reposition)) (setq ac-show-menu t) string)))) (defun ac-expand-previous (arg) "Like `ac-expand', but select previous candidate." (interactive "P") (ac-expand (not arg))) (defun ac-expand-common () "Try to expand meaningful common part." (interactive) (if (and ac-dwim ac-dwim-enable) (ac-complete) (when (and (ac-inline-live-p) ac-common-part) (ac-inline-hide) (ac-expand-string ac-common-part (eq last-command this-command)) (setq ac-common-part nil) t))) (defun ac-complete-1 (candidate) (let ((action (popup-item-property candidate 'action)) (fallback nil)) (when candidate (unless (ac-expand-string candidate) (setq fallback t)) ;; Remember to show help later (when (and ac-point candidate) (unless ac-last-completion (setq ac-last-completion (cons (make-marker) nil))) (set-marker (car ac-last-completion) ac-point ac-buffer) (setcdr ac-last-completion candidate))) (ac-abort) (cond (action (funcall action)) (fallback (ac-fallback-command))) candidate)) (defun ac-complete () "Try complete." (interactive) (ac-complete-1 (ac-selected-candidate))) (cl-defun ac-start (&key requires force-init (triggered (or ac-triggered t))) "Start completion." (interactive) (if (not auto-complete-mode) (message "auto-complete-mode is not enabled") (let* ((info (ac-prefix requires ac-ignoring-prefix-def)) (prefix-def (nth 0 info)) (point (nth 1 info)) (sources (nth 2 info)) prefix (init (or force-init (not (eq ac-point point))))) (if (or (null point) (progn (setq prefix (buffer-substring-no-properties point (point))) (and (not (eq triggered 'command)) (ac-stop-word-p prefix)))) (prog1 nil (ac-abort)) (when (and ac-use-fuzzy ac-fuzzy-cursor-color) (unless ac-cursor-color (setq ac-cursor-color (frame-parameter (selected-frame) 'cursor-color)))) (setq ac-show-menu (or ac-show-menu (if (eq ac-auto-show-menu t) t)) ac-current-sources sources ac-buffer (current-buffer) ac-point point ac-prefix prefix ac-limit ac-candidate-limit ac-triggered triggered ac-current-prefix-def prefix-def) (when (or init (null ac-prefix-overlay)) (ac-init)) (ac-set-timer) (ac-set-show-menu-timer) (ac-set-quick-help-timer) (ac-put-prefix-overlay) t)))) (defun ac-stop () "Stop completing." (interactive) (setq ac-selected-candidate nil) (ac-abort)) (defun ac-ignore (&rest ignore) "Same as `ignore'." (interactive)) (defun ac-mouse-1 (event) (interactive "e") (popup-awhen (popup-menu-item-of-mouse-event event) (ac-complete-1 it))) (defun ac-mouse-4 (event) (interactive "e") (ac-previous)) (defun ac-mouse-5 (event) (interactive "e") (ac-next)) (defun ac-trigger-key-command (&optional force) (interactive "P") (let (started) (when (or force (ac-trigger-command-p last-command)) (setq started (auto-complete-1 :triggered 'trigger-key))) (unless started (ac-fallback-command 'ac-trigger-key-command)))) ;;;; Basic cache facility (defvar ac-clear-variables-every-minute-timer nil) (defvar ac-clear-variables-after-save nil) (defvar ac-clear-variables-every-minute nil) (defvar ac-minutes-counter 0) (defun ac-clear-variable-after-save (variable &optional pred) (add-to-list 'ac-clear-variables-after-save (cons variable pred))) (defun ac-clear-variables-after-save () (dolist (pair ac-clear-variables-after-save) (if (or (null (cdr pair)) (funcall (cdr pair))) (set (car pair) nil)))) (defun ac-clear-variable-every-minutes (variable minutes) (add-to-list 'ac-clear-variables-every-minute (cons variable minutes))) (defun ac-clear-variable-every-minute (variable) (ac-clear-variable-every-minutes variable 1)) (defun ac-clear-variable-every-10-minutes (variable) (ac-clear-variable-every-minutes variable 10)) (defun ac-clear-variables-every-minute () (cl-incf ac-minutes-counter) (dolist (pair ac-clear-variables-every-minute) (if (eq (% ac-minutes-counter (cdr pair)) 0) (set (car pair) nil)))) ;;;; Auto complete mode (defun ac-cursor-on-diable-face-p (&optional point) (memq (get-text-property (or point (point)) 'face) ac-disable-faces)) (defun ac-trigger-command-p (command) "Return non-nil if `COMMAND' is a trigger command." (and (symbolp command) (not (memq command ac-non-trigger-commands)) (or (memq command ac-trigger-commands) (string-match "self-insert-command" (symbol-name command)) (string-match "electric" (symbol-name command))))) (defun ac-fallback-key-sequence () (setq unread-command-events (append (this-single-command-raw-keys) unread-command-events)) (read-key-sequence-vector "")) (defun ac-fallback-command (&optional except-command) (let* ((auto-complete-mode nil) (keys (ac-fallback-key-sequence)) (command (and keys (key-binding keys)))) (when (and (commandp command) (not (eq command except-command))) (setq this-command command) (call-interactively command)))) (defun ac-compatible-package-command-p (command) "Return non-nil if `COMMAND' is compatible with auto-complete." (and (symbolp command) (string-match ac-compatible-packages-regexp (symbol-name command)))) (defun ac-handle-pre-command () (condition-case var (if (or (setq ac-triggered (and (not ac-fuzzy-enable) ; ignore key storkes in fuzzy mode (or (eq this-command 'auto-complete) ; special case (ac-trigger-command-p this-command) (and ac-completing (memq this-command ac-trigger-commands-on-completing))) (not (ac-cursor-on-diable-face-p)) (or ac-triggered t))) (ac-compatible-package-command-p this-command)) (progn (if (or (not (symbolp this-command)) (not (get this-command 'ac-quick-help-command))) (ac-remove-quick-help)) ;; Not to cause inline completion to be disrupted. (ac-inline-hide)) (ac-abort)) (error (ac-error var)))) (defun ac-handle-post-command () (condition-case var (when (and ac-triggered (or ac-auto-start ac-completing) (not isearch-mode)) (setq ac-last-point (point)) (ac-start :requires (unless ac-completing ac-auto-start)) (unless ac-disable-inline (ac-inline-update))) (error (ac-error var)))) (defvar ac-flycheck-poll-completion-end-timer nil "Timer to poll end of completion.") (defun ac-syntax-checker-workaround () (if ac-stop-flymake-on-completing (progn (make-local-variable 'ac-flycheck-poll-completion-end-timer) (when (require 'flymake nil t) (defadvice flymake-on-timer-event (around ac-flymake-stop-advice activate) (unless ac-completing ad-do-it))) (when (require 'flycheck nil t) (defadvice flycheck-handle-idle-change (around ac-flycheck-stop-advice activate) (if ac-completing (setq ac-flycheck-poll-completion-end-timer (run-at-time ac-flycheck-poll-completion-end-interval nil #'flycheck-handle-idle-change)) ad-do-it)))) (when (featurep 'flymake) (ad-disable-advice 'flymake-on-timer-event 'around 'ac-flymake-stop-advice)) (when (featurep 'flycheck) (ad-disable-advice 'flycheck-handle-idle-change 'around 'ac-flycheck-stop-advice)))) (defun ac-setup () (if ac-trigger-key (ac-set-trigger-key ac-trigger-key)) (if ac-use-comphist (ac-comphist-init)) (unless ac-clear-variables-every-minute-timer (setq ac-clear-variables-every-minute-timer (run-with-timer 60 60 'ac-clear-variables-every-minute))) (ac-syntax-checker-workaround)) ;;;###autoload (define-minor-mode auto-complete-mode "AutoComplete mode" :lighter " AC" :keymap ac-mode-map :group 'auto-complete (if auto-complete-mode (progn (ac-setup) (add-hook 'pre-command-hook 'ac-handle-pre-command nil t) (add-hook 'post-command-hook 'ac-handle-post-command nil t) (add-hook 'after-save-hook 'ac-clear-variables-after-save nil t) (run-hooks 'auto-complete-mode-hook)) (remove-hook 'pre-command-hook 'ac-handle-pre-command t) (remove-hook 'post-command-hook 'ac-handle-post-command t) (remove-hook 'after-save-hook 'ac-clear-variables-after-save t) (ac-abort))) (defun auto-complete-mode-maybe () "What buffer `auto-complete-mode' prefers." (if (and (not (minibufferp (current-buffer))) (memq major-mode ac-modes)) (auto-complete-mode 1))) ;;;###autoload (define-global-minor-mode global-auto-complete-mode auto-complete-mode auto-complete-mode-maybe :group 'auto-complete) ;;;; Compatibilities with other extensions (defun ac-flyspell-workaround () "Flyspell uses `sit-for' for delaying its process. Unfortunatelly, it stops auto completion which is trigger with `run-with-idle-timer'. This workaround avoid flyspell processes when auto completion is being started." (interactive) (defadvice flyspell-post-command-hook (around ac-flyspell-workaround activate) (unless ac-triggered ad-do-it))) (defun ac-linum-workaround () "linum-mode tries to display the line numbers even for the completion menu. This workaround stops that annoying behavior." (interactive) (defadvice linum-update (around ac-linum-update-workaround activate) (unless ac-completing ad-do-it))) ;;;; Standard sources (defmacro ac-define-source (name source) "Source definition macro. It defines a complete command also." (declare (indent 1)) `(progn (defvar ,(intern (format "ac-source-%s" name))) ;; Use `setq' to reset ac-source-NAME every time ;; `ac-define-source' is called. This is useful, for example ;; when evaluating `ac-define-source' using C-M-x (`eval-defun'). (setq ,(intern (format "ac-source-%s" name)) ,source) (defun ,(intern (format "ac-complete-%s" name)) () (interactive) (auto-complete '(,(intern (format "ac-source-%s" name))))))) ;; Words in buffer source (defvar ac-word-index nil) (defun ac-candidate-words-in-buffer (point prefix limit) (let ((i 0) candidate candidates (regexp (concat "\\_<" (regexp-quote prefix) "\\(\\sw\\|\\s_\\)+\\_>"))) (save-excursion ;; Search backward (goto-char point) (while (and (or (not (integerp limit)) (< i limit)) (re-search-backward regexp nil t)) (setq candidate (match-string-no-properties 0)) (unless (member candidate candidates) (push candidate candidates) (cl-incf i))) ;; Search backward (goto-char (+ point (length prefix))) (while (and (or (not (integerp limit)) (< i limit)) (re-search-forward regexp nil t)) (setq candidate (match-string-no-properties 0)) (unless (member candidate candidates) (push candidate candidates) (cl-incf i))) (nreverse candidates)))) (defun ac-incremental-update-word-index () (unless (local-variable-p 'ac-word-index) (make-local-variable 'ac-word-index)) (if (null ac-word-index) (setq ac-word-index (cons nil nil))) ;; Mark incomplete (if (car ac-word-index) (setcar ac-word-index nil)) (let ((index (cdr ac-word-index)) (words (ac-candidate-words-in-buffer ac-point ac-prefix (or (and (integerp ac-limit) ac-limit) 10)))) (dolist (word words) (unless (member word index) (push word index) (setcdr ac-word-index index))))) (defun ac-update-word-index-1 () (unless (local-variable-p 'ac-word-index) (make-local-variable 'ac-word-index)) (when (and (not (car ac-word-index)) (< (buffer-size) 1048576)) ;; Complete index (setq ac-word-index (cons t (split-string (buffer-substring-no-properties (point-min) (point-max)) "\\(?:^\\|\\_>\\).*?\\(?:\\_<\\|$\\)"))))) (defun ac-update-word-index () (dolist (buffer (buffer-list)) (when (or ac-fuzzy-enable (not (eq buffer (current-buffer)))) (with-current-buffer buffer (ac-update-word-index-1))))) (defun ac-word-candidates (&optional buffer-pred) (cl-loop initially (unless ac-fuzzy-enable (ac-incremental-update-word-index)) for buffer in (buffer-list) if (and (or (not (integerp ac-limit)) (< (length candidates) ac-limit)) (if buffer-pred (funcall buffer-pred buffer) t)) append (funcall ac-match-function ac-prefix (and (local-variable-p 'ac-word-index buffer) (cdr (buffer-local-value 'ac-word-index buffer)))) into candidates finally return (delete-dups candidates))) (ac-define-source words-in-buffer '((candidates . ac-word-candidates))) (ac-define-source words-in-all-buffer '((init . ac-update-word-index) (candidates . ac-word-candidates))) (ac-define-source words-in-same-mode-buffers '((init . ac-update-word-index) (candidates . (ac-word-candidates (lambda (buffer) (derived-mode-p (buffer-local-value 'major-mode buffer))))))) ;; Lisp symbols source (defvar ac-symbols-cache nil) (ac-clear-variable-every-10-minutes 'ac-symbols-cache) (defun ac-symbol-file (symbol type) (if (fboundp 'find-lisp-object-file-name) (find-lisp-object-file-name symbol type) (let ((file-name (with-no-warnings (describe-simplify-lib-file-name (symbol-file symbol type))))) (when (equal file-name "loaddefs.el") ;; Find the real def site of the preloaded object. (let ((location (condition-case nil (if (eq type 'defun) (find-function-search-for-symbol symbol nil "loaddefs.el") (find-variable-noselect symbol file-name)) (error nil)))) (when location (with-current-buffer (car location) (when (cdr location) (goto-char (cdr location))) (when (re-search-backward "^;;; Generated autoloads from \\(.*\\)" nil t) (setq file-name (match-string 1))))))) (if (and (null file-name) (or (eq type 'defun) (integerp (get symbol 'variable-documentation)))) ;; It's a object not defined in Elisp but in C. (if (get-buffer " *DOC*") (if (eq type 'defun) (help-C-file-name (symbol-function symbol) 'subr) (help-C-file-name symbol 'var)) 'C-source) file-name)))) (defun ac-symbol-documentation (symbol) (if (stringp symbol) (setq symbol (intern-soft symbol))) (ignore-errors (with-temp-buffer (let ((standard-output (current-buffer))) (prin1 symbol) (princ " is ") (cond ((fboundp symbol) ;; import help-xref-following (require 'help-mode) (let ((help-xref-following t) (major-mode 'help-mode)) ; avoid error in Emacs 24 (describe-function-1 symbol)) (buffer-string)) ((boundp symbol) (let ((file-name (ac-symbol-file symbol 'defvar))) (princ "a variable") (when file-name (princ " defined in `") (princ (if (eq file-name 'C-source) "C source code" (file-name-nondirectory file-name)))) (princ "'.\n\n") (princ (or (documentation-property symbol 'variable-documentation t) "Not documented.")) (buffer-string))) ((facep symbol) (let ((file-name (ac-symbol-file symbol 'defface))) (princ "a face") (when file-name (princ " defined in `") (princ (if (eq file-name 'C-source) "C source code" (file-name-nondirectory file-name)))) (princ "'.\n\n") (princ (or (documentation-property symbol 'face-documentation t) "Not documented.")) (buffer-string))) (t (let ((doc (documentation-property symbol 'group-documentation t))) (when doc (princ "a group.\n\n") (princ doc) (buffer-string))))))))) (defun ac-symbol-candidates () (or ac-symbols-cache (setq ac-symbols-cache (cl-loop for x being the symbols if (or (fboundp x) (boundp x) (symbol-plist x)) collect (symbol-name x))))) (ac-define-source symbols '((candidates . ac-symbol-candidates) (document . ac-symbol-documentation) (symbol . "s") (cache))) ;; Lisp functions source (defvar ac-functions-cache nil) (ac-clear-variable-every-10-minutes 'ac-functions-cache) (defun ac-function-candidates () (or ac-functions-cache (setq ac-functions-cache (cl-loop for x being the symbols if (fboundp x) collect (symbol-name x))))) (ac-define-source functions '((candidates . ac-function-candidates) (document . ac-symbol-documentation) (symbol . "f") (prefix . "(\\(\\(?:\\sw\\|\\s_\\)+\\)") (cache))) ;; Lisp variables source (defvar ac-variables-cache nil) (ac-clear-variable-every-10-minutes 'ac-variables-cache) (defun ac-variable-candidates () (or ac-variables-cache (setq ac-variables-cache (cl-loop for x being the symbols if (boundp x) collect (symbol-name x))))) (ac-define-source variables '((candidates . ac-variable-candidates) (document . ac-symbol-documentation) (symbol . "v") (cache))) ;; Lisp features source (defvar ac-emacs-lisp-features nil) (ac-clear-variable-every-10-minutes 'ac-emacs-lisp-features) (defun ac-emacs-lisp-feature-candidates () (or ac-emacs-lisp-features (if (fboundp 'find-library-suffixes) (let ((suffix (concat (regexp-opt (find-library-suffixes) t) "\\'"))) (setq ac-emacs-lisp-features (append (mapcar 'prin1-to-string features) (cl-loop for dir in load-path if (file-directory-p dir) append (cl-loop for file in (directory-files dir) if (string-match suffix file) collect (substring file 0 (match-beginning 0)))))))))) (ac-define-source features '((depends find-func) (candidates . ac-emacs-lisp-feature-candidates) (prefix . "require +'\\(\\(?:\\sw\\|\\s_\\)*\\)") (requires . 0))) (defvaralias 'ac-source-emacs-lisp-features 'ac-source-features) ;; Abbrev source (ac-define-source abbrev '((candidates . (mapcar 'popup-x-to-string (append (vconcat local-abbrev-table global-abbrev-table) nil))) (action . expand-abbrev) (symbol . "a") (cache))) ;; Files in current directory source (ac-define-source files-in-current-dir '((candidates . (directory-files default-directory)) (cache))) ;; Filename source (defvar ac-filename-cache nil) (defun ac-filename-candidate () (let (file-name-handler-alist) (unless (or (and comment-start-skip (string-match comment-start-skip ac-prefix)) (file-regular-p ac-prefix)) (ignore-errors (cl-loop with dir = (file-name-directory ac-prefix) with files = (or (assoc-default dir ac-filename-cache) (let ((files (directory-files dir nil "^[^.]"))) (push (cons dir files) ac-filename-cache) files)) for file in files for path = (concat dir file) collect (if (file-directory-p path) (concat path "/") path)))))) (ac-define-source filename '((init . (setq ac-filename-cache nil)) (candidates . ac-filename-candidate) (prefix . valid-file) (requires . 0) (action . ac-start) (limit . nil))) ;; Dictionary source (ac-define-source dictionary '((candidates . ac-buffer-dictionary) (symbol . "d"))) (provide 'auto-complete) ;;; auto-complete.el ends here auto-complete-1.5.1/dict/000077500000000000000000000000001267667017000152335ustar00rootroot00000000000000auto-complete-1.5.1/dict/ada-mode000066400000000000000000000007001267667017000166220ustar00rootroot00000000000000abort abs abstract accept access aliased all and array at begin body case constant declare delay delta digits do else elsif end entry exception exit for function generic goto if in interface is limited loop mod new not null of or others out overriding package pragma private procedure protected raise range record rem renames requeue return reverse select separate subtype synchronized tagged task terminate then type until use when while with xor auto-complete-1.5.1/dict/c++-mode000066400000000000000000000012751267667017000164550ustar00rootroot00000000000000alignas alignof and and_eq asm auto bitand bitor bool break case catch char char16_t char32_t class compl concept const const_cast constexpr continue decltype default define defined delete do double dynamic_cast elif else endif enum error explicit export extern false final float for friend goto if ifdef ifndef include inline int line long mutable namespace new noexcept not not_eq nullptr operator or or_eq override pragma _Pragma private protected public register reinterpret_cast requires return short signed sizeof static static_assert static_cast struct switch template this thread_local throw true try typedef typeid typename union unsigned using virtual void volatile wchar_t while xor xor_eq auto-complete-1.5.1/dict/c-mode000066400000000000000000000006011267667017000163170ustar00rootroot00000000000000auto _Alignas _Alignof _Atomic _Bool break case char _Complex const continue default define defined do double elif else endif enum error extern float for goto _Generic if ifdef ifndef _Imaginary include inline int line long _Noreturn pragma register restrict return short signed sizeof static struct switch _Static_assert typedef _Thread_local undef union unsigned void volatile while auto-complete-1.5.1/dict/caml-mode000066400000000000000000000034241267667017000170170ustar00rootroot00000000000000# OCaml 3.12.1 # Keywords and as assert begin class constraint do done downto else end exception external false for fun function functor if in include inherit initializer lazy let match method module mutable new object of open or private rec sig struct then to true try type val virtual when while with # Pervasives ! != & && * ** *. + +. - -. / /. := < <= <> = == > >= @ FP_infinite FP_nan FP_normal FP_subnormal FP_zero LargeFile Open_append Open_binary Open_creat Open_nonblock Open_rdonly Open_text Open_trunc Open_wronly Oupen_excl ^ ^^ abs abs_float acos asin asr at_exit atan atan2 bool_of_string ceil char_of_int classify_float close_in close_in_noerr close_out close_out_noerr compare cos cosh decr do_at_exit epsilon_float exit exp expm1 failwith float float_of_int float_of_string floor flush flush_all format format4 format_of_string fpclass frexp fst ignore in_channel in_channel_length incr infinity input input_binary_int input_byte input_char input_line input_value int_of_char int_of_float int_of_string invalid_arg land ldexp lnot log log10 log1p lor lsl lsr lxor max max_float max_int min min_float min_int mod mod_float modf nan neg_infinity not open_flag open_in open_in_bin open_in_gen open_out open_out_bin open_out_gen or out_channel out_channel_length output output_binary_int output_byte output_char output_string output_value pos_in pos_out pred prerr_char prerr_endline prerr_float prerr_int prerr_newline prerr_string print_char print_endline print_float print_int print_newline print_string raise read_float read_int read_line really_input ref seek_in seek_out set_binary_mode_in set_binary_mode_out sin sinh snd sqrt stderr stdin stdout string_of_bool string_of_float string_of_format string_of_int succ tan tanh truncate unsafe_really_input valid_float_lexem || ~ ~+ ~+. ~- ~-. auto-complete-1.5.1/dict/clojure-mode000066400000000000000000000130031267667017000175400ustar00rootroot00000000000000*agent* *allow-unresolved-vars* *assert* *clojure-version* *command-line-args* *compile-files* *compile-path* *compiler-options* *data-readers* *default-data-reader-fn* *err* *file* *flush-on-newline* *fn-loader* *in* *math-context* *ns* *out* *print-dup* *print-length* *print-level* *print-meta* *print-readably* *read-eval* *source-path* *unchecked-math* *use-context-classloader* *verbose-defrecords* *warn-on-reflection* ->ArrayChunk ->Vec ->VecNode ->VecSeq -cache-protocol-fn -reset-methods accessor aclone add-classpath add-watch agent agent-error agent-errors aget alength alias all-ns alter alter-meta! alter-var-root amap ancestors and apply areduce array-map as-> aset aset-boolean aset-byte aset-char aset-double aset-float aset-int aset-long aset-short assert assoc assoc! assoc-in associative? atom await await-for await1 bases bean bigdec bigint biginteger binding bit-and bit-and-not bit-clear bit-flip bit-not bit-or bit-set bit-shift-left bit-shift-right bit-test bit-xor boolean boolean-array booleans bound-fn bound-fn* bound? butlast byte byte-array bytes case cast char char-array char-escape-string char-name-string char? chars chunk chunk-append chunk-buffer chunk-cons chunk-first chunk-next chunk-rest chunked-seq? class class? clear-agent-errors clojure-version coll? comment commute comp comparator compare compare-and-set! compile complement concat cond cond-> cond->> condp conj conj! cons constantly construct-proxy contains? count counted? create-ns create-struct cycle dec dec' decimal? declare default-data-readers definline definterface defmacro defmethod defmulti defn defn- defonce defprotocol defrecord defstruct deftype delay delay? deliver denominator deref derive descendants destructure disj disj! dissoc dissoc! distinct distinct? doall doc dorun doseq dosync dotimes doto double double-array doubles drop drop-last drop-while dtype empty empty? ensure enumeration-seq error-handler error-mode eval even? every-pred every? ex-data ex-info extend extend-class extend-protocol extend-type extenders extends? false? ffirst file-seq filter filterv find find-doc find-keyword find-ns find-protocol-impl find-protocol-method find-var first flatten float float-array float? floats flush fn fn? fnext fnil for force format frequencies future future-call future-cancel future-cancelled? future-done? future? gen-class gen-interface gensym get get-in get-method get-proxy-class get-thread-bindings get-validator group-by hash hash-combine hash-map hash-set identical? identity if-let if-not ifn? import in-ns inc inc' init-proxy instance? int int-array integer? interleave intern interpose into into-array ints io! isa? iterate iterator-seq juxt keep keep-indexed key keys keyword keyword? last lazy-cat lazy-seq let letfn line-seq list list* list? load load-file load-reader load-string loaded-libs locking long long-array longs loop macroexpand macroexpand-1 make-array make-hierarchy map map-indexed map? mapcat mapv max max-key memfn memoize merge merge-with meta method-sig methods min min-key mod munge name namespace namespace-munge neg? newline next nfirst nil? nnext not not-any? not-empty not-every? not= ns ns-aliases ns-imports ns-interns ns-map ns-name ns-publics ns-refers ns-resolve ns-unalias ns-unmap nth nthnext nthrest num number? numerator object-array odd? or parents partial partition partition-all partition-by pcalls peek persistent! pmap pop pop! pop-thread-bindings pos? pr pr-str prefer-method prefers primitives-classnames print print-ctor print-dup print-method print-namespace-doc print-simple print-str printf println println-str prn prn-str promise proxy proxy-call-with-super proxy-mappings proxy-name proxy-super push-thread-bindings pvalues quot rand rand-int rand-nth range ratio? rational? rationalize re-find re-groups re-matcher re-matches re-pattern re-seq read read-line read-string realized? reduce reduce-kv reduced reduced? reductions ref ref-history-count ref-max-history ref-min-history ref-set refer refer-clojure reify release-pending-sends rem remove remove-all-methods remove-method remove-ns remove-watch repeat repeatedly replace replicate require reset! reset-meta! resolve rest restart-agent resultset-seq reverse reversible? rseq rsubseq satisfies? second select-keys send send-off send-via seq seq? seque sequence sequential? set set-agent-send-executor! set-agent-send-off-executor! set-error-handler! set-error-mode! set-validator! set? short short-array shorts shuffle shutdown-agents slurp some some-> some->> some-fn sort sort-by sorted-map sorted-map-by sorted-set sorted-set-by sorted? special-form-anchor special-symbol? spit split-at split-with str stream? string? struct struct-map subs subseq subvec supers swap! symbol symbol? sync syntax-symbol-anchor take take-last take-nth take-while test the-ns thread-bound? time to-array to-array-2d trampoline transient tree-seq true? type unchecked-add unchecked-add-int unchecked-byte unchecked-char unchecked-dec unchecked-dec-int unchecked-divide unchecked-divide-int unchecked-double unchecked-float unchecked-inc unchecked-inc-int unchecked-int unchecked-long unchecked-multiply unchecked-multiply-int unchecked-negate unchecked-negate-int unchecked-remainder unchecked-remainder-int unchecked-short unchecked-subtract unchecked-subtract-int underive unquote unquote-splicing update-in update-proxy use val vals var-get var-set var? vary-meta vec vector vector-of vector? when when-first when-let when-not while with-bindings with-bindings* with-in-str with-loading-context with-local-vars with-meta with-open with-out-str with-precision with-redefs with-redefs-fn xml-seq zero? zipmap auto-complete-1.5.1/dict/clojurescript-mode000066400000000000000000000102411267667017000207660ustar00rootroot00000000000000*agent* *clojure-version* *command-line-args* *compile-files* *compile-path* *err* *file* *flush-on-newline* *in* *ns* *out* *print-dup* *print-length* *print-level* *print-meta* *print-readably* *read-eval* *warn-on-reflection* accessor aclone add-classpath add-watch agent agent-error agent-errors aget alength alias all-ns alter alter-meta! alter-var-root amap ancestors and apply areduce array-map aset aset-boolean aset-byte aset-char aset-double aset-float aset-int aset-long aset-short assert assoc assoc! assoc-in associative? atom await await-for bases bean bigdec bigint binding bit-and bit-and-not bit-clear bit-flip bit-not bit-or bit-set bit-shift-left bit-shift-right bit-test bit-xor boolean boolean-array booleans bound-fn bound-fn* butlast byte byte-array bytes case cast char char-array char-escape-string char-name-string char? chars class class? clear-agent-errors clojure-version coll? comment commute comp comparator compare compare-and-set! compile complement concat cond condp conj conj! cons constantly construct-proxy contains? count counted? create-ns create-struct cycle dec decimal? declare definline defmacro defmethod defmulti defn defn- defonce defprotocol defstruct deftype delay delay? deliver deref derive descendants disj disj! dissoc dissoc! distinct distinct? doall doc dorun doseq dosync dotimes doto double double-array doubles drop drop-last drop-while dtype empty empty? ensure enumeration-seq error-handler error-mode eval even? every? extend extend-class extend-protocol extend-type extenders extends? false? ffirst file-seq filter find find-doc find-ns find-var first float float-array float? floats flush fn fn? fnext for force format future future-call future-cancel future-cancelled? future-done? future? gen-class gen-interface gensym get get-in get-method get-proxy-class get-thread-bindings get-validator hash hash-map hash-set identical? identity if-let if-not ifn? import in-ns inc init-proxy instance? int int-array integer? interleave intern interpose into into-array ints io! isa? iterate iterator-seq juxt key keys keyword keyword? last lazy-cat lazy-seq let letfn line-seq list list* list? load load-file load-reader load-string loaded-libs locking long long-array longs loop macroexpand macroexpand-1 make-array make-hierarchy map map? mapcat max max-key memfn memoize merge merge-with meta methods min min-key mod name namespace neg? newline next nfirst nil? nnext not not-any? not-empty not-every? not= ns ns-aliases ns-imports ns-interns ns-map ns-name ns-publics ns-refers ns-resolve ns-unalias ns-unmap nth nthnext num number? object-array odd? or parents partial partition pcalls peek persistent! pmap pop pop! pop-thread-bindings pos? pr pr-str prefer-method prefers print print-namespace-doc print-str printf println println-str prn prn-str promise proxy proxy-mappings proxy-super push-thread-bindings pvalues quot rand rand-int range ratio? rationalize re-find re-groups re-matcher re-matches re-pattern re-seq read read-line read-string reduce ref ref-history-count ref-max-history ref-min-history ref-set refer refer-clojure reify release-pending-sends rem remove remove-method remove-ns remove-watch repeat repeatedly replace replicate require reset! reset-meta! resolve rest restart-agent resultset-seq reverse reversible? rseq rsubseq satisfies? second select-keys send send-off seq seq? seque sequence sequential? set set-error-handler! set-error-mode! set-validator! set? short short-array shorts shutdown-agents slurp some sort sort-by sorted-map sorted-map-by sorted-set sorted-set-by sorted? special-form-anchor special-symbol? split-at split-with str stream? string? struct struct-map subs subseq subvec supers swap! symbol symbol? sync syntax-symbol-anchor take take-last take-nth take-while test the-ns time to-array to-array-2d trampoline transient tree-seq true? type unchecked-add unchecked-dec unchecked-divide unchecked-inc unchecked-multiply unchecked-negate unchecked-remainder unchecked-subtract underive update-in update-proxy use val vals var-get var-set var? vary-meta vec vector vector-of vector? when when-first when-let when-not while with-bindings with-bindings* with-in-str with-local-vars with-meta with-open with-out-str with-precision xml-seq zero? zipmap auto-complete-1.5.1/dict/coq-mode000066400000000000000000000047211267667017000166660ustar00rootroot00000000000000# Generated by the following form. # (loop for regexp in (append # coq-solve-tactics # coq-keywords # coq-reserved # coq-tactics # coq-tacticals # (list "Set" "Type" "Prop")) # append (split-string regexp (regexp-quote "\\s-+")) into words # finally (loop initially (goto-char (point-max)) # for word in (delete-dups (sort words 'string<)) # do (insert word) (newline))) Abort About Abstract Add Admit Admitted All Arguments AutoInline Axiom Bind Canonical Cd Chapter Check Close CoFixpoint CoInductive Coercion Coercions Comments Conjecture Constant Constructors Corollary Declare Defined Definition Delimit Dependent Depth Derive End Eval Export Extern Extract Extraction Fact False Field File Fixpoint Focus Function Functional Goal Hint Hypotheses Hypothesis Hyps Identity If Immediate Implicit Import Inductive Infix Inline Inlined Inspect Inversion Language Lemma Let Library Limit LoadPath Local Locate Ltac ML Module Morphism Next Obligation NoInline Notation Notations Obligation Obligations Off On Opaque Open Optimize Parameter Parameters Path Print Printing Program Proof Prop Pwd Qed Rec Record Recursive Remark Remove Require Reserved Reset Resolve Rewrite Ring Save Scheme Scope Search SearchAbout SearchPattern SearchRewrite Section Semi Set Setoid Show Solve Sort Strict Structure Synth Tactic Test Theorem Time Transparent True Type Undo Unfocus Unfold Unset Variable Variables Width Wildcard abstract absurd after apply as assert assumption at auto autorewrite beta by case cbv change clear clearbody cofix coinduction compare compute congruence constructor contradiction cut cutrewrite decide decompose delta dependent dest destruct discrR discriminate do double eapply eauto econstructor eexists eleft elim else end equality esplit exact exists fail field first firstorder fix fold forall fourier fun functional generalize hnf idtac if in induction info injection instantiate into intro intros intuition inversion inversion_clear iota lapply lazy left let linear load match move omega pattern pose progress prolog quote record red refine reflexivity rename repeat replace return rewrite right ring set setoid setoid_replace setoid_rewrite simpl simple simplify_eq solve specialize split split_Rabs split_Rmult stepl stepr struct subst sum symmetry tauto then transitivity trivial try unfold until using with zeta auto-complete-1.5.1/dict/css-mode000066400000000000000000000214341267667017000166740ustar00rootroot00000000000000!important @font-face @font-feature-values @keyframes ActiveBorder ActiveCaption Alpha AppWorkspace Background Barn BasicImage Blinds Blur ButtonFace ButtonHighlight ButtonShadow ButtonText CaptionText CheckerBoard Chroma Compositor CradientWipe DXImageTransform DropShadow Emboss Engrave Fade FlipH FlipV Glow Gray GrayText Highlight HighlightText Hz ICMFilter InactiveBorder InactiveCaption InactiveCaptionText InfoBackground InfoText Inset Invert Iris Light MaskFilter Matrix Menu MenuText Microsoft MotionBlur Pixelate RadialWipe RandomBars RandomDissolve RevealTrans Scrollbar Shadow Slide Spiral Stretch Strips ThreeDDarkShadow ThreeDFace ThreeDHighlight ThreeDLightShadow ThreeDShadow Wave Wheel Window WindowFrame WindowText Xray Zigzag _azimuth _background _background-position-x _background-position-y _border _bottom _caption _clear _clip _color _content _counter _cue _cursor _direction _display _elevation _empty _filter _filter:progid:DXImageTransform.Microsoft _float _font _height _ime _ime-mode _layout _layout-flow _layout-grid _layout-grid-char _layout-grid-line _layout-grid-mode _layout-grid-type _left _letter _line _line-break _list _margin _orphans _outline _overflow _overflow-x _overflow-y _padding _page _pause _pitch _play _position _quotes _richness _right _ruby _ruby-align _ruby-overhang _ruby-position _scrollbar _scrollbar-3dlight-color _scrollbar-arrow-color _scrollbar-base-color _scrollbar-darkshadow-color _scrollbar-face-color _scrollbar-highlight-color _scrollbar-track-color _speak _speech _stress _table _text _text-align-last _text-autospace _text-justify _text-kashida-space _text-overflow _text-underline-position _top _unicode _vertical _visibility _voice _volume _white _widows _width _word _word-break _word-wrap _writing _writing-mode _z _zoom above active adjust after aliceblue align align-content align-items align-self always animation animation-delay animation-direction animation-duration animation-fill-mode animation-iteration-count animation-name animation-play-state animation-timing-function antiquewhite aqua aquamarine armenian arrow attachment auto autospace avoid azimuth azure backface-visibility background background-attachment background-clip background-color background-image background-origin background-position background-repeat background-size bar base baseline before behind beige below bidi bidi-override bisque black blanchedalmond blink block blue blueviolet bold bolder border border-bottom border-bottom-color border-bottom-left-radius border-bottom-right-radius border-bottom-style border-bottom-width border-collapse border-color border-image border-image-outset border-image-repeat border-image-slice border-image-source border-image-width border-left border-left-color border-left-style border-left-width border-radius border-right border-right-color border-right-style border-right-width border-spacing border-style border-top border-top-color border-top-left-radius border-top-right-radius border-top-style border-top-width border-width both bottom box box-decoration-break box-shadow box-sizing break break-after break-before break-inside brown burlwood cadetblue capitalize caps caption caption-side cell cells center center-left center-right char chartreuse chocolate circle cjk cjk-ideographic clear clip close close-quote cm code collapse color column column-count column-fill column-gap column-rule column-rule-color column-rule-style column-rule-width column-span column-width columns compact condensed content continuous coral cornflowerblue cornsilk counter counter-increment counter-reset crimson crop cross crosshair cue cue-after cue-before cursive cursor cyan darkblue darkcyan darkgoldenrod darkgray darkgreen darkkhaki darkmagenta darkolivegreen darkorange darkorchid darkred darksalmon darkseagreen darkshadow darkslateblue darkslategray darkturquoise darkviolet dashed decimal decimal-leading-zero decoration deeppink deepskyblue default deg digits dimgray direction disc display dodgerblue dotted double during e e-resize elevation em embed empty empty-cells ex expanded extra extra-condensed extra-expanded face family fantasy far far-left far-right fast faster filter firebrick first first-child first-letter first-line fixed flex flex-basis flex-direction flex-flow flex-grow flex-shrink flex-wrap float floralwhite flow focus font font-family font-feature-setting font-kerning font-language-override font-size font-size-adjust font-stretch font-style font-synthesis font-variant font-variant-alternates font-variant-caps font-variant-east-asian font-variant-ligatures font-variant-numeric font-variant-position font-weight footer forestgreen fuchsia gainsboro georgian ghostwhite gold goldenrod gray greek green greenyellow grid groove group hanging-punctuation header hebrew height help hidden hide high higher hiragana hiragana-iroha honeydew hotpink hover hyphens icon ideographic image image-orientation image-rendering image-resolution ime-mode in increment indent index indianred indigo inherit inline inline-block inline-table inset inside iroha italic item ivory justify justify-content kHz kashida katakana katakana-iroha khaki landscape lang() large larger last latin lavender lavenderblush lawngreen layout leading left left-side leftwards lenonchiffon letter letter-spacing level lightblue lightcoral lightcyan lighter lightgoldenrodyellow lightgray lightgreen lightgrey lightpink lightsalmon lightseagreen lightskyblue lightslategray lightsteelblue lightyellow lime limegreen line line-break line-height line-through linen link list list-item list-style list-style-image list-style-position list-style-type loud low lower lower-alpha lower-greek lower-latin lower-roman lowercase ltr magenta margin margin-bottom margin-left margin-right margin-top mark mark-after mark-before marker marker-offset marks maroon marquee-direction marquee-play-count marquee-speed marquee-style mask mask-type max max-height max-width medium mediumaquamarine mediumblue mediumorchid mediumpurple mediumseagreen mediumslateblue mediumspringgreen mediumturquoise mediumvioletred menu message message-box middle midnightblue min min-height min-width mintcream mistyrose mix mm moccasin mode monospace move ms n n-resize naby narrower nav-down nav-index nav-left nav-right nav-up navajowhite ne ne-resize no no-close-quote no-open-quote no-repeat none normal nowrap number numeral nw nw-resize object-fit object-position oblique offset oldlace olive olivedrab once opacity open open-quote orange orangered orchid order orphans out outline outline-color outline-offset outline-style outline-width outset outside overflow overflow-wrap overflow-x overflow-y overhang overline override padding padding-bottom padding-left padding-right padding-top page page-break-after page-break-before page-break-inside palegoldenrod palegreen paleturquoise palevioletred papayawhip pause pause-after pause-before pc peachpuff perspective perspective-origin peru phonemes pink pitch pitch-range play play-during plum pointer portrait position powderblue pre pre-line pre-wrap progid progress pt punctuation purple px quote quotes rad range rate red relative repeat repeat-x repeat-y reset resize rest rest-after rest-before richness ridge right right-side rightwards roman rosybrown row royalblue rtl run run-in s s-resize saddlebrown salmon sandybrown sans-serif scroll se se-resize seagreen seashell semi semi-condensed semi-expanded separate serif shadow show side sienna silent silever silver size skyblue slateblue slategray slow slower small small-caps small-caption smaller snow soft solid space spacing speak speak-header speak-numeral speak-punctuation specific specific-voice speech speech-rate spell spell-out springgreen square static status status-bar steelblue stress stretch style sub super sw sw-resize tab-size table table-caption table-cell table-column table-column-group table-footer-group table-header-group table-layout table-row table-row-group tan teal text text-align text-align-last text-bottom text-combine-horizontal text-decoration text-decoration-color text-decoration-line text-decoration-style text-indent text-justify text-orientation text-overflow text-shadow text-top text-transform text-underline-position thick thin thistle through tomato top track transform transform-origin transform-style transition transition-delay transition-duration transition-property transition-timing-function transparent turquoise type ultra ultra-condensed ultra-expanded underline unicode unicode-bidi upper upper-alpha upper-latin upper-roman uppercase variant vertical vertical-align violet visibility visible visited voice voice-balance voice-duration voice-family voice-pitch voice-pitch-range voice-rate voice-stress voice-volume volume w w-resize wait weight wheat white white-space whitesmoke wider widows width word word-break word-spacing word-wrap wrap writing-mode x x-fast x-high x-large x-loud x-low x-slow x-small x-soft xx xx-large xx-small y yellow yellowgreen z z-index zero auto-complete-1.5.1/dict/erlang-mode000066400000000000000000000041351267667017000173530ustar00rootroot00000000000000after begin catch case cond end fun if let of query receive try when and andalso band bnot bor bsl bsr bxor div not or orelse rem xor is_atom is_binary is_bitstring is_boolean is_float is_function is_integer is_list is_number is_pid is_port is_record is_reference is_tuple atom binary bitstring boolean function integer list number pid port record reference tuple abs adler32 adler32_combine alive apply atom_to_binary atom_to_list binary_to_atom binary_to_existing_atom binary_to_list binary_to_term bit_size bitstring_to_list byte_size check_process_code contact_binary crc32 crc32_combine date decode_packet delete_module disconnect_node element erase exit float float_to_list garbage_collect get get_keys group_leader halt hd integer_to_list internal_bif iolist_size iolist_to_binary is_alive is_atom is_binary is_bitstring is_boolean is_float is_function is_integer is_list is_number is_pid is_port is_process_alive is_record is_reference is_tuple length link list_to_atom list_to_binary list_to_bitstring list_to_existing_atom list_to_float list_to_integer list_to_pid list_to_tuple load_module make_ref module_loaded monitor_node node node_link node_unlink nodes notalive now open_port pid_to_list port_close port_command port_connect port_control pre_loaded process_flag process_info processes purge_module put register registered round self setelement size spawn spawn_link spawn_monitor spawn_opt split_binary statistics term_to_binary time throw tl trunc tuple_size tuple_to_list unlink unregister whereis append_element bump_reductions cancel_timer demonitor display fun_info fun_to_list function_exported get_cookie get_stacktrace hash integer_to_list is_builtin list_to_integer loaded localtime localtime_to_universaltime make_tuple max md5 md5_final md5_init md5_update memory min monitor monitor_node phash phash2 port_call port_info port_to_list ports process_display read_timer ref_to_list resume_process send send_after send_nosuspend set_cookie start_timer suspend_process system_flag system_info system_monitor system_profile trace trace_delivered trace_info trace_pattern universaltime universaltime_to_localtime yield auto-complete-1.5.1/dict/ess-julia-mode000066400000000000000000000003531267667017000177750ustar00rootroot00000000000000abstract break case catch const continue do else elseif end eval export false finally for function global if ifelse immutable import importall in let macro module otherwise quote return switch throw true try type typealias using while auto-complete-1.5.1/dict/go-mode000066400000000000000000000002321267667017000165020ustar00rootroot00000000000000break case chan const continue default defer else fallthrough for func go goto if import interface map package range return select struct switch type var auto-complete-1.5.1/dict/haskell-mode000066400000000000000000000240311267667017000175230ustar00rootroot00000000000000Arrows BangPatterns Bool Bounded CPP Char Complex ConstrainedClassMethods Control.Applicative Control.Arrow Control.Category Control.Concurrent Control.Concurrent.MVar Control.Concurrent.QSem Control.Concurrent.QSemN Control.Concurrent.STM Control.Concurrent.STM.TArray Control.Concurrent.STM.TChan Control.Concurrent.STM.TMVar Control.Concurrent.STM.TVar Control.Concurrent.SampleVar Control.Exception Control.Exception.Base Control.Monad Control.Monad.Cont Control.Monad.Cont.Class Control.Monad.Error Control.Monad.Error.Class Control.Monad.Fix Control.Monad.Identity Control.Monad.Instances Control.Monad.List Control.Monad.RWS Control.Monad.RWS.Class Control.Monad.RWS.Lazy Control.Monad.RWS.Strict Control.Monad.Reader Control.Monad.Reader.Class Control.Monad.ST Control.Monad.ST.Lazy Control.Monad.ST.Strict Control.Monad.STM Control.Monad.State Control.Monad.State.Class Control.Monad.State.Lazy Control.Monad.State.Strict Control.Monad.Trans Control.Monad.Writer Control.Monad.Writer.Class Control.Monad.Writer.Lazy Control.Monad.Writer.Strict Control.OldException Control.Parallel Control.Parallel.Strategies DEPRECATED Data.Array Data.Array.Diff Data.Array.IArray Data.Array.IO Data.Array.IO.Internals Data.Array.MArray Data.Array.Paralell Data.Array.Paralell.Arr Data.Array.Paralell.Base Data.Array.Paralell.Int Data.Array.Paralell.Lifted Data.Array.Paralell.PArray Data.Array.Paralell.Prelude Data.Array.Paralell.Prelude.Double Data.Array.Paralell.Stream Data.Array.Paralell.Unlifted Data.Array.Paralell.Unlifted.Distributed Data.Array.Paralell.Unlifted.Paralell Data.Array.Paralell.Unlifted.Sqeuential Data.Array.Paralell.Word8 Data.Array.ST Data.Array.Storable Data.Array.Unboxed Data.Bits Data.Bool Data.ByteString Data.ByteString.Char8 Data.ByteString.Fusion Data.ByteString.Internal Data.ByteString.Lazy Data.ByteString.Lazy.Char8 Data.ByteString.Lazy.Fusion Data.ByteString.Lazy.Internal Data.ByteString.Unsafe Data.Char Data.Complex Data.Data Data.Dynamic Data.Either Data.Eq Data.Fixed Data.Foldable Data.Function Data.Generics Data.Generics.Aliases Data.Generics.Basics Data.Generics.Instances Data.Generics.Schemes Data.Generics.Text Data.Generics.Twins Data.Graph Data.HashTable Data.IORef Data.Int Data.IntMap Data.IntSet Data.Ix Data.List Data.Map Data.Maybe Data.Monoid Data.Ord Data.Ratio Data.STRef Data.STRef.Lazy Data.STRef.Strict Data.Sequence Data.Set Data.String Data.Time Data.Time.Calendar Data.Time.Calendar.Easter Data.Time.Calendar.Julian Data.Time.Calendar.MonthDay Data.Time.Calendar.OrdinalDate Data.Time.Calendar.WeekDate Data.Time.Clock Data.Time.Clock.POSIX Data.Time.Clock.TAI Data.Time.Format Data.Time.LocalTime Data.Traversable Data.Tree Data.Tuple Data.Typeable Data.Unique Data.Version Data.Word Debug.Trace DeriveDataTypeable DisambiguateRecordFields Distribution.Compat.ReadP Distribution.Compiler Distribution.InstalledPackageInfo Distribution.License Distribution.Make Distribution.ModuleName Distribution.Package Distribution.PackageDescription Distribution.PackageDescription.Check Distribution.PackageDescription.Configuration Distribution.PackageDescription.Parse Distribution.ParseUtils Distribution.ReadE Distribution.Simple Distribution.Simple.Build Distribution.Simple.Build.Macros Distribution.Simple.Build.PathsModule Distribution.Simple.BuildPaths Distribution.Simple.Command Distribution.Simple.Compiler Distribution.Simple.Configure Distribution.Simple.GHC Distribution.Simple.Haddock Distribution.Simple.Hugs Distribution.Simple.Install Distribution.Simple.InstallDirs Distribution.Simple.JHC Distribution.Simple.LocalBuildInfo Distribution.Simple.NHC Distribution.Simple.PackageIndex Distribution.Simple.PreProcess Distribution.Simple.PreProcess.Unlit Distribution.Simple.Program Distribution.Simple.Register Distribution.Simple.Setup Distribution.Simple.SrcDist Distribution.Simple.UserHooks Distribution.Simple.Utils Distribution.System Distribution.Text Distribution.Verbosity Distribution.Version Double EQ Either EmptyDataDecls Enum Eq ExistentialQuantification ExtendedDefaultRules False FilePath FlexibleContexts FlexibleInstances Float Floating Foreign Foreign.C Foreign.C.Error Foreign.C.String Foreign.C.Types Foreign.Concurrent Foreign.ForeignPtr Foreign.Marshal Foreign.Marshal.Alloc Foreign.Marshal.Array Foreign.Marshal.Error Foreign.Marshal.Pool Foreign.Marshal.Utils Foreign.Ptr Foreign.StablePtr Foreign.Storable ForeignFunctionInterface Fractional FunctionnalDependencies Functor GADTs GHC.Arr GHC.Bool GHC.Conc GHC.ConsoleHandler GHC.Desugar GHC.Environment GHC.Err GHC.Exts GHC.Generics GHC.Handle GHC.Ordering GHC.PArr GHC.Prim GHC.PrimopWrappers GHC.Tuple GHC.Types GHC.Unicode GHC.Unit GT GeneralizedNewtypeDeriving Generics INCLUDE INLINE IO IOError IOException ImplicitParams ImplicitPrelude ImpredicativeTypes IncoherentInstances Int Integer Integral Just KindSignatures LANGUAGE LINE LT Language.Haskell.Extension Language.Haskell.Lexer Language.Haskell.ParseMonad Language.Haskell.ParseUtils Language.Haskell.Parser Language.Haskell.Pretty Language.Haskell.Syntax Language.Haskell.TH Language.Haskell.TH.Lib Language.Haskell.TH.Ppr Language.Haskell.TH.PprLib Language.Haskell.TH.Quote Language.Haskell.TH.Syntax Left LiberalTypeSynonyms MagicHash Maybe Monad MonoPatBinds MonomorphismRestriction MultiParamTypeClasses NOINLINE NamedFieldPuns Network Network.BSD Network.Socket Network.URI NewQualifiedOperators NoArrows NoBangPatterns NoCPP NoConstrainedClassMethods NoDeriveDataTypeable NoDisambiguateRecordFields NoEmptyDataDecls NoExistentialQuantification NoExtendedDefaultRules NoFlexibleContexts NoFlexibleInstances NoForeignFunctionInterface NoFunctionnalDependencies NoGADTs NoGeneralizedNewtypeDeriving NoGenerics NoImplicitParams NoImplicitPrelude NoImpredicativeTypes NoIncoherentInstances NoKindSignatures NoLiberalTypeSynonyms NoMagicHash NoMonoPatBinds NoMonomorphismRestriction NoMultiParamTypeClasses NoNamedFieldPuns NoNewQualifiedOperators NoOverlappingInstances NoOverloadedStrings NoPArr NoPackageImports NoParallelListComp NoPatternGuards NoPolymorphicComponents NoQuasiQuotes NoRank2Types NoRankNTypes NoRecordWildCards NoRecursiveDo NoRelaxedPolyRec NoScopedTypeVariables NoStandaloneDeriving NoTemplateHaskell NoTransformListComp NoTypeFamilies NoTypeOperators NoTypeSynonymInstances NoUnboxedTuples NoUndecidableInstances NoUnicodeSyntax NoUnliftedFFITypes NoViewPatterns Nothing Num Numeric OPTIONS_GHC Ord Ordering OverlappingInstances OverloadedStrings PArr PackageImports ParallelListComp PatternGuards PolymorphicComponents Prelude QuasiQuotes RULES Rank2Types RankNTypes Ratio Read ReadS Real RealFloat RealFrac RecordWildCards RecursiveDo RelaxedPolyRec Right SOURCE SPECIALIZE ScopedTypeVariables ShowS StandaloneDeriving String System.CPUTime System.Cmd System.Console.Editline System.Console.GetOpt System.Console.Readline System.Directory System.Environment System.Exit System.FilePath System.FilePath.Posix System.FilePath.Windows System.IO System.IO.Error System.IO.Unsafe System.Info System.Locale System.Mem System.Mem.StableName System.Mem.Weak System.Posix System.Posix.Directory System.Posix.DynamicLinker System.Posix.DynamicLinker.Module System.Posix.DynamicLinker.Prim System.Posix.Env System.Posix.Error System.Posix.Files System.Posix.IO System.Posix.Process System.Posix.Process.Internals System.Posix.Resource System.Posix.Semaphore System.Posix.SharedMem System.Posix.Signals System.Posix.Signals.Exts System.Posix.Temp System.Posix.Terminal System.Posix.Time System.Posix.Types System.Posix.Unistd System.Posix.User System.Process System.Random System.Time System.Timeout TemplateHaskell Test.HUnit Test.HUnit.Base Test.HUnit.Lang Test.HUnit.Terminal Test.HUnit.Text Test.QuickCheck Test.QuickCheck.Batch Test.QuickCheck.Poly Test.QuickCheck.Utils Text.Html Text.Html.BlockTable Text.ParserCombinators.Parsec Text.ParserCombinators.Parsec.Char Text.ParserCombinators.Parsec.Combinator Text.ParserCombinators.Parsec.Error Text.ParserCombinators.Parsec.Expr Text.ParserCombinators.Parsec.Language Text.ParserCombinators.Parsec.Perm Text.ParserCombinators.Parsec.Pos Text.ParserCombinators.Parsec.Prim Text.ParserCombinators.Parsec.Token Text.ParserCombinators.ReadP Text.ParserCombinators.ReadPrec Text.PrettyPrint Text.PrettyPrint.HughesPJ Text.Printf Text.Read Text.Read.Lex Text.Regex.Base Text.Regex.Base.Context Text.Regex.Base.Impl Text.Regex.Base.RegexLike Text.Regex.Posix Text.Regex.Posix.ByteString Text.Regex.Posix.String Text.Regex.Posix.Wrap Text.Show Text.Show.Functions Text.XHtml Text.XHtml.Debug Text.XHtml.Frameset Text.XHtml.Strict Text.XHtml.Table Text.XHtml.Transitional Trace.Hpc.Mix Trace.Hpc.Reflect Trace.Hpc.Tix Trace.Hpc.Util TransformListComp True TypeFamilies TypeOperators TypeSynonymInstances UNPACK UnboxedTuples UndecidableInstances UnicodeSyntax UnliftedFFITypes Unsafe.Coerce ViewPatterns WARNING abs acos acosh all and any appendFile as asTypeOf asin asinh atan atan2 atanh break case catch ceiling class compare concat concatMap const cos cosh curry cycle data decodeFloat default deriving div divMod do drop dropWhile either elem else encodeFloat enumFrom enumFromThen enumFromThenTo enumFromTo error exp exponent fail filter flip floatDigits floatRadix floatRange floor fmap fold fold1 foldr foldr1 fromEnum fromInteger fromIntegral fromRational fst gcd getChar getContents getLine head hiding id if import in infix infixl infixr init instance intract ioError isDenormalized isIEEE isInfinite isNan isNegativeZero iterate last lcm length let lex lines log logBase lookup map mapM mapM_ max maxBound maximum maybe min minBound minimum mod module negate newtype not notElem null odd of or otherwise pi pred print product properFraction putChar putStr putStrLn qualified quot quotRem read readFile readIO readList readLn readParen reads readsPrec realtoFrac recip rem repeat replicate return reverse round scaleFloat scanl scanl1 scanr scanr1 seq sequence sequence_ show showChar showList showParen showString shows showsPrec significand signum sin sinh snd span splitAt sqrt subtract succ sum tail take takeWhile tan tanh then toEnum toInteger toRational truncate type uncurry undefined unlines until unwords unzip unzip3 userError where words writeFile zip zip3 zipWith zipWith3 auto-complete-1.5.1/dict/java-mode000066400000000000000000000005731267667017000170260ustar00rootroot00000000000000abstract assert boolean break byte case catch char class const continue default do double else enum extends final finally float for goto if implements import instanceof int interface long native new package private protected public return short static strictfp super switch synchronized this throw throws transient try void volatile while @Override @Deprecated @SuppressWarnings auto-complete-1.5.1/dict/js-mode000066400000000000000000000021701267667017000165140ustar00rootroot00000000000000Anchor Area Array Boolean Button Checkbox Date Document Element FileUpload Form Frame Function Hidden History Image Infinity JavaArray JavaClass JavaObject JavaPackage Link Location Math MimeType NaN Navigator Number Object Option Packages Password Plugin Radio RegExp Reset Select String Submit Text Textarea Window alert arguments assign blur break callee caller captureEvents case clearInterval clearTimeout close closed comment confirm constructor continue default defaultStatus delete do document else escape eval export find focus for frames function getClass history home if import in innerHeight innerWidth isFinite isNan java label length location locationbar menubar moveBy moveTo name navigate navigator netscape new onBlur onError onFocus onLoad onUnload open opener outerHeight outerWidth pageXoffset pageYoffset parent parseFloat parseInt personalbar print prompt prototype ref releaseEvents resizeBy resizeTo return routeEvent scroll scrollBy scrollTo scrollbars self setInterval setTimeout status statusbar stop sun switch taint this toString toolbar top typeof unescape untaint unwatch valueOf var void watch while window with auto-complete-1.5.1/dict/julia-mode000066400000000000000000000003531267667017000172050ustar00rootroot00000000000000abstract break case catch const continue do else elseif end eval export false finally for function global if ifelse immutable import importall in let macro module otherwise quote return switch throw true try type typealias using while auto-complete-1.5.1/dict/lua-mode000066400000000000000000000001531267667017000166600ustar00rootroot00000000000000and break do else elseif end false for function if in local nil not or repeat return then true until while auto-complete-1.5.1/dict/nim-mode000066400000000000000000000006101267667017000166600ustar00rootroot00000000000000addr and as asm atomic bind block break case cast concept const continue converter defer discard distinct div do elif else end enum except export finally for from func generic if import in include interface is isnot iterator let macro method mixin mod nil not notin object of or out proc ptr raise ref return shl shr static template try tuple type using var when while with without xor yield auto-complete-1.5.1/dict/octave-mode000066400000000000000000000007641267667017000173700ustar00rootroot00000000000000# GNU Octave, and probably proprietary MATLAB # https://www.gnu.org/software/octave/doc/interpreter/Keywords.html __FILE__ __LINE__ break case catch classdef continue do else elseif end end_try_catch end_unwind_protect endclassdef endenumeration endevents endfor endfunction endif endmethods endparfor endproperties endswitch endwhile enumeration events for function global if methods otherwise parfor persistent properties return static switch try unitl unwind_protect unwind_protect_cleanup while auto-complete-1.5.1/dict/php-mode000066400000000000000000003231371267667017000167000ustar00rootroot00000000000000abs acos acosh addcslashes addslashes aggregate aggregate_info aggregate_methods aggregate_methods_by_list aggregate_methods_by_regexp aggregate_properties aggregate_properties_by_list aggregate_properties_by_regexp aggregation_info amqpconnection amqpexchange amqpqueue and apache_child_terminate apache_getenv apache_get_modules apache_get_version apache_lookup_uri apache_note apache_request_headers apache_reset_timeout apache_response_headers apache_setenv apc_add apc_bin_dump apc_bin_dumpfile apc_bin_load apc_bin_loadfile apc_cache_info apc_cas apc_clear_cache apc_compile_file apc_dec apc_define_constants apc_delete apc_delete_file apc_exists apc_fetch apc_inc apciterator apc_load_constants apc_sma_info apc_store apd_breakpoint apd_callstack apd_clunk apd_continue apd_croak apd_dump_function_table apd_dump_persistent_resources apd_dump_regular_resources apd_echo apd_get_active_symbols apd_set_pprof_trace apd_set_session apd_set_session_trace apd_set_session_trace_socket appenditerator array arrayaccess array_change_key_case array_chunk array_combine array_count_values array_diff array_diff_assoc array_diff_key array_diff_uassoc array_diff_ukey array_fill array_fill_keys array_filter array_flip array_intersect array_intersect_assoc array_intersect_key array_intersect_uassoc array_intersect_ukey arrayiterator array_key_exists array_keys array_map array_merge array_merge_recursive array_multisort arrayobject array_pad array_pop array_product array_push array_rand array_reduce array_replace array_replace_recursive array_reverse array_search array_shift array_slice array_splice array_sum array_udiff array_udiff_assoc array_udiff_uassoc array_uintersect array_uintersect_assoc array_uintersect_uassoc array_unique array_unshift array_values array_walk array_walk_recursive arsort as asin asinh asort assert assert_options atan atan2 atanh badfunctioncallexception badmethodcallexception base64_decode base64_encode base_convert basename bbcode_add_element bbcode_add_smiley bbcode_create bbcode_destroy bbcode_parse bbcode_set_arg_parser bbcode_set_flags bcadd bccomp bcdiv bcmod bcmul bcompiler_load bcompiler_load_exe bcompiler_parse_class bcompiler_read bcompiler_write_class bcompiler_write_constant bcompiler_write_exe_footer bcompiler_write_file bcompiler_write_footer bcompiler_write_function bcompiler_write_functions_from_file bcompiler_write_header bcompiler_write_included_filename bcpow bcpowmod bcscale bcsqrt bcsub bin2hex bindec bindtextdomain bind_textdomain_codeset break bson_decode bson_encode bumpValue bzclose bzcompress bzdecompress bzerrno bzerror bzerrstr bzflush bzopen bzread bzwrite cachingiterator cairo cairoantialias cairocontent cairocontext cairo_create cairoexception cairoextend cairofillrule cairofilter cairofontface cairo_font_face_get_type cairo_font_face_status cairofontoptions cairo_font_options_create cairo_font_options_equal cairo_font_options_get_antialias cairo_font_options_get_hint_metrics cairo_font_options_get_hint_style cairo_font_options_get_subpixel_order cairo_font_options_hash cairo_font_options_merge cairo_font_options_set_antialias cairo_font_options_set_hint_metrics cairo_font_options_set_hint_style cairo_font_options_set_subpixel_order cairo_font_options_status cairofontslant cairofonttype cairofontweight cairoformat cairo_format_stride_for_width cairogradientpattern cairohintmetrics cairohintstyle cairoimagesurface cairo_image_surface_create cairo_image_surface_create_for_data cairo_image_surface_create_from_png cairo_image_surface_get_data cairo_image_surface_get_format cairo_image_surface_get_height cairo_image_surface_get_stride cairo_image_surface_get_width cairolineargradient cairolinecap cairolinejoin cairomatrix cairo_matrix_create_scale cairo_matrix_create_translate cairo_matrix_invert cairo_matrix_multiply cairo_matrix_rotate cairo_matrix_transform_distance cairo_matrix_transform_point cairo_matrix_translate cairooperator cairopath cairopattern cairo_pattern_add_color_stop_rgb cairo_pattern_add_color_stop_rgba cairo_pattern_create_for_surface cairo_pattern_create_linear cairo_pattern_create_radial cairo_pattern_create_rgb cairo_pattern_create_rgba cairo_pattern_get_color_stop_count cairo_pattern_get_color_stop_rgba cairo_pattern_get_extend cairo_pattern_get_filter cairo_pattern_get_linear_points cairo_pattern_get_matrix cairo_pattern_get_radial_circles cairo_pattern_get_rgba cairo_pattern_get_surface cairo_pattern_get_type cairo_pattern_set_extend cairo_pattern_set_filter cairo_pattern_set_matrix cairo_pattern_status cairopatterntype cairopdfsurface cairo_pdf_surface_create cairo_pdf_surface_set_size cairo_ps_get_levels cairopslevel cairo_ps_level_to_string cairopssurface cairo_ps_surface_create cairo_ps_surface_dsc_begin_page_setup cairo_ps_surface_dsc_begin_setup cairo_ps_surface_dsc_comment cairo_ps_surface_get_eps cairo_ps_surface_restrict_to_level cairo_ps_surface_set_eps cairo_ps_surface_set_size cairoradialgradient cairoscaledfont cairo_scaled_font_create cairo_scaled_font_extents cairo_scaled_font_get_ctm cairo_scaled_font_get_font_face cairo_scaled_font_get_font_matrix cairo_scaled_font_get_font_options cairo_scaled_font_get_scale_matrix cairo_scaled_font_get_type cairo_scaled_font_glyph_extents cairo_scaled_font_status cairo_scaled_font_text_extents cairosolidpattern cairostatus cairosubpixelorder cairosurface cairo_surface_copy_page cairo_surface_create_similar cairo_surface_finish cairo_surface_flush cairo_surface_get_content cairo_surface_get_device_offset cairo_surface_get_font_options cairo_surface_get_type cairo_surface_mark_dirty cairo_surface_mark_dirty_rectangle cairosurfacepattern cairo_surface_set_device_offset cairo_surface_set_fallback_resolution cairo_surface_show_page cairo_surface_status cairosurfacetype cairo_surface_write_to_png cairosvgsurface cairo_svg_surface_create cairo_svg_surface_restrict_to_version cairosvgversion cairo_svg_version_to_string cairotoyfontface calculhmac calcul_hmac cal_days_in_month cal_from_jd cal_info __call() callbackfilteriterator __callStatic() call_user_func call_user_func_array call_user_method call_user_method_array cal_to_jd case catch ceil cfunction chdb chdb_create chdir checkdate checkdnsrr chgrp chmod chop chown chr chroot chunk_split class __CLASS__ class_alias class_exists class_implements classkit_import classkit_method_add classkit_method_copy classkit_method_redefine classkit_method_remove classkit_method_rename class_parents clearstatcache clone __clone() closedir closelog collator com com_addref com_create_guid com_event_sink com_get com_get_active_object com_invoke com_isenum com_load com_load_typelib com_message_pump compact com_print_typeinfo com_propget com_propput com_propset com_release com_set connection_aborted connection_status connection_timeout const constant construct __construct() continue convert_cyr_string convert_uudecode convert_uuencode copy cos cosh count countable count_chars counter_bump counter_bump_value counter_create counter_get counter_get_meta counter_get_named counter_get_value counter_reset counter_reset_value crack_check crack_closedict crack_getlastmessage crack_opendict crc32 create_function crypt ctype_alnum ctype_alpha ctype_cntrl ctype_digit ctype_graph ctype_lower ctype_print ctype_punct ctype_space ctype_upper ctype_xdigit cubrid_affected_rows cubrid_bind cubrid_client_encoding cubrid_close cubrid_close_prepare cubrid_close_request cubrid_col_get cubrid_col_size cubrid_column_names cubrid_column_types cubrid_commit cubrid_connect cubrid_connect_with_url cubrid_current_oid cubrid_data_seek cubrid_db_name cubrid_disconnect cubrid_drop cubrid_errno cubrid_error cubrid_error_code cubrid_error_code_facility cubrid_error_msg cubrid_execute cubrid_fetch cubrid_fetch_array cubrid_fetch_assoc cubrid_fetch_field cubrid_fetch_lengths cubrid_fetch_object cubrid_fetch_row cubrid_field_flags cubrid_field_len cubrid_field_name cubrid_field_seek cubrid_field_table cubrid_field_type cubrid_free_result cubrid_get cubrid_get_autocommit cubrid_get_charset cubrid_get_class_name cubrid_get_client_info cubrid_get_db_parameter cubrid_get_server_info cubrid_insert_id cubrid_is_instance cubrid_list_dbs cubrid_load_from_glo cubrid_lob_close cubrid_lob_export cubrid_lob_get cubrid_lob_send cubrid_lob_size cubrid_lock_read cubrid_lock_write cubrid_move_cursor cubrid_new_glo cubrid_next_result cubrid_num_cols cubrid_num_fields cubrid_num_rows cubrid_ping cubrid_prepare cubrid_put cubrid_query cubrid_real_escape_string cubrid_result cubrid_rollback cubrid_save_to_glo cubrid_schema cubrid_send_glo cubrid_seq_drop cubrid_seq_insert cubrid_seq_put cubrid_set_add cubrid_set_autocommit cubrid_set_db_parameter cubrid_set_drop cubrid_unbuffered_query cubrid_version curl_close curl_copy_handle curl_errno curl_error curl_exec curl_getinfo curl_init curl_multi_add_handle curl_multi_close curl_multi_exec curl_multi_getcontent curl_multi_info_read curl_multi_init curl_multi_remove_handle curl_multi_select curl_setopt curl_setopt_array curl_version current cyrus_authenticate cyrus_bind cyrus_close cyrus_connect cyrus_query cyrus_unbind date date_add date_create date_create_from_format date_date_set date_default_timezone_get date_default_timezone_set date_diff date_format date_get_last_errors dateinterval date_interval_create_from_date_string date_interval_format date_isodate_set date_modify date_offset_get date_parse date_parse_from_format dateperiod date_sub date_sun_info date_sunrise date_sunset datetime date_time_set date_timestamp_get date_timestamp_set datetimezone date_timezone_get date_timezone_set db2_autocommit db2_bind_param db2_client_info db2_close db2_column_privileges db2_columns db2_commit db2_connect db2_conn_error db2_conn_errormsg db2_cursor_type db2_escape_string db2_exec db2_execute db2_fetch_array db2_fetch_assoc db2_fetch_both db2_fetch_object db2_fetch_row db2_field_display_size db2_field_name db2_field_num db2_field_precision db2_field_scale db2_field_type db2_field_width db2_foreign_keys db2_free_result db2_free_stmt db2_get_option db2_last_insert_id db2_lob_read db2_next_result db2_num_fields db2_num_rows db2_pclose db2_pconnect db2_prepare db2_primary_keys db2_procedure_columns db2_procedures db2_result db2_rollback db2_server_info db2_set_option db2_special_columns db2_statistics db2_stmt_error db2_stmt_errormsg db2_table_privileges db2_tables dba_close dba_delete dba_exists dba_fetch dba_firstkey dba_handlers dba_insert dba_key_split dba_list dba_nextkey dba_open dba_optimize dba_popen dba_replace dbase_add_record dbase_close dbase_create dbase_delete_record dbase_get_header_info dbase_get_record dbase_get_record_with_names dbase_numfields dbase_numrecords dbase_open dbase_pack dbase_replace_record dba_sync dbplus_add dbplus_aql dbplus_chdir dbplus_close dbplus_curr dbplus_errcode dbplus_errno dbplus_find dbplus_first dbplus_flush dbplus_freealllocks dbplus_freelock dbplus_freerlocks dbplus_getlock dbplus_getunique dbplus_info dbplus_last dbplus_lockrel dbplus_next dbplus_open dbplus_prev dbplus_rchperm dbplus_rcreate dbplus_rcrtexact dbplus_rcrtlike dbplus_resolve dbplus_restorepos dbplus_rkeys dbplus_ropen dbplus_rquery dbplus_rrename dbplus_rsecindex dbplus_runlink dbplus_rzap dbplus_savepos dbplus_setindex dbplus_setindexbynumber dbplus_sql dbplus_tcl dbplus_tremove dbplus_undo dbplus_undoprepare dbplus_unlockrel dbplus_unselect dbplus_update dbplus_xlockrel dbplus_xunlockrel dbx_close dbx_compare dbx_connect dbx_error dbx_escape_string dbx_fetch_row dbx_query dbx_sort dcgettext dcngettext deaggregate debug_backtrace debug_print_backtrace debug_zval_dump decbin dechex declare decoct default define defined define_syslog_variables deg2rad delete __destruct() dgettext die dio_close dio_fcntl dio_open dio_read dio_seek dio_stat dio_tcsetattr dio_truncate dio_write dir __DIR__ directoryiterator dirname diskfreespace disk_free_space disk_total_space dl dngettext dns_check_record dns_get_mx dns_get_record do domainexception domattr domattribute_name domattribute_set_value domattribute_specified domattribute_value domcharacterdata domcomment domdocument domdocument_add_root domdocument_create_attribute domdocument_create_cdata_section domdocument_create_comment domdocument_create_element domdocument_create_element_ns domdocument_create_entity_reference domdocument_create_processing_instruction domdocument_create_text_node domdocument_doctype domdocument_document_element domdocument_dump_file domdocument_dump_mem domdocumentfragment domdocument_get_element_by_id domdocument_get_elements_by_tagname domdocument_html_dump_mem domdocumenttype domdocumenttype_entities domdocumenttype_internal_subset domdocumenttype_name domdocumenttype_notations domdocumenttype_public_id domdocumenttype_system_id domdocument_xinclude domelement domelement_get_attribute domelement_get_attribute_node domelement_get_elements_by_tagname domelement_has_attribute domelement_remove_attribute domelement_set_attribute domelement_set_attribute_node domelement_tagname domentity domentityreference domexception domimplementation dom_import_simplexml domnamednodemap domnode domnode_add_namespace domnode_append_child domnode_append_sibling domnode_attributes domnode_child_nodes domnode_clone_node domnode_dump_node domnode_first_child domnode_get_content domnode_has_attributes domnode_has_child_nodes domnode_insert_before domnode_is_blank_node domnode_last_child domnodelist domnode_next_sibling domnode_node_name domnode_node_type domnode_node_value domnode_owner_document domnode_parent_node domnode_prefix domnode_previous_sibling domnode_remove_child domnode_replace_child domnode_replace_node domnode_set_content domnode_set_name domnode_set_namespace domnode_unlink_node domnotation domprocessinginstruction domprocessinginstruction_data domprocessinginstruction_target domtext domxml_new_doc domxml_open_file domxml_open_mem domxml_version domxml_xmltree domxml_xslt_stylesheet domxml_xslt_stylesheet_doc domxml_xslt_stylesheet_file domxml_xslt_version domxpath domxsltstylesheet_process domxsltstylesheet_result_dump_file domxsltstylesheet_result_dump_mem dotnet dotnet_load doubleval each easter_date easter_days echo else elseif empty emptyiterator enchant_broker_describe enchant_broker_dict_exists enchant_broker_free enchant_broker_free_dict enchant_broker_get_error enchant_broker_init enchant_broker_list_dicts enchant_broker_request_dict enchant_broker_request_pwl_dict enchant_broker_set_ordering enchant_dict_add_to_personal enchant_dict_add_to_session enchant_dict_check enchant_dict_describe enchant_dict_get_error enchant_dict_is_in_session enchant_dict_quick_check enchant_dict_store_replacement enchant_dict_suggest end enddeclare endfor endforeach endif endswitch endwhile ereg eregi eregi_replace ereg_replace errorexception error_get_last error_log error_reporting escapeshellarg escapeshellcmd eval event_add event_base_free event_base_loop event_base_loopbreak event_base_loopexit event_base_new event_base_priority_init event_base_set event_buffer_base_set event_buffer_disable event_buffer_enable event_buffer_fd_set event_buffer_free event_buffer_new event_buffer_priority_set event_buffer_read event_buffer_set_callback event_buffer_timeout_set event_buffer_watermark_set event_buffer_write event_del event_free event_new event_set exception exec exif_imagetype exif_read_data exif_tagname exif_thumbnail exit exp expect_expectl expect_popen explode expm1 export extends extension_loaded extract ezmlm_hash fam_cancel_monitor fam_close fam_monitor_collection fam_monitor_directory fam_monitor_file fam_next_event fam_open fam_pending fam_resume_monitor fam_suspend_monitor fbsql_affected_rows fbsql_autocommit fbsql_blob_size fbsql_change_user fbsql_clob_size fbsql_close fbsql_commit fbsql_connect fbsql_create_blob fbsql_create_clob fbsql_create_db fbsql_database fbsql_database_password fbsql_data_seek fbsql_db_query fbsql_db_status fbsql_drop_db fbsql_errno fbsql_error fbsql_fetch_array fbsql_fetch_assoc fbsql_fetch_field fbsql_fetch_lengths fbsql_fetch_object fbsql_fetch_row fbsql_field_flags fbsql_field_len fbsql_field_name fbsql_field_seek fbsql_field_table fbsql_field_type fbsql_free_result fbsql_get_autostart_info fbsql_hostname fbsql_insert_id fbsql_list_dbs fbsql_list_fields fbsql_list_tables fbsql_next_result fbsql_num_fields fbsql_num_rows fbsql_password fbsql_pconnect fbsql_query fbsql_read_blob fbsql_read_clob fbsql_result fbsql_rollback fbsql_rows_fetched fbsql_select_db fbsql_set_characterset fbsql_set_lob_mode fbsql_set_password fbsql_set_transaction fbsql_start_db fbsql_stop_db fbsql_tablename fbsql_table_name fbsql_username fbsql_warnings fclose fdf_add_doc_javascript fdf_add_template fdf_close fdf_create fdf_enum_values fdf_errno fdf_error fdf_get_ap fdf_get_attachment fdf_get_encoding fdf_get_file fdf_get_flags fdf_get_opt fdf_get_status fdf_get_value fdf_get_version fdf_header fdf_next_field_name fdf_open fdf_open_string fdf_remove_item fdf_save fdf_save_string fdf_set_ap fdf_set_encoding fdf_set_file fdf_set_flags fdf_set_javascript_action fdf_set_on_import_javascript fdf_set_opt fdf_set_status fdf_set_submit_form_action fdf_set_target_frame fdf_set_value fdf_set_version feof fflush fgetc fgetcsv fgets fgetss file __FILE__ fileatime filectime file_exists file_get_contents filegroup fileinode filemtime fileowner fileperms filepro filepro_fieldcount filepro_fieldname filepro_fieldtype filepro_fieldwidth filepro_retrieve filepro_rowcount file_put_contents filesize filesystemiterator filetype filter_has_var filter_id filter_input filter_input_array filteriterator filter_list filter_var filter_var_array final finfo_buffer finfo_close finfo_file finfo_open finfo_set_flags floatval flock floor flush fmod fnmatch fopen for foreach forward_static_call forward_static_call_array fpassthru fprintf fputcsv fputs fread frenchtojd fribidi_log2vis fscanf fseek fsockopen fstat ftell ftok ftp_alloc ftp_cdup ftp_chdir ftp_chmod ftp_close ftp_connect ftp_delete ftp_exec ftp_fget ftp_fput ftp_get ftp_get_option ftp_login ftp_mdtm ftp_mkdir ftp_nb_continue ftp_nb_fget ftp_nb_fput ftp_nb_get ftp_nb_put ftp_nlist ftp_pasv ftp_put ftp_pwd ftp_quit ftp_raw ftp_rawlist ftp_rename ftp_rmdir ftp_set_option ftp_site ftp_size ftp_ssl_connect ftp_systype ftruncate func_get_arg func_get_args func_num_args function __FUNCTION__ function_exists fwrite gc_collect_cycles gc_disable gc_enable gc_enabled gd_info gearmanclient gearmanjob gearmantask gearmanworker geoip_continent_code_by_name geoip_country_code3_by_name geoip_country_code_by_name geoip_country_name_by_name geoip_database_info geoip_db_avail geoip_db_filename geoip_db_get_all_info geoip_id_by_name geoip_isp_by_name geoip_org_by_name geoip_record_by_name geoip_region_by_name geoip_region_name_by_code geoip_time_zone_by_country_and_region __get() getallheaders get_browser get_called_class get_cfg_var get_class get_class_methods get_class_vars getclosure getconstant getconstants getconstructor get_current_user getcwd getdate get_declared_classes get_declared_interfaces getdefaultproperties get_defined_constants get_defined_functions get_defined_vars getdoccomment getendline getenv getextension get_extension_funcs getextensionname getfilename get_headers gethostbyaddr gethostbyname gethostbynamel gethostname get_html_translation_table getimagesize get_included_files get_include_path getinterfacenames getinterfaces getlastmod get_loaded_extensions get_magic_quotes_gpc get_magic_quotes_runtime getMeta get_meta_tags getmethod getmethods getmodifiers getmxrr getmygid getmyinode getmypid getmyuid getname getNamed getnamespacename get_object_vars getopt getparentclass get_parent_class getproperties getproperty getprotobyname getprotobynumber getrandmax get_required_files get_resource_type getrusage getservbyname getservbyport getshortname getstartline getstaticproperties getstaticpropertyvalue gettext gettimeofday gettraitaliases gettraitnames gettraits gettype getValue glob global globiterator gmagick gmagickdraw gmagickpixel gmdate gmmktime gmp_abs gmp_add gmp_and gmp_clrbit gmp_cmp gmp_com gmp_div gmp_divexact gmp_div_q gmp_div_qr gmp_div_r gmp_fact gmp_gcd gmp_gcdext gmp_hamdist gmp_init gmp_intval gmp_invert gmp_jacobi gmp_legendre gmp_mod gmp_mul gmp_neg gmp_nextprime gmp_or gmp_perfect_square gmp_popcount gmp_pow gmp_powm gmp_prob_prime gmp_random gmp_scan0 gmp_scan1 gmp_setbit gmp_sign gmp_sqrt gmp_sqrtrem gmp_strval gmp_sub gmp_testbit gmp_xor gmstrftime gnupg_adddecryptkey gnupg_addencryptkey gnupg_addsignkey gnupg_cleardecryptkeys gnupg_clearencryptkeys gnupg_clearsignkeys gnupg_decrypt gnupg_decryptverify gnupg_encrypt gnupg_encryptsign gnupg_export gnupg_geterror gnupg_getprotocol gnupg_import gnupg_init gnupg_keyinfo gnupg_setarmor gnupg_seterrormode gnupg_setsignmode gnupg_sign gnupg_verify gopher_parsedir goto grapheme_extract grapheme_stripos grapheme_stristr grapheme_strlen grapheme_strpos grapheme_strripos grapheme_strrpos grapheme_strstr grapheme_substr gregoriantojd gupnp_context_get_host_ip gupnp_context_get_port gupnp_context_get_subscription_timeout gupnp_context_host_path gupnp_context_new gupnp_context_set_subscription_timeout gupnp_context_timeout_add gupnp_context_unhost_path gupnp_control_point_browse_start gupnp_control_point_browse_stop gupnp_control_point_callback_set gupnp_control_point_new gupnp_device_action_callback_set gupnp_device_info_get gupnp_device_info_get_service gupnp_root_device_get_available gupnp_root_device_get_relative_location gupnp_root_device_new gupnp_root_device_set_available gupnp_root_device_start gupnp_root_device_stop gupnp_service_action_get gupnp_service_action_return gupnp_service_action_return_error gupnp_service_action_set gupnp_service_freeze_notify gupnp_service_info_get gupnp_service_info_get_introspection gupnp_service_introspection_get_state_variable gupnp_service_notify gupnp_service_proxy_action_get gupnp_service_proxy_action_set gupnp_service_proxy_add_notify gupnp_service_proxy_callback_set gupnp_service_proxy_get_subscribed gupnp_service_proxy_remove_notify gupnp_service_proxy_set_subscribed gupnp_service_thaw_notify gzclose gzcompress gzdecode gzdeflate gzencode gzeof gzfile gzgetc gzgets gzgetss gzinflate gzopen gzpassthru gzputs gzread gzrewind gzseek gztell gzuncompress gzwrite halt_compiler haruannotation haruannotation_setborderstyle haruannotation_sethighlightmode haruannotation_seticon haruannotation_setopened harudestination harudestination_setfit harudestination_setfitb harudestination_setfitbh harudestination_setfitbv harudestination_setfith harudestination_setfitr harudestination_setfitv harudestination_setxyz harudoc harudoc_addpage harudoc_addpagelabel harudoc_construct harudoc_createoutline harudoc_getcurrentencoder harudoc_getcurrentpage harudoc_getencoder harudoc_getfont harudoc_getinfoattr harudoc_getpagelayout harudoc_getpagemode harudoc_getstreamsize harudoc_insertpage harudoc_loadjpeg harudoc_loadpng harudoc_loadraw harudoc_loadttc harudoc_loadttf harudoc_loadtype1 harudoc_output harudoc_readfromstream harudoc_reseterror harudoc_resetstream harudoc_save harudoc_savetostream harudoc_setcompressionmode harudoc_setcurrentencoder harudoc_setencryptionmode harudoc_setinfoattr harudoc_setinfodateattr harudoc_setopenaction harudoc_setpagelayout harudoc_setpagemode harudoc_setpagesconfiguration harudoc_setpassword harudoc_setpermission harudoc_usecnsencodings harudoc_usecnsfonts harudoc_usecntencodings harudoc_usecntfonts harudoc_usejpencodings harudoc_usejpfonts harudoc_usekrencodings harudoc_usekrfonts haruencoder haruencoder_getbytetype haruencoder_gettype haruencoder_getunicode haruencoder_getwritingmode haruexception harufont harufont_getascent harufont_getcapheight harufont_getdescent harufont_getencodingname harufont_getfontname harufont_gettextwidth harufont_getunicodewidth harufont_getxheight harufont_measuretext haruimage haruimage_getbitspercomponent haruimage_getcolorspace haruimage_getheight haruimage_getsize haruimage_getwidth haruimage_setcolormask haruimage_setmaskimage haruoutline haruoutline_setdestination haruoutline_setopened harupage harupage_arc harupage_begintext harupage_circle harupage_closepath harupage_concat harupage_createdestination harupage_createlinkannotation harupage_createtextannotation harupage_createurlannotation harupage_curveto harupage_curveto2 harupage_curveto3 harupage_drawimage harupage_ellipse harupage_endpath harupage_endtext harupage_eofill harupage_eofillstroke harupage_fill harupage_fillstroke harupage_getcharspace harupage_getcmykfill harupage_getcmykstroke harupage_getcurrentfont harupage_getcurrentfontsize harupage_getcurrentpos harupage_getcurrenttextpos harupage_getdash harupage_getfillingcolorspace harupage_getflatness harupage_getgmode harupage_getgrayfill harupage_getgraystroke harupage_getheight harupage_gethorizontalscaling harupage_getlinecap harupage_getlinejoin harupage_getlinewidth harupage_getmiterlimit harupage_getrgbfill harupage_getrgbstroke harupage_getstrokingcolorspace harupage_gettextleading harupage_gettextmatrix harupage_gettextrenderingmode harupage_gettextrise harupage_gettextwidth harupage_gettransmatrix harupage_getwidth harupage_getwordspace harupage_lineto harupage_measuretext harupage_movetextpos harupage_moveto harupage_movetonextline harupage_rectangle harupage_setcharspace harupage_setcmykfill harupage_setcmykstroke harupage_setdash harupage_setflatness harupage_setfontandsize harupage_setgrayfill harupage_setgraystroke harupage_setheight harupage_sethorizontalscaling harupage_setlinecap harupage_setlinejoin harupage_setlinewidth harupage_setmiterlimit harupage_setrgbfill harupage_setrgbstroke harupage_setrotate harupage_setsize harupage_setslideshow harupage_settextleading harupage_settextmatrix harupage_settextrenderingmode harupage_settextrise harupage_setwidth harupage_setwordspace harupage_showtext harupage_showtextnextline harupage_stroke harupage_textout harupage_textrect hasconstant hash hash_algos hash_copy hash_file hash_final hash_hmac hash_hmac_file hash_init hash_update hash_update_file hash_update_stream hasmethod hasproperty header header_register_callback header_remove headers_list headers_sent hebrev hebrevc hex2bin hexdec highlight_file highlight_string htmlentities html_entity_decode htmlspecialchars htmlspecialchars_decode http_build_cookie http_build_query http_build_str http_build_url http_cache_etag http_cache_last_modified http_chunked_decode http_date http_deflate httpdeflatestream httpdeflatestream_construct httpdeflatestream_factory httpdeflatestream_finish httpdeflatestream_flush httpdeflatestream_update http_get http_get_request_body http_get_request_body_stream http_get_request_headers http_head http_inflate httpinflatestream httpinflatestream_construct httpinflatestream_factory httpinflatestream_finish httpinflatestream_flush httpinflatestream_update http_match_etag http_match_modified http_match_request_header httpmessage httpmessage_addheaders httpmessage_construct httpmessage_detach httpmessage_factory httpmessage_fromenv httpmessage_fromstring httpmessage_getbody httpmessage_getheader httpmessage_getheaders httpmessage_gethttpversion httpmessage_getparentmessage httpmessage_getrequestmethod httpmessage_getrequesturl httpmessage_getresponsecode httpmessage_getresponsestatus httpmessage_gettype httpmessage_guesscontenttype httpmessage_prepend httpmessage_reverse httpmessage_send httpmessage_setbody httpmessage_setheaders httpmessage_sethttpversion httpmessage_setrequestmethod httpmessage_setrequesturl httpmessage_setresponsecode httpmessage_setresponsestatus httpmessage_settype httpmessage_tomessagetypeobject httpmessage_tostring http_negotiate_charset http_negotiate_content_type http_negotiate_language http_parse_cookie http_parse_headers http_parse_message http_parse_params http_persistent_handles_clean http_persistent_handles_count http_persistent_handles_ident http_post_data http_post_fields http_put_data http_put_file http_put_stream httpquerystring httpquerystring_construct httpquerystring_get httpquerystring_mod httpquerystring_set httpquerystring_singleton httpquerystring_toarray httpquerystring_tostring httpquerystring_xlate http_redirect httprequest http_request httprequest_addcookies httprequest_addheaders httprequest_addpostfields httprequest_addpostfile httprequest_addputdata httprequest_addquerydata httprequest_addrawpostdata httprequest_addssloptions http_request_body_encode httprequest_clearhistory httprequest_construct httprequest_enablecookies httprequest_getcontenttype httprequest_getcookies httprequest_getheaders httprequest_gethistory httprequest_getmethod httprequest_getoptions httprequest_getpostfields httprequest_getpostfiles httprequest_getputdata httprequest_getputfile httprequest_getquerydata httprequest_getrawpostdata httprequest_getrawrequestmessage httprequest_getrawresponsemessage httprequest_getrequestmessage httprequest_getresponsebody httprequest_getresponsecode httprequest_getresponsecookies httprequest_getresponsedata httprequest_getresponseheader httprequest_getresponseinfo httprequest_getresponsemessage httprequest_getresponsestatus httprequest_getssloptions httprequest_geturl http_request_method_exists http_request_method_name http_request_method_register http_request_method_unregister httprequestpool httprequestpool_attach httprequestpool_construct httprequestpool_destruct httprequestpool_detach httprequestpool_getattachedrequests httprequestpool_getfinishedrequests httprequestpool_reset httprequestpool_send httprequestpool_socketperform httprequestpool_socketselect httprequest_resetcookies httprequest_send httprequest_setcontenttype httprequest_setcookies httprequest_setheaders httprequest_setmethod httprequest_setoptions httprequest_setpostfields httprequest_setpostfiles httprequest_setputdata httprequest_setputfile httprequest_setquerydata httprequest_setrawpostdata httprequest_setssloptions httprequest_seturl httpresponse httpresponse_capture http_response_code httpresponse_getbuffersize httpresponse_getcache httpresponse_getcachecontrol httpresponse_getcontentdisposition httpresponse_getcontenttype httpresponse_getdata httpresponse_getetag httpresponse_getfile httpresponse_getgzip httpresponse_getheader httpresponse_getlastmodified httpresponse_getrequestbody httpresponse_getrequestbodystream httpresponse_getrequestheaders httpresponse_getstream httpresponse_getthrottledelay httpresponse_guesscontenttype httpresponse_redirect httpresponse_send httpresponse_setbuffersize httpresponse_setcache httpresponse_setcachecontrol httpresponse_setcontentdisposition httpresponse_setcontenttype httpresponse_setdata httpresponse_setetag httpresponse_setfile httpresponse_setgzip httpresponse_setheader httpresponse_setlastmodified httpresponse_setstream httpresponse_setthrottledelay httpresponse_status http_send_content_disposition http_send_content_type http_send_data http_send_file http_send_last_modified http_send_status http_send_stream http_support http_throttle hwapi_attribute hwapi_attribute_key hwapi_attribute_langdepvalue hwapi_attribute_value hwapi_attribute_values hwapi_checkin hwapi_checkout hwapi_children hwapi_content hwapi_content_mimetype hwapi_content_read hwapi_copy hwapi_dbstat hwapi_dcstat hwapi_dstanchors hwapi_dstofsrcanchor hwapi_error_count hwapi_error_reason hwapi_find hwapi_ftstat hwapi_hgcsp hwapi_hwstat hwapi_identify hwapi_info hwapi_insert hwapi_insertanchor hwapi_insertcollection hwapi_insertdocument hwapi_link hwapi_lock hwapi_move hwapi_new_content hwapi_object hwapi_object_assign hwapi_object_attreditable hwapi_objectbyanchor hwapi_object_count hwapi_object_insert hwapi_object_new hwapi_object_remove hwapi_object_title hwapi_object_value hwapi_parents hwapi_reason_description hwapi_reason_type hwapi_remove hwapi_replace hwapi_setcommittedversion hwapi_srcanchors hwapi_srcsofdst hwapi_unlock hwapi_user hwapi_userlist hw_array2objrec hw_changeobject hw_children hw_childrenobj hw_close hw_connect hw_connection_info hw_cp hw_deleteobject hw_docbyanchor hw_docbyanchorobj hw_document_attributes hw_document_bodytag hw_document_content hw_document_setcontent hw_document_size hw_dummy hw_edittext hw_error hw_errormsg hw_free_document hw_getanchors hw_getanchorsobj hw_getandlock hw_getchildcoll hw_getchildcollobj hw_getchilddoccoll hw_getchilddoccollobj hw_getobject hw_getobjectbyquery hw_getobjectbyquerycoll hw_getobjectbyquerycollobj hw_getobjectbyqueryobj hw_getparents hw_getparentsobj hw_getrellink hw_getremote hw_getremotechildren hw_getsrcbydestobj hw_gettext hw_getusername hw_identify hw_incollections hw_info hw_inscoll hw_insdoc hw_insertanchors hw_insertdocument hw_insertobject hw_mapid hw_modifyobject hw_mv hw_new_document hw_objrec2array hw_output_document hw_pconnect hw_pipedocument hw_root hw_setlinkroot hw_stat hw_unlock hw_who hypot ibase_add_user ibase_affected_rows ibase_backup ibase_blob_add ibase_blob_cancel ibase_blob_close ibase_blob_create ibase_blob_echo ibase_blob_get ibase_blob_import ibase_blob_info ibase_blob_open ibase_close ibase_commit ibase_commit_ret ibase_connect ibase_db_info ibase_delete_user ibase_drop_db ibase_errcode ibase_errmsg ibase_execute ibase_fetch_assoc ibase_fetch_object ibase_fetch_row ibase_field_info ibase_free_event_handler ibase_free_query ibase_free_result ibase_gen_id ibase_maintain_db ibase_modify_user ibase_name_result ibase_num_fields ibase_num_params ibase_param_info ibase_pconnect ibase_prepare ibase_query ibase_restore ibase_rollback ibase_rollback_ret ibase_server_info ibase_service_attach ibase_service_detach ibase_set_event_handler ibase_timefmt ibase_trans ibase_wait_event iconv iconv_get_encoding iconv_mime_decode iconv_mime_decode_headers iconv_mime_encode iconv_set_encoding iconv_strlen iconv_strpos iconv_strrpos iconv_substr id3_get_frame_long_name id3_get_frame_short_name id3_get_genre_id id3_get_genre_list id3_get_genre_name id3_get_tag id3_get_version id3_remove_tag id3_set_tag idate idn_to_ascii idn_to_unicode idn_to_utf8 if ifx_affected_rows ifx_blobinfile_mode ifx_byteasvarchar ifx_close ifx_connect ifx_copy_blob ifx_create_blob ifx_create_char ifx_do ifx_error ifx_errormsg ifx_fetch_row ifx_fieldproperties ifx_fieldtypes ifx_free_blob ifx_free_char ifx_free_result ifx_get_blob ifx_get_char ifx_getsqlca ifx_htmltbl_result ifx_nullformat ifx_num_fields ifx_num_rows ifx_pconnect ifx_prepare ifx_query ifx_textasvarchar ifx_update_blob ifx_update_char ifxus_close_slob ifxus_create_slob ifxus_free_slob ifxus_open_slob ifxus_read_slob ifxus_seek_slob ifxus_tell_slob ifxus_write_slob ignore_user_abort iis_add_server iis_get_dir_security iis_get_script_map iis_get_server_by_comment iis_get_server_by_path iis_get_server_rights iis_get_service_state iis_remove_server iis_set_app_settings iis_set_dir_security iis_set_script_map iis_set_server_rights iis_start_server iis_start_service iis_stop_server iis_stop_service image2wbmp imagealphablending imageantialias imagearc imagechar imagecharup imagecolorallocate imagecolorallocatealpha imagecolorat imagecolorclosest imagecolorclosestalpha imagecolorclosesthwb imagecolordeallocate imagecolorexact imagecolorexactalpha imagecolormatch imagecolorresolve imagecolorresolvealpha imagecolorset imagecolorsforindex imagecolorstotal imagecolortransparent imageconvolution imagecopy imagecopymerge imagecopymergegray imagecopyresampled imagecopyresized imagecreate imagecreatefromgd imagecreatefromgd2 imagecreatefromgd2part imagecreatefromgif imagecreatefromjpeg imagecreatefrompng imagecreatefromstring imagecreatefromwbmp imagecreatefromxbm imagecreatefromxpm imagecreatetruecolor imagedashedline imagedestroy imageellipse imagefill imagefilledarc imagefilledellipse imagefilledpolygon imagefilledrectangle imagefilltoborder imagefilter imagefontheight imagefontwidth imageftbbox imagefttext imagegammacorrect imagegd imagegd2 imagegif imagegrabscreen imagegrabwindow imageinterlace imageistruecolor imagejpeg imagelayereffect imageline imageloadfont imagepalettecopy imagepng imagepolygon imagepsbbox imagepsencodefont imagepsextendfont imagepsfreefont imagepsloadfont imagepsslantfont imagepstext imagerectangle imagerotate imagesavealpha imagesetbrush imagesetpixel imagesetstyle imagesetthickness imagesettile imagestring imagestringup imagesx imagesy imagetruecolortopalette imagettfbbox imagettftext imagetypes image_type_to_extension image_type_to_mime_type imagewbmp imagexbm imagick imagick_adaptiveblurimage imagick_adaptiveresizeimage imagick_adaptivesharpenimage imagick_adaptivethresholdimage imagick_addimage imagick_addnoiseimage imagick_affinetransformimage imagick_animateimages imagick_annotateimage imagick_appendimages imagick_averageimages imagick_blackthresholdimage imagick_blurimage imagick_borderimage imagick_charcoalimage imagick_chopimage imagick_clear imagick_clipimage imagick_clippathimage imagick_clone imagick_clutimage imagick_coalesceimages imagick_colorfloodfillimage imagick_colorizeimage imagick_combineimages imagick_commentimage imagick_compareimagechannels imagick_compareimagelayers imagick_compareimages imagick_compositeimage imagick_construct imagick_contrastimage imagick_contraststretchimage imagick_convolveimage imagick_cropimage imagick_cropthumbnailimage imagick_current imagick_cyclecolormapimage imagick_decipherimage imagick_deconstructimages imagick_deleteimageartifact imagick_despeckleimage imagick_destroy imagick_displayimage imagick_displayimages imagick_distortimage imagickdraw imagickdraw_affine imagickdraw_annotation imagickdraw_arc imagickdraw_bezier imagickdraw_circle imagickdraw_clear imagickdraw_clone imagickdraw_color imagickdraw_comment imagickdraw_composite imagickdraw_construct imagickdraw_destroy imagickdraw_ellipse imagickdraw_getclippath imagickdraw_getcliprule imagickdraw_getclipunits imagickdraw_getfillcolor imagickdraw_getfillopacity imagickdraw_getfillrule imagickdraw_getfont imagickdraw_getfontfamily imagickdraw_getfontsize imagickdraw_getfontstyle imagickdraw_getfontweight imagickdraw_getgravity imagickdraw_getstrokeantialias imagickdraw_getstrokecolor imagickdraw_getstrokedasharray imagickdraw_getstrokedashoffset imagickdraw_getstrokelinecap imagickdraw_getstrokelinejoin imagickdraw_getstrokemiterlimit imagickdraw_getstrokeopacity imagickdraw_getstrokewidth imagickdraw_gettextalignment imagickdraw_gettextantialias imagickdraw_gettextdecoration imagickdraw_gettextencoding imagickdraw_gettextundercolor imagickdraw_getvectorgraphics imagick_drawimage imagickdraw_line imagickdraw_matte imagickdraw_pathclose imagickdraw_pathcurvetoabsolute imagickdraw_pathcurvetoquadraticbezierabsolute imagickdraw_pathcurvetoquadraticbezierrelative imagickdraw_pathcurvetoquadraticbeziersmoothabsolute imagickdraw_pathcurvetoquadraticbeziersmoothrelative imagickdraw_pathcurvetorelative imagickdraw_pathcurvetosmoothabsolute imagickdraw_pathcurvetosmoothrelative imagickdraw_pathellipticarcabsolute imagickdraw_pathellipticarcrelative imagickdraw_pathfinish imagickdraw_pathlinetoabsolute imagickdraw_pathlinetohorizontalabsolute imagickdraw_pathlinetohorizontalrelative imagickdraw_pathlinetorelative imagickdraw_pathlinetoverticalabsolute imagickdraw_pathlinetoverticalrelative imagickdraw_pathmovetoabsolute imagickdraw_pathmovetorelative imagickdraw_pathstart imagickdraw_point imagickdraw_polygon imagickdraw_polyline imagickdraw_pop imagickdraw_popclippath imagickdraw_popdefs imagickdraw_poppattern imagickdraw_push imagickdraw_pushclippath imagickdraw_pushdefs imagickdraw_pushpattern imagickdraw_rectangle imagickdraw_render imagickdraw_rotate imagickdraw_roundrectangle imagickdraw_scale imagickdraw_setclippath imagickdraw_setcliprule imagickdraw_setclipunits imagickdraw_setfillalpha imagickdraw_setfillcolor imagickdraw_setfillopacity imagickdraw_setfillpatternurl imagickdraw_setfillrule imagickdraw_setfont imagickdraw_setfontfamily imagickdraw_setfontsize imagickdraw_setfontstretch imagickdraw_setfontstyle imagickdraw_setfontweight imagickdraw_setgravity imagickdraw_setstrokealpha imagickdraw_setstrokeantialias imagickdraw_setstrokecolor imagickdraw_setstrokedasharray imagickdraw_setstrokedashoffset imagickdraw_setstrokelinecap imagickdraw_setstrokelinejoin imagickdraw_setstrokemiterlimit imagickdraw_setstrokeopacity imagickdraw_setstrokepatternurl imagickdraw_setstrokewidth imagickdraw_settextalignment imagickdraw_settextantialias imagickdraw_settextdecoration imagickdraw_settextencoding imagickdraw_settextundercolor imagickdraw_setvectorgraphics imagickdraw_setviewbox imagickdraw_skewx imagickdraw_skewy imagickdraw_translate imagick_edgeimage imagick_embossimage imagick_encipherimage imagick_enhanceimage imagick_equalizeimage imagick_evaluateimage imagick_extentimage imagick_flattenimages imagick_flipimage imagick_floodfillpaintimage imagick_flopimage imagick_frameimage imagick_fximage imagick_gammaimage imagick_gaussianblurimage imagick_getcolorspace imagick_getcompression imagick_getcompressionquality imagick_getcopyright imagick_getfilename imagick_getfont imagick_getformat imagick_getgravity imagick_gethomeurl imagick_getimage imagick_getimagealphachannel imagick_getimageartifact imagick_getimagebackgroundcolor imagick_getimageblob imagick_getimageblueprimary imagick_getimagebordercolor imagick_getimagechanneldepth imagick_getimagechanneldistortion imagick_getimagechanneldistortions imagick_getimagechannelextrema imagick_getimagechannelmean imagick_getimagechannelrange imagick_getimagechannelstatistics imagick_getimageclipmask imagick_getimagecolormapcolor imagick_getimagecolors imagick_getimagecolorspace imagick_getimagecompose imagick_getimagecompression imagick_getimagecompressionquality imagick_getimagedelay imagick_getimagedepth imagick_getimagedispose imagick_getimagedistortion imagick_getimageextrema imagick_getimagefilename imagick_getimageformat imagick_getimagegamma imagick_getimagegeometry imagick_getimagegravity imagick_getimagegreenprimary imagick_getimageheight imagick_getimagehistogram imagick_getimageindex imagick_getimageinterlacescheme imagick_getimageinterpolatemethod imagick_getimageiterations imagick_getimagelength imagick_getimagemagicklicense imagick_getimagematte imagick_getimagemattecolor imagick_getimageorientation imagick_getimagepage imagick_getimagepixelcolor imagick_getimageprofile imagick_getimageprofiles imagick_getimageproperties imagick_getimageproperty imagick_getimageredprimary imagick_getimageregion imagick_getimagerenderingintent imagick_getimageresolution imagick_getimagesblob imagick_getimagescene imagick_getimagesignature imagick_getimagesize imagick_getimagetickspersecond imagick_getimagetotalinkdensity imagick_getimagetype imagick_getimageunits imagick_getimagevirtualpixelmethod imagick_getimagewhitepoint imagick_getimagewidth imagick_getinterlacescheme imagick_getiteratorindex imagick_getnumberimages imagick_getoption imagick_getpackagename imagick_getpage imagick_getpixeliterator imagick_getpixelregioniterator imagick_getpointsize imagick_getquantumdepth imagick_getquantumrange imagick_getreleasedate imagick_getresource imagick_getresourcelimit imagick_getsamplingfactors imagick_getsize imagick_getsizeoffset imagick_getversion imagick_hasnextimage imagick_haspreviousimage imagick_identifyimage imagick_implodeimage imagick_labelimage imagick_levelimage imagick_linearstretchimage imagick_liquidrescaleimage imagick_magnifyimage imagick_mapimage imagick_mattefloodfillimage imagick_medianfilterimage imagick_mergeimagelayers imagick_minifyimage imagick_modulateimage imagick_montageimage imagick_morphimages imagick_mosaicimages imagick_motionblurimage imagick_negateimage imagick_newimage imagick_newpseudoimage imagick_nextimage imagick_normalizeimage imagick_oilpaintimage imagick_opaquepaintimage imagick_optimizeimagelayers imagick_orderedposterizeimage imagick_paintfloodfillimage imagick_paintopaqueimage imagick_painttransparentimage imagick_pingimage imagick_pingimageblob imagick_pingimagefile imagickpixel imagickpixel_clear imagickpixel_construct imagickpixel_destroy imagickpixel_getcolor imagickpixel_getcolorasstring imagickpixel_getcolorcount imagickpixel_getcolorvalue imagickpixel_gethsl imagickpixel_issimilar imagickpixeliterator imagickpixeliterator_clear imagickpixeliterator_construct imagickpixeliterator_destroy imagickpixeliterator_getcurrentiteratorrow imagickpixeliterator_getiteratorrow imagickpixeliterator_getnextiteratorrow imagickpixeliterator_getpreviousiteratorrow imagickpixeliterator_newpixeliterator imagickpixeliterator_newpixelregioniterator imagickpixeliterator_resetiterator imagickpixeliterator_setiteratorfirstrow imagickpixeliterator_setiteratorlastrow imagickpixeliterator_setiteratorrow imagickpixeliterator_synciterator imagickpixel_setcolor imagickpixel_setcolorvalue imagickpixel_sethsl imagick_polaroidimage imagick_posterizeimage imagick_previewimages imagick_previousimage imagick_profileimage imagick_quantizeimage imagick_quantizeimages imagick_queryfontmetrics imagick_queryfonts imagick_queryformats imagick_radialblurimage imagick_raiseimage imagick_randomthresholdimage imagick_readimage imagick_readimageblob imagick_readimagefile imagick_recolorimage imagick_reducenoiseimage imagick_removeimage imagick_removeimageprofile imagick_render imagick_resampleimage imagick_resetimagepage imagick_resizeimage imagick_rollimage imagick_rotateimage imagick_roundcorners imagick_sampleimage imagick_scaleimage imagick_separateimagechannel imagick_sepiatoneimage imagick_setbackgroundcolor imagick_setcolorspace imagick_setcompression imagick_setcompressionquality imagick_setfilename imagick_setfirstiterator imagick_setfont imagick_setformat imagick_setgravity imagick_setimage imagick_setimagealphachannel imagick_setimageartifact imagick_setimagebackgroundcolor imagick_setimagebias imagick_setimageblueprimary imagick_setimagebordercolor imagick_setimagechanneldepth imagick_setimageclipmask imagick_setimagecolormapcolor imagick_setimagecolorspace imagick_setimagecompose imagick_setimagecompression imagick_setimagecompressionquality imagick_setimagedelay imagick_setimagedepth imagick_setimagedispose imagick_setimageextent imagick_setimagefilename imagick_setimageformat imagick_setimagegamma imagick_setimagegravity imagick_setimagegreenprimary imagick_setimageindex imagick_setimageinterlacescheme imagick_setimageinterpolatemethod imagick_setimageiterations imagick_setimagematte imagick_setimagemattecolor imagick_setimageopacity imagick_setimageorientation imagick_setimagepage imagick_setimageprofile imagick_setimageproperty imagick_setimageredprimary imagick_setimagerenderingintent imagick_setimageresolution imagick_setimagescene imagick_setimagetickspersecond imagick_setimagetype imagick_setimageunits imagick_setimagevirtualpixelmethod imagick_setimagewhitepoint imagick_setinterlacescheme imagick_setiteratorindex imagick_setlastiterator imagick_setoption imagick_setpage imagick_setpointsize imagick_setresolution imagick_setresourcelimit imagick_setsamplingfactors imagick_setsize imagick_setsizeoffset imagick_settype imagick_shadeimage imagick_shadowimage imagick_sharpenimage imagick_shaveimage imagick_shearimage imagick_sigmoidalcontrastimage imagick_sketchimage imagick_solarizeimage imagick_spliceimage imagick_spreadimage imagick_steganoimage imagick_stereoimage imagick_stripimage imagick_swirlimage imagick_textureimage imagick_thresholdimage imagick_thumbnailimage imagick_tintimage imagick_transformimage imagick_transparentpaintimage imagick_transposeimage imagick_transverseimage imagick_trimimage imagick_uniqueimagecolors imagick_unsharpmaskimage imagick_valid imagick_vignetteimage imagick_waveimage imagick_whitethresholdimage imagick_writeimage imagick_writeimagefile imagick_writeimages imagick_writeimagesfile imap_8bit imap_alerts imap_append imap_base64 imap_binary imap_body imap_bodystruct imap_check imap_clearflag_full imap_close imap_create imap_createmailbox imap_delete imap_deletemailbox imap_errors imap_expunge imap_fetchbody imap_fetchheader imap_fetchmime imap_fetch_overview imap_fetchstructure imap_fetchtext imap_gc imap_getacl imap_getmailboxes imap_get_quota imap_get_quotaroot imap_getsubscribed imap_header imap_headerinfo imap_headers imap_last_error imap_list imap_listmailbox imap_listscan imap_listsubscribed imap_lsub imap_mail imap_mailboxmsginfo imap_mail_compose imap_mail_copy imap_mail_move imap_mime_header_decode imap_msgno imap_num_msg imap_num_recent imap_open imap_ping imap_qprint imap_rename imap_renamemailbox imap_reopen imap_rfc822_parse_adrlist imap_rfc822_parse_headers imap_rfc822_write_address imap_savebody imap_scan imap_scanmailbox imap_search imap_setacl imap_setflag_full imap_set_quota imap_sort imap_status imap_subscribe imap_thread imap_timeout imap_uid imap_undelete imap_unsubscribe imap_utf7_decode imap_utf7_encode imap_utf8 implements implementsinterface implode import_request_variables in_array include include_once inclued_get_data inet_ntop inet_pton infiniteiterator ingres_autocommit ingres_autocommit_state ingres_charset ingres_close ingres_commit ingres_connect ingres_cursor ingres_errno ingres_error ingres_errsqlstate ingres_escape_string ingres_execute ingres_fetch_array ingres_fetch_assoc ingres_fetch_object ingres_fetch_proc_return ingres_fetch_row ingres_field_length ingres_field_name ingres_field_nullable ingres_field_precision ingres_field_scale ingres_field_type ingres_free_result ingres_next_error ingres_num_fields ingres_num_rows ingres_pconnect ingres_prepare ingres_query ingres_result_seek ingres_rollback ingres_set_environment ingres_unbuffered_query ini_alter ini_get ini_get_all ini_restore ini_set innamespace inotify_add_watch inotify_init inotify_queue_len inotify_read inotify_rm_watch instanceof interface interface_exists intldateformatter intl_error_name intl_get_error_code intl_get_error_message intl_is_failure intval invalidargumentexception invoke __invoke() invokeargs ip2long iptcembed iptcparse is_a isabstract is_array is_bool is_callable iscloneable is_dir isdisabled is_double is_executable is_file isfinal is_finite is_float is_infinite isinstance isinstantiable is_int is_integer isinterface isinternal isiterateable is_link is_long is_nan is_null is_numeric is_object is_readable is_real is_resource is_scalar isset __isset() is_soap_fault is_string issubclassof is_subclass_of istrait is_uploaded_file isuserdefined is_writable is_writeable iterator iteratoraggregate iterator_apply iterator_count iteratoriterator iterator_to_array java_last_exception_clear java_last_exception_get jddayofweek jdmonthname jdtofrench jdtogregorian jdtojewish jdtojulian jdtounix jewishtojd join jpeg2wbmp json_decode json_encode json_last_error jsonserializable judy judy_type judy_version juliantojd kadm5_chpass_principal kadm5_create_principal kadm5_delete_principal kadm5_destroy kadm5_flush kadm5_get_policies kadm5_get_principal kadm5_get_principals kadm5_init_with_password kadm5_modify_principal key krsort ksort ktaglib_id3v2_attachedpictureframe ktaglib_id3v2_frame ktaglib_id3v2_tag ktaglib_mpeg_audioproperties ktaglib_mpeg_file ktaglib_tag lcfirst lcg_value lchgrp lchown ldap_8859_to_t61 ldap_add ldap_bind ldap_close ldap_compare ldap_connect ldap_count_entries ldap_delete ldap_dn2ufn ldap_err2str ldap_errno ldap_error ldap_explode_dn ldap_first_attribute ldap_first_entry ldap_first_reference ldap_free_result ldap_get_attributes ldap_get_dn ldap_get_entries ldap_get_option ldap_get_values ldap_get_values_len ldap_list ldap_mod_add ldap_mod_del ldap_modify ldap_mod_replace ldap_next_attribute ldap_next_entry ldap_next_reference ldap_parse_reference ldap_parse_result ldap_read ldap_rename ldap_sasl_bind ldap_search ldap_set_option ldap_set_rebind_proc ldap_sort ldap_start_tls ldap_t61_to_8859 ldap_unbind lengthexception levenshtein libxml_clear_errors libxml_disable_entity_loader libxmlerror libxml_get_errors libxml_get_last_error libxml_set_streams_context libxml_use_internal_errors limititerator __LINE__ link linkinfo list locale localeconv localtime log log10 log1p logicexception long2ip lstat ltrim lua luaclosure lzf_compress lzf_decompress lzf_optimized_for magic_quotes_runtime mail mailparse_determine_best_xfer_encoding mailparse_msg_create mailparse_msg_extract_part mailparse_msg_extract_part_file mailparse_msg_extract_whole_part_file mailparse_msg_free mailparse_msg_get_part mailparse_msg_get_part_data mailparse_msg_get_structure mailparse_msg_parse mailparse_msg_parse_file mailparse_rfc822_parse_addresses mailparse_stream_encode mailparse_uudecode_all main max maxdb_affected_rows maxdb_autocommit maxdb_bind_param maxdb_bind_result maxdb_change_user maxdb_character_set_name maxdb_client_encoding maxdb_close maxdb_close_long_data maxdb_commit maxdb_connect maxdb_connect_errno maxdb_connect_error maxdb_data_seek maxdb_debug maxdb_disable_reads_from_master maxdb_disable_rpl_parse maxdb_dump_debug_info maxdb_embedded_connect maxdb_enable_reads_from_master maxdb_enable_rpl_parse maxdb_errno maxdb_error maxdb_escape_string maxdb_execute maxdb_fetch maxdb_fetch_array maxdb_fetch_assoc maxdb_fetch_field maxdb_fetch_field_direct maxdb_fetch_fields maxdb_fetch_lengths maxdb_fetch_object maxdb_fetch_row maxdb_field_count maxdb_field_seek maxdb_field_tell maxdb_free_result maxdb_get_client_info maxdb_get_client_version maxdb_get_host_info maxdb_get_metadata maxdb_get_proto_info maxdb_get_server_info maxdb_get_server_version maxdb_info maxdb_init maxdb_insert_id maxdb_kill maxdb_master_query maxdb_more_results maxdb_multi_query maxdb_next_result maxdb_num_fields maxdb_num_rows maxdb_options maxdb_param_count maxdb_ping maxdb_prepare maxdb_query maxdb_real_connect maxdb_real_escape_string maxdb_real_query maxdb_report maxdb_rollback maxdb_rpl_parse_enabled maxdb_rpl_probe maxdb_rpl_query_type maxdb_select_db maxdb_send_long_data maxdb_send_query maxdb_server_end maxdb_server_init maxdb_set_opt maxdb_sqlstate maxdb_ssl_set maxdb_stat maxdb_stmt_affected_rows maxdb_stmt_bind_param maxdb_stmt_bind_result maxdb_stmt_close maxdb_stmt_close_long_data maxdb_stmt_data_seek maxdb_stmt_errno maxdb_stmt_error maxdb_stmt_execute maxdb_stmt_fetch maxdb_stmt_free_result maxdb_stmt_init maxdb_stmt_num_rows maxdb_stmt_param_count maxdb_stmt_prepare maxdb_stmt_reset maxdb_stmt_result_metadata maxdb_stmt_send_long_data maxdb_stmt_sqlstate maxdb_stmt_store_result maxdb_store_result maxdb_thread_id maxdb_thread_safe maxdb_use_result maxdb_warning_count mb_check_encoding mb_convert_case mb_convert_encoding mb_convert_kana mb_convert_variables mb_decode_mimeheader mb_decode_numericentity mb_detect_encoding mb_detect_order mb_encode_mimeheader mb_encode_numericentity mb_encoding_aliases mb_ereg mb_eregi mb_eregi_replace mb_ereg_match mb_ereg_replace mb_ereg_search mb_ereg_search_getpos mb_ereg_search_getregs mb_ereg_search_init mb_ereg_search_pos mb_ereg_search_regs mb_ereg_search_setpos mb_get_info mb_http_input mb_http_output mb_internal_encoding mb_language mb_list_encodings mb_output_handler mb_parse_str mb_preferred_mime_name mb_regex_encoding mb_regex_set_options mb_send_mail mb_split mb_strcut mb_strimwidth mb_stripos mb_stristr mb_strlen mb_strpos mb_strrchr mb_strrichr mb_strripos mb_strrpos mb_strstr mb_strtolower mb_strtoupper mb_strwidth mb_substitute_character mb_substr mb_substr_count m_checkstatus m_completeauthorizations m_connect m_connectionerror mcrypt_cbc mcrypt_cfb mcrypt_create_iv mcrypt_decrypt mcrypt_ecb mcrypt_enc_get_algorithms_name mcrypt_enc_get_block_size mcrypt_enc_get_iv_size mcrypt_enc_get_key_size mcrypt_enc_get_modes_name mcrypt_enc_get_supported_key_sizes mcrypt_enc_is_block_algorithm mcrypt_enc_is_block_algorithm_mode mcrypt_enc_is_block_mode mcrypt_encrypt mcrypt_enc_self_test mcrypt_generic mcrypt_generic_deinit mcrypt_generic_end mcrypt_generic_init mcrypt_get_block_size mcrypt_get_cipher_name mcrypt_get_iv_size mcrypt_get_key_size mcrypt_list_algorithms mcrypt_list_modes mcrypt_module_close mcrypt_module_get_algo_block_size mcrypt_module_get_algo_key_size mcrypt_module_get_supported_key_sizes mcrypt_module_is_block_algorithm mcrypt_module_is_block_algorithm_mode mcrypt_module_is_block_mode mcrypt_module_open mcrypt_module_self_test mcrypt_ofb md5 md5_file mdecrypt_generic m_deletetrans m_destroyconn m_destroyengine memcache memcached memcache_debug memory_get_peak_usage memory_get_usage messageformatter metaphone __METHOD__ method_exists m_getcell m_getcellbynum m_getcommadelimited m_getheader mhash mhash_count mhash_get_block_size mhash_get_hash_name mhash_keygen_s2k microtime mime_content_type min ming_keypress ming_setcubicthreshold ming_setscale ming_setswfcompression ming_useconstants ming_useswfversion m_initconn m_initengine m_iscommadelimited mkdir mktime m_maxconntimeout m_monitor m_numcolumns m_numrows money_format mongo mongobindata mongocode mongocollection mongoconnectionexception mongocursor mongocursorexception mongocursortimeoutexception mongodate mongodb mongodbref mongoexception mongogridfs mongogridfscursor mongogridfsexception mongogridfsfile mongoid mongoint32 mongoint64 mongolog mongomaxkey mongominkey mongopool mongoregex mongotimestamp move_uploaded_file m_parsecommadelimited mqseries_back mqseries_begin mqseries_close mqseries_cmit mqseries_conn mqseries_connx mqseries_disc mqseries_get mqseries_inq mqseries_open mqseries_put mqseries_put1 mqseries_set mqseries_strerror m_responsekeys m_responseparam m_returnstatus msession_connect msession_count msession_create msession_destroy msession_disconnect msession_find msession_get msession_get_array msession_get_data msession_inc msession_list msession_listvar msession_lock msession_plugin msession_randstr msession_set msession_set_array msession_set_data msession_timeout msession_uniq msession_unlock m_setblocking m_setdropfile m_setip m_setssl m_setssl_cafile m_setssl_files m_settimeout msg_get_queue msg_queue_exists msg_receive msg_remove_queue msg_send msg_set_queue msg_stat_queue msql msql_affected_rows msql_close msql_connect msql_createdb msql_create_db msql_data_seek msql_dbname msql_db_query msql_drop_db msql_error msql_fetch_array msql_fetch_field msql_fetch_object msql_fetch_row msql_fieldflags msql_field_flags msql_fieldlen msql_field_len msql_fieldname msql_field_name msql_field_seek msql_fieldtable msql_field_table msql_fieldtype msql_field_type msql_free_result msql_list_dbs msql_list_fields msql_list_tables msql_numfields msql_num_fields msql_numrows msql_num_rows msql_pconnect msql_query msql_regcase msql_result msql_select_db msql_tablename m_sslcert_gen_hash mssql_bind mssql_close mssql_connect mssql_data_seek mssql_execute mssql_fetch_array mssql_fetch_assoc mssql_fetch_batch mssql_fetch_field mssql_fetch_object mssql_fetch_row mssql_field_length mssql_field_name mssql_field_seek mssql_field_type mssql_free_result mssql_free_statement mssql_get_last_message mssql_guid_string mssql_init mssql_min_error_severity mssql_min_message_severity mssql_next_result mssql_num_fields mssql_num_rows mssql_pconnect mssql_query mssql_result mssql_rows_affected mssql_select_db mt_getrandmax mt_rand m_transactionssent m_transinqueue m_transkeyval m_transnew m_transsend mt_srand multipleiterator m_uwait m_validateidentifier m_verifyconnection m_verifysslcert mysql_affected_rows mysql_client_encoding mysql_close mysql_connect mysql_create_db mysql_data_seek mysql_db_name mysql_db_query mysql_drop_db mysql_errno mysql_error mysql_escape_string mysql_fetch_array mysql_fetch_assoc mysql_fetch_field mysql_fetch_lengths mysql_fetch_object mysql_fetch_row mysql_field_flags mysql_field_len mysql_field_name mysql_field_seek mysql_field_table mysql_field_type mysql_free_result mysql_get_client_info mysql_get_host_info mysql_get_proto_info mysql_get_server_info mysqli mysqli_bind_param mysqli_bind_result mysqli_client_encoding mysqli_connect mysqli_disable_reads_from_master mysqli_disable_rpl_parse mysqli_driver mysqli_enable_reads_from_master mysqli_enable_rpl_parse mysqli_escape_string mysqli_execute mysqli_fetch mysqli_get_metadata mysqli_master_query mysql_info mysql_insert_id mysqli_param_count mysqli_report mysqli_result mysqli_rpl_parse_enabled mysqli_rpl_probe mysqli_rpl_query_type mysqli_send_long_data mysqli_send_query mysqli_set_opt mysqli_slave_query mysqli_stmt mysqli_warning mysql_list_dbs mysql_list_fields mysql_list_processes mysql_list_tables mysqlnd_ms_get_stats mysqlnd_ms_query_is_select mysqlnd_ms_set_user_pick_server mysqlnd_qc_change_handler mysqlnd_qc_clear_cache mysqlnd_qc_get_cache_info mysqlnd_qc_get_core_stats mysqlnd_qc_get_handler mysqlnd_qc_get_query_trace_log mysqlnd_qc_set_user_handlers mysql_num_fields mysql_num_rows mysql_pconnect mysql_ping mysql_query mysql_real_escape_string mysql_result mysql_select_db mysql_set_charset mysql_stat mysql_tablename mysql_thread_id mysql_unbuffered_query namespace __NAMESPACE__ natcasesort natsort ncurses_addch ncurses_addchnstr ncurses_addchstr ncurses_addnstr ncurses_addstr ncurses_assume_default_colors ncurses_attroff ncurses_attron ncurses_attrset ncurses_baudrate ncurses_beep ncurses_bkgd ncurses_bkgdset ncurses_border ncurses_bottom_panel ncurses_can_change_color ncurses_cbreak ncurses_clear ncurses_clrtobot ncurses_clrtoeol ncurses_color_content ncurses_color_set ncurses_curs_set ncurses_define_key ncurses_def_prog_mode ncurses_def_shell_mode ncurses_delay_output ncurses_delch ncurses_deleteln ncurses_del_panel ncurses_delwin ncurses_doupdate ncurses_echo ncurses_echochar ncurses_end ncurses_erase ncurses_erasechar ncurses_filter ncurses_flash ncurses_flushinp ncurses_getch ncurses_getmaxyx ncurses_getmouse ncurses_getyx ncurses_halfdelay ncurses_has_colors ncurses_has_ic ncurses_has_il ncurses_has_key ncurses_hide_panel ncurses_hline ncurses_inch ncurses_init ncurses_init_color ncurses_init_pair ncurses_insch ncurses_insdelln ncurses_insertln ncurses_insstr ncurses_instr ncurses_isendwin ncurses_keyok ncurses_keypad ncurses_killchar ncurses_longname ncurses_meta ncurses_mouseinterval ncurses_mousemask ncurses_mouse_trafo ncurses_move ncurses_move_panel ncurses_mvaddch ncurses_mvaddchnstr ncurses_mvaddchstr ncurses_mvaddnstr ncurses_mvaddstr ncurses_mvcur ncurses_mvdelch ncurses_mvgetch ncurses_mvhline ncurses_mvinch ncurses_mvvline ncurses_mvwaddstr ncurses_napms ncurses_newpad ncurses_new_panel ncurses_newwin ncurses_nl ncurses_nocbreak ncurses_noecho ncurses_nonl ncurses_noqiflush ncurses_noraw ncurses_pair_content ncurses_panel_above ncurses_panel_below ncurses_panel_window ncurses_pnoutrefresh ncurses_prefresh ncurses_putp ncurses_qiflush ncurses_raw ncurses_refresh ncurses_replace_panel ncurses_reset_prog_mode ncurses_reset_shell_mode ncurses_resetty ncurses_savetty ncurses_scr_dump ncurses_scr_init ncurses_scrl ncurses_scr_restore ncurses_scr_set ncurses_show_panel ncurses_slk_attr ncurses_slk_attroff ncurses_slk_attron ncurses_slk_attrset ncurses_slk_clear ncurses_slk_color ncurses_slk_init ncurses_slk_noutrefresh ncurses_slk_refresh ncurses_slk_restore ncurses_slk_set ncurses_slk_touch ncurses_standend ncurses_standout ncurses_start_color ncurses_termattrs ncurses_termname ncurses_timeout ncurses_top_panel ncurses_typeahead ncurses_ungetch ncurses_ungetmouse ncurses_update_panels ncurses_use_default_colors ncurses_use_env ncurses_use_extended_names ncurses_vidattr ncurses_vline ncurses_waddch ncurses_waddstr ncurses_wattroff ncurses_wattron ncurses_wattrset ncurses_wborder ncurses_wclear ncurses_wcolor_set ncurses_werase ncurses_wgetch ncurses_whline ncurses_wmouse_trafo ncurses_wmove ncurses_wnoutrefresh ncurses_wrefresh ncurses_wstandend ncurses_wstandout ncurses_wvline new newinstance newinstanceargs newinstancewithoutconstructor newt_bell newt_button newt_button_bar newt_centered_window newt_checkbox newt_checkbox_get_value newt_checkbox_set_flags newt_checkbox_set_value newt_checkbox_tree newt_checkbox_tree_add_item newt_checkbox_tree_find_item newt_checkbox_tree_get_current newt_checkbox_tree_get_entry_value newt_checkbox_tree_get_multi_selection newt_checkbox_tree_get_selection newt_checkbox_tree_multi newt_checkbox_tree_set_current newt_checkbox_tree_set_entry newt_checkbox_tree_set_entry_value newt_checkbox_tree_set_width newt_clear_key_buffer newt_cls newt_compact_button newt_component_add_callback newt_component_takes_focus newt_create_grid newt_cursor_off newt_cursor_on newt_delay newt_draw_form newt_draw_root_text newt_entry newt_entry_get_value newt_entry_set newt_entry_set_filter newt_entry_set_flags newt_finished newt_form newt_form_add_component newt_form_add_components newt_form_add_hot_key newt_form_destroy newt_form_get_current newt_form_run newt_form_set_background newt_form_set_height newt_form_set_size newt_form_set_timer newt_form_set_width newt_form_watch_fd newt_get_screen_size newt_grid_add_components_to_form newt_grid_basic_window newt_grid_free newt_grid_get_size newt_grid_h_close_stacked newt_grid_h_stacked newt_grid_place newt_grid_set_field newt_grid_simple_window newt_grid_v_close_stacked newt_grid_v_stacked newt_grid_wrapped_window newt_grid_wrapped_window_at newt_init newt_label newt_label_set_text newt_listbox newt_listbox_append_entry newt_listbox_clear newt_listbox_clear_selection newt_listbox_delete_entry newt_listbox_get_current newt_listbox_get_selection newt_listbox_insert_entry newt_listbox_item_count newt_listbox_select_item newt_listbox_set_current newt_listbox_set_current_by_key newt_listbox_set_data newt_listbox_set_entry newt_listbox_set_width newt_listitem newt_listitem_get_data newt_listitem_set newt_open_window newt_pop_help_line newt_pop_window newt_push_help_line newt_radiobutton newt_radio_get_current newt_redraw_help_line newt_reflow_text newt_refresh newt_resize_screen newt_resume newt_run_form newt_scale newt_scale_set newt_scrollbar_set newt_set_help_callback newt_set_suspend_callback newt_suspend newt_textbox newt_textbox_get_num_lines newt_textbox_reflowed newt_textbox_set_height newt_textbox_set_text newt_vertical_scrollbar newt_wait_for_key newt_win_choice newt_win_entries newt_win_menu newt_win_message newt_win_messagev newt_win_ternary next ngettext nl2br nl_langinfo norewinditerator normalizer notes_body notes_copy_db notes_create_db notes_create_note notes_drop_db notes_find_note notes_header_info notes_list_msgs notes_mark_read notes_mark_unread notes_nav_create notes_search notes_unread notes_version nsapi_request_headers nsapi_response_headers nsapi_virtual nthmac number_format numberformatter oauth oauthexception oauth_get_sbs oauthprovider oauth_urlencode ob_clean ob_deflatehandler ob_end_clean ob_end_flush ob_etaghandler ob_flush ob_get_clean ob_get_contents ob_get_flush ob_get_length ob_get_level ob_get_status ob_gzhandler ob_iconv_handler ob_implicit_flush ob_inflatehandler ob_list_handlers ob_start ob_tidyhandler oci_bind_array_by_name ocibindbyname oci_bind_by_name ocicancel oci_cancel oci_client_version oci_close ocicloselob ocicollappend ocicollassign ocicollassignelem oci_collection_append oci_collection_assign oci_collection_element_assign oci_collection_element_get oci_collection_free oci_collection_max oci_collection_size oci_collection_trim ocicollgetelem ocicollmax ocicollsize ocicolltrim ocicolumnisnull ocicolumnname ocicolumnprecision ocicolumnscale ocicolumnsize ocicolumntype ocicolumntyperaw ocicommit oci_commit oci_connect ocidefinebyname oci_define_by_name ocierror oci_error ociexecute oci_execute ocifetch oci_fetch oci_fetch_all oci_fetch_array oci_fetch_assoc ocifetchinto oci_fetch_object oci_fetch_row ocifetchstatement oci_field_is_null oci_field_name oci_field_precision oci_field_scale oci_field_size oci_field_type oci_field_type_raw ocifreecollection ocifreecursor ocifreedesc ocifreestatement oci_free_statement ociinternaldebug oci_internal_debug ociloadlob oci_lob_append oci_lob_close oci_lob_copy oci_lob_eof oci_lob_erase oci_lob_export oci_lob_flush oci_lob_free oci_lob_getbuffering oci_lob_import oci_lob_is_equal oci_lob_load oci_lob_read oci_lob_rewind oci_lob_save oci_lob_savefile oci_lob_seek oci_lob_setbuffering oci_lob_size oci_lob_tell oci_lob_truncate oci_lob_write oci_lob_writetemporary oci_lob_writetofile ocilogoff ocilogon ocinewcollection oci_new_collection oci_new_connect ocinewcursor oci_new_cursor ocinewdescriptor oci_new_descriptor ocinlogon ocinumcols oci_num_fields oci_num_rows ociparse oci_parse oci_password_change oci_pconnect ociplogon ociresult oci_result ocirollback oci_rollback ocirowcount ocisavelob ocisavelobfile ociserverversion oci_server_version oci_set_action oci_set_client_identifier oci_set_client_info oci_set_edition oci_set_module_name ocisetprefetch oci_set_prefetch ocistatementtype oci_statement_type ociwritelobtofile ociwritetemporarylob octdec odbc_autocommit odbc_binmode odbc_close odbc_close_all odbc_columnprivileges odbc_columns odbc_commit odbc_connect odbc_cursor odbc_data_source odbc_do odbc_error odbc_errormsg odbc_exec odbc_execute odbc_fetch_array odbc_fetch_into odbc_fetch_object odbc_fetch_row odbc_field_len odbc_field_name odbc_field_num odbc_field_precision odbc_field_scale odbc_field_type odbc_foreignkeys odbc_free_result odbc_gettypeinfo odbc_longreadlen odbc_next_result odbc_num_fields odbc_num_rows odbc_pconnect odbc_prepare odbc_primarykeys odbc_procedurecolumns odbc_procedures odbc_result odbc_result_all odbc_rollback odbc_setoption odbc_specialcolumns odbc_statistics odbc_tableprivileges odbc_tables old_function openal_buffer_create openal_buffer_data openal_buffer_destroy openal_buffer_get openal_buffer_loadwav openal_context_create openal_context_current openal_context_destroy openal_context_process openal_context_suspend openal_device_close openal_device_open openal_listener_get openal_listener_set openal_source_create openal_source_destroy openal_source_get openal_source_pause openal_source_play openal_source_rewind openal_source_set openal_source_stop openal_stream opendir openlog openssl_cipher_iv_length openssl_csr_export openssl_csr_export_to_file openssl_csr_get_public_key openssl_csr_get_subject openssl_csr_new openssl_csr_sign openssl_decrypt openssl_dh_compute_key openssl_digest openssl_encrypt openssl_error_string openssl_free_key openssl_get_cipher_methods openssl_get_md_methods openssl_get_privatekey openssl_get_publickey openssl_open openssl_pkcs12_export openssl_pkcs12_export_to_file openssl_pkcs12_read openssl_pkcs7_decrypt openssl_pkcs7_encrypt openssl_pkcs7_sign openssl_pkcs7_verify openssl_pkey_export openssl_pkey_export_to_file openssl_pkey_free openssl_pkey_get_details openssl_pkey_get_private openssl_pkey_get_public openssl_pkey_new openssl_private_decrypt openssl_private_encrypt openssl_public_decrypt openssl_public_encrypt openssl_random_pseudo_bytes openssl_seal openssl_sign openssl_verify openssl_x509_check_private_key openssl_x509_checkpurpose openssl_x509_export openssl_x509_export_to_file openssl_x509_free openssl_x509_parse openssl_x509_read or ord outeriterator outofboundsexception outofrangeexception output_add_rewrite_var output_reset_rewrite_vars overflowexception overload override_function ovrimos_close ovrimos_commit ovrimos_connect ovrimos_cursor ovrimos_exec ovrimos_execute ovrimos_fetch_into ovrimos_fetch_row ovrimos_field_len ovrimos_field_name ovrimos_field_num ovrimos_field_type ovrimos_free_result ovrimos_longreadlen ovrimos_num_fields ovrimos_num_rows ovrimos_prepare ovrimos_result ovrimos_result_all ovrimos_rollback pack parentiterator parse_ini_file parse_ini_string parsekit_compile_file parsekit_compile_string parsekit_func_arginfo parse_str parse_url passthru pathinfo pclose pcntl_alarm pcntl_exec pcntl_fork pcntl_getpriority pcntl_setpriority pcntl_signal pcntl_signal_dispatch pcntl_sigprocmask pcntl_sigtimedwait pcntl_sigwaitinfo pcntl_wait pcntl_waitpid pcntl_wexitstatus pcntl_wifexited pcntl_wifsignaled pcntl_wifstopped pcntl_wstopsig pcntl_wtermsig pdf_activate_item pdf_add_annotation pdf_add_bookmark pdf_add_launchlink pdf_add_locallink pdf_add_nameddest pdf_add_note pdf_add_outline pdf_add_pdflink pdf_add_table_cell pdf_add_textflow pdf_add_thumbnail pdf_add_weblink pdf_arc pdf_arcn pdf_attach_file pdf_begin_document pdf_begin_font pdf_begin_glyph pdf_begin_item pdf_begin_layer pdf_begin_page pdf_begin_page_ext pdf_begin_pattern pdf_begin_template pdf_begin_template_ext pdf_circle pdf_clip pdf_close pdf_close_image pdf_closepath pdf_closepath_fill_stroke pdf_closepath_stroke pdf_close_pdi pdf_close_pdi_page pdf_concat pdf_continue_text pdf_create_3dview pdf_create_action pdf_create_annotation pdf_create_bookmark pdf_create_field pdf_create_fieldgroup pdf_create_gstate pdf_create_pvf pdf_create_textflow pdf_curveto pdf_define_layer pdf_delete pdf_delete_pvf pdf_delete_table pdf_delete_textflow pdf_encoding_set_char pdf_end_document pdf_end_font pdf_end_glyph pdf_end_item pdf_end_layer pdf_end_page pdf_end_page_ext pdf_endpath pdf_end_pattern pdf_end_template pdf_fill pdf_fill_imageblock pdf_fill_pdfblock pdf_fill_stroke pdf_fill_textblock pdf_findfont pdf_fit_image pdf_fit_pdi_page pdf_fit_table pdf_fit_textflow pdf_fit_textline pdf_get_apiname pdf_get_buffer pdf_get_errmsg pdf_get_errnum pdf_get_font pdf_get_fontname pdf_get_fontsize pdf_get_image_height pdf_get_image_width pdf_get_majorversion pdf_get_minorversion pdf_get_parameter pdf_get_pdi_parameter pdf_get_pdi_value pdf_get_value pdf_info_font pdf_info_matchbox pdf_info_table pdf_info_textflow pdf_info_textline pdf_initgraphics pdf_lineto pdf_load_3ddata pdf_load_font pdf_load_iccprofile pdf_load_image pdf_makespotcolor pdf_moveto pdf_new pdf_open_ccitt pdf_open_file pdf_open_gif pdf_open_image pdf_open_image_file pdf_open_jpeg pdf_open_memory_image pdf_open_pdi pdf_open_pdi_document pdf_open_pdi_page pdf_open_tiff pdf_pcos_get_number pdf_pcos_get_stream pdf_pcos_get_string pdf_place_image pdf_place_pdi_page pdf_process_pdi pdf_rect pdf_restore pdf_resume_page pdf_rotate pdf_save pdf_scale pdf_set_border_color pdf_set_border_dash pdf_set_border_style pdf_set_char_spacing pdf_setcolor pdf_setdash pdf_setdashpattern pdf_set_duration pdf_setflat pdf_setfont pdf_setgray pdf_setgray_fill pdf_setgray_stroke pdf_set_gstate pdf_set_horiz_scaling pdf_set_info pdf_set_info_author pdf_set_info_creator pdf_set_info_keywords pdf_set_info_subject pdf_set_info_title pdf_set_layer_dependency pdf_set_leading pdf_setlinecap pdf_setlinejoin pdf_setlinewidth pdf_setmatrix pdf_setmiterlimit pdf_set_parameter pdf_setpolydash pdf_setrgbcolor pdf_setrgbcolor_fill pdf_setrgbcolor_stroke pdf_set_text_matrix pdf_set_text_pos pdf_set_text_rendering pdf_set_text_rise pdf_set_value pdf_set_word_spacing pdf_shading pdf_shading_pattern pdf_shfill pdf_show pdf_show_boxed pdf_show_xy pdf_skew pdf_stringwidth pdf_stroke pdf_suspend_page pdf_translate pdf_utf16_to_utf8 pdf_utf32_to_utf16 pdf_utf8_to_utf16 pdo pdo_cubrid_schema pdoexception pdo_pgsqllobcreate pdo_pgsqllobopen pdo_pgsqllobunlink pdo_sqlitecreateaggregate pdo_sqlitecreatefunction pdostatement pfsockopen pg_affected_rows pg_cancel_query pg_client_encoding pg_close pg_connect pg_connection_busy pg_connection_reset pg_connection_status pg_convert pg_copy_from pg_copy_to pg_dbname pg_delete pg_end_copy pg_escape_bytea pg_escape_string pg_execute pg_fetch_all pg_fetch_all_columns pg_fetch_array pg_fetch_assoc pg_fetch_object pg_fetch_result pg_fetch_row pg_field_is_null pg_field_name pg_field_num pg_field_prtlen pg_field_size pg_field_table pg_field_type pg_field_type_oid pg_free_result pg_get_notify pg_get_pid pg_get_result pg_host pg_insert pg_last_error pg_last_notice pg_last_oid pg_lo_close pg_lo_create pg_lo_export pg_lo_import pg_lo_open pg_lo_read pg_lo_read_all pg_lo_seek pg_lo_tell pg_lo_unlink pg_lo_write pg_meta_data pg_num_fields pg_num_rows pg_options pg_parameter_status pg_pconnect pg_ping pg_port pg_prepare pg_put_line pg_query pg_query_params pg_result_error pg_result_error_field pg_result_seek pg_result_status pg_select pg_send_execute pg_send_prepare pg_send_query pg_send_query_params pg_set_client_encoding pg_set_error_verbosity pg_trace pg_transaction_status pg_tty pg_unescape_bytea pg_untrace pg_update pg_version Phar PharData PharException PharFileInfo php_check_syntax phpcredits phpinfo php_ini_loaded_file php_ini_scanned_files php_logo_guid php_sapi_name php_strip_whitespace php_uname phpversion pi png2wbmp popen pos posix_access posix_ctermid posix_errno posix_getcwd posix_getegid posix_geteuid posix_getgid posix_getgrgid posix_getgrnam posix_getgroups posix_get_last_error posix_getlogin posix_getpgid posix_getpgrp posix_getpid posix_getppid posix_getpwnam posix_getpwuid posix_getrlimit posix_getsid posix_getuid posix_initgroups posix_isatty posix_kill posix_mkfifo posix_mknod posix_setegid posix_seteuid posix_setgid posix_setpgid posix_setsid posix_setuid posix_strerror posix_times posix_ttyname posix_uname pow preg_filter preg_grep preg_last_error preg_match preg_match_all preg_quote preg_replace preg_replace_callback preg_split prev print printer_abort printer_close printer_create_brush printer_create_dc printer_create_font printer_create_pen printer_delete_brush printer_delete_dc printer_delete_font printer_delete_pen printer_draw_bmp printer_draw_chord printer_draw_elipse printer_draw_line printer_draw_pie printer_draw_rectangle printer_draw_roundrect printer_draw_text printer_end_doc printer_end_page printer_get_option printer_list printer_logical_fontheight printer_open printer_select_brush printer_select_font printer_select_pen printer_set_option printer_start_doc printer_start_page printer_write printf print_r private proc_close proc_get_status proc_nice proc_open proc_terminate property_exists protected ps_add_bookmark ps_add_launchlink ps_add_locallink ps_add_note ps_add_pdflink ps_add_weblink ps_arc ps_arcn ps_begin_page ps_begin_pattern ps_begin_template ps_circle ps_clip ps_close ps_close_image ps_closepath ps_closepath_stroke ps_continue_text ps_curveto ps_delete ps_end_page ps_end_pattern ps_end_template ps_fill ps_fill_stroke ps_findfont ps_get_buffer ps_get_parameter ps_get_value ps_hyphenate ps_include_file ps_lineto ps_makespotcolor ps_moveto ps_new ps_open_file ps_open_image ps_open_image_file ps_open_memory_image pspell_add_to_personal pspell_add_to_session pspell_check pspell_clear_session pspell_config_create pspell_config_data_dir pspell_config_dict_dir pspell_config_ignore pspell_config_mode pspell_config_personal pspell_config_repl pspell_config_runtogether pspell_config_save_repl pspell_new pspell_new_config pspell_new_personal pspell_save_wordlist pspell_store_replacement pspell_suggest ps_place_image ps_rect ps_restore ps_rotate ps_save ps_scale ps_set_border_color ps_set_border_dash ps_set_border_style ps_setcolor ps_setdash ps_setflat ps_setfont ps_setgray ps_set_info ps_setlinecap ps_setlinejoin ps_setlinewidth ps_setmiterlimit ps_setoverprintmode ps_set_parameter ps_setpolydash ps_set_text_pos ps_set_value ps_shading ps_shading_pattern ps_shfill ps_show ps_show2 ps_show_boxed ps_show_xy ps_show_xy2 ps_string_geometry ps_stringwidth ps_stroke ps_symbol ps_symbol_name ps_symbol_width ps_translate public putenv px_close px_create_fp px_date2string px_delete px_delete_record px_get_field px_get_info px_get_parameter px_get_record px_get_schema px_get_value px_insert_record px_new px_numfields px_numrecords px_open_fp px_put_record px_retrieve_record px_set_blob_file px_set_parameter px_set_tablename px_set_targetencoding px_set_value px_timestamp2string px_update_record qdom_error qdom_tree quickhashinthash quickhashintset quickhashintstringhash quickhashstringinthash quoted_printable_decode quoted_printable_encode quotemeta rad2deg radius_acct_open radius_add_server radius_auth_open radius_close radius_config radius_create_request radius_cvt_addr radius_cvt_int radius_cvt_string radius_demangle radius_demangle_mppe_key radius_get_attr radius_get_vendor_attr radius_put_addr radius_put_attr radius_put_int radius_put_string radius_put_vendor_addr radius_put_vendor_attr radius_put_vendor_int radius_put_vendor_string radius_request_authenticator radius_send_request radius_server_secret radius_strerror rand range rangeexception rararchive rarentry rarexception rar_wrapper_cache_stats rawurldecode rawurlencode readdir read_exif_data readfile readgzfile readline readline_add_history readline_callback_handler_install readline_callback_handler_remove readline_callback_read_char readline_clear_history readline_completion_function readline_info readline_list_history readline_on_new_line readline_read_history readline_redisplay readline_write_history readlink realpath realpath_cache_get realpath_cache_size recode recode_file recode_string recursivearrayiterator recursivecachingiterator recursivecallbackfilteriterator recursivedirectoryiterator recursivefilteriterator recursiveiterator recursiveiteratoriterator recursiveregexiterator recursivetreeiterator reflection reflectionclass reflectionexception reflectionextension reflectionfunction reflectionfunctionabstract reflectionmethod reflectionobject reflectionparameter reflectionproperty reflector regexiterator register_shutdown_function register_tick_function rename rename_function require require_once reset resetValue resourcebundle restore_error_handler restore_exception_handler restore_include_path return rewind rewinddir rmdir round rpm_close rpm_get_tag rpm_is_valid rpm_open rpm_version rrd_create rrdcreator rrd_error rrd_fetch rrd_first rrdgraph rrd_graph rrd_info rrd_last rrd_lastupdate rrd_restore rrd_tune rrd_update rrdupdater rrd_version rrd_xport rsort rtrim runkit_class_adopt runkit_class_emancipate runkit_constant_add runkit_constant_redefine runkit_constant_remove runkit_function_add runkit_function_copy runkit_function_redefine runkit_function_remove runkit_function_rename runkit_import runkit_lint runkit_lint_file runkit_method_add runkit_method_copy runkit_method_redefine runkit_method_remove runkit_method_rename runkit_return_value_used runkit_sandbox_output_handler runkit_superglobals runtimeexception samconnection_commit samconnection_connect samconnection_constructor samconnection_disconnect samconnection_errno samconnection_error samconnection_isconnected samconnection_peek samconnection_peekall samconnection_receive samconnection_remove samconnection_rollback samconnection_send samconnection_setDebug samconnection_subscribe samconnection_unsubscribe sammessage_body sammessage_constructor sammessage_header sca_createdataobject sca_getservice sca_localproxy_createdataobject scandir sca_soapproxy_createdataobject sdo_das_changesummary_beginlogging sdo_das_changesummary_endlogging sdo_das_changesummary_getchangeddataobjects sdo_das_changesummary_getchangetype sdo_das_changesummary_getoldcontainer sdo_das_changesummary_getoldvalues sdo_das_changesummary_islogging sdo_das_datafactory_addpropertytotype sdo_das_datafactory_addtype sdo_das_datafactory_getdatafactory sdo_das_dataobject_getchangesummary sdo_das_relational_applychanges sdo_das_relational_construct sdo_das_relational_createrootdataobject sdo_das_relational_executepreparedquery sdo_das_relational_executequery sdo_das_setting_getlistindex sdo_das_setting_getpropertyindex sdo_das_setting_getpropertyname sdo_das_setting_getvalue sdo_das_setting_isset sdo_das_xml_addtypes sdo_das_xml_create sdo_das_xml_createdataobject sdo_das_xml_createdocument sdo_das_xml_document_getrootdataobject sdo_das_xml_document_getrootelementname sdo_das_xml_document_getrootelementuri sdo_das_xml_document_setencoding sdo_das_xml_document_setxmldeclaration sdo_das_xml_document_setxmlversion sdo_das_xml_loadfile sdo_das_xml_loadstring sdo_das_xml_savefile sdo_das_xml_savestring sdo_datafactory_create sdo_dataobject_clear sdo_dataobject_createdataobject sdo_dataobject_getcontainer sdo_dataobject_getsequence sdo_dataobject_gettypename sdo_dataobject_gettypenamespaceuri sdo_exception_getcause sdo_list_insert sdo_model_property_getcontainingtype sdo_model_property_getdefault sdo_model_property_getname sdo_model_property_gettype sdo_model_property_iscontainment sdo_model_property_ismany sdo_model_reflectiondataobject_construct sdo_model_reflectiondataobject_export sdo_model_reflectiondataobject_getcontainmentproperty sdo_model_reflectiondataobject_getinstanceproperties sdo_model_reflectiondataobject_gettype sdo_model_type_getbasetype sdo_model_type_getname sdo_model_type_getnamespaceuri sdo_model_type_getproperties sdo_model_type_getproperty sdo_model_type_isabstracttype sdo_model_type_isdatatype sdo_model_type_isinstance sdo_model_type_isopentype sdo_model_type_issequencedtype sdo_sequence_getproperty sdo_sequence_insert sdo_sequence_move seekableiterator sem_acquire sem_get sem_release sem_remove serializable serialize session_cache_expire session_cache_limiter session_commit session_decode session_destroy session_encode session_get_cookie_params session_id session_is_registered session_module_name session_name session_pgsql_add_error session_pgsql_get_error session_pgsql_get_field session_pgsql_reset session_pgsql_set_field session_pgsql_status session_regenerate_id session_register session_save_path session_set_cookie_params session_set_save_handler session_start session_unregister session_unset session_write_close __set() setcookie setCounterClass set_error_handler set_exception_handler set_file_buffer set_include_path setlocale set_magic_quotes_runtime setproctitle setrawcookie set_socket_blocking __set_state() setstaticpropertyvalue setthreadtitle set_time_limit settype sha1 sha1_file shell_exec shm_attach shm_detach shm_get_var shm_has_var shmop_close shmop_delete shmop_open shmop_read shmop_size shmop_write shm_put_var shm_remove shm_remove_var show_source shuffle signeurlpaiement similar_text simplexmlelement simplexml_import_dom simplexmliterator simplexml_load_file simplexml_load_string sin sinh sizeof sleep __sleep() snmp snmp2_get snmp2_getnext snmp2_real_walk snmp2_set snmp2_walk snmp3_get snmp3_getnext snmp3_real_walk snmp3_set snmp3_walk snmpexception snmpget snmpgetnext snmp_get_quick_print snmp_get_valueretrieval snmp_read_mib snmprealwalk snmpset snmp_set_enum_print snmp_set_oid_numeric_print snmp_set_oid_output_format snmp_set_quick_print snmp_set_valueretrieval snmpwalk snmpwalkoid soapclient soapfault soapheader soapparam soapserver soapvar socket_accept socket_bind socket_clear_error socket_close socket_connect socket_create socket_create_listen socket_create_pair socket_get_option socket_getpeername socket_getsockname socket_get_status socket_last_error socket_listen socket_read socket_recv socket_recvfrom socket_select socket_send socket_sendto socket_set_block socket_set_blocking socket_set_nonblock socket_set_option socket_set_timeout socket_shutdown socket_strerror socket_write solrclient solrclientexception solrdocument solrdocumentfield solrexception solrgenericresponse solr_get_version solrillegalargumentexception solrillegaloperationexception solrinputdocument solrmodifiableparams solrobject solrparams solrpingresponse solrquery solrqueryresponse solrresponse solrupdateresponse solrutils sort soundex sphinxclient spl_autoload spl_autoload_call spl_autoload_extensions spl_autoload_functions spl_autoload_register spl_autoload_unregister splbool spl_classes spldoublylinkedlist splenum splfileinfo splfileobject splfixedarray splfloat splheap splint split spliti splmaxheap splminheap spl_object_hash splobjectstorage splobserver splpriorityqueue splqueue splstack splstring splsubject spltempfileobject spltype spoofchecker sprintf sqlite3 sqlite3result sqlite3stmt sqlite_array_query sqlite_busy_timeout sqlite_changes sqlite_close sqlite_column sqlite_create_aggregate sqlite_create_function sqlite_current sqlite_error_string sqlite_escape_string sqlite_exec sqlite_factory sqlite_fetch_all sqlite_fetch_array sqlite_fetch_column_types sqlite_fetch_object sqlite_fetch_single sqlite_fetch_string sqlite_field_name sqlite_has_more sqlite_has_prev sqlite_key sqlite_last_error sqlite_last_insert_rowid sqlite_libencoding sqlite_libversion sqlite_next sqlite_num_fields sqlite_num_rows sqlite_open sqlite_popen sqlite_prev sqlite_query sqlite_rewind sqlite_seek sqlite_single_query sqlite_udf_decode_binary sqlite_udf_encode_binary sqlite_unbuffered_query sqlite_valid sql_regcase sqlsrv_begin_transaction sqlsrv_cancel sqlsrv_client_info sqlsrv_close sqlsrv_commit sqlsrv_configure sqlsrv_connect sqlsrv_errors sqlsrv_execute sqlsrv_fetch sqlsrv_fetch_array sqlsrv_fetch_object sqlsrv_field_metadata sqlsrv_free_stmt sqlsrv_get_config sqlsrv_get_field sqlsrv_has_rows sqlsrv_next_result sqlsrv_num_fields sqlsrv_num_rows sqlsrv_prepare sqlsrv_query sqlsrv_rollback sqlsrv_rows_affected sqlsrv_send_stream_data sqlsrv_server_info sqrt srand sscanf ssdeep_fuzzy_compare ssdeep_fuzzy_hash ssdeep_fuzzy_hash_filename ssh2_auth_hostbased_file ssh2_auth_none ssh2_auth_password ssh2_auth_pubkey_file ssh2_connect ssh2_exec ssh2_fetch_stream ssh2_fingerprint ssh2_methods_negotiated ssh2_publickey_add ssh2_publickey_init ssh2_publickey_list ssh2_publickey_remove ssh2_scp_recv ssh2_scp_send ssh2_sftp ssh2_sftp_lstat ssh2_sftp_mkdir ssh2_sftp_readlink ssh2_sftp_realpath ssh2_sftp_rename ssh2_sftp_rmdir ssh2_sftp_stat ssh2_sftp_symlink ssh2_sftp_unlink ssh2_shell ssh2_tunnel stat static stats_absolute_deviation stats_cdf_beta stats_cdf_binomial stats_cdf_cauchy stats_cdf_chisquare stats_cdf_exponential stats_cdf_f stats_cdf_gamma stats_cdf_laplace stats_cdf_logistic stats_cdf_negative_binomial stats_cdf_noncentral_chisquare stats_cdf_noncentral_f stats_cdf_poisson stats_cdf_t stats_cdf_uniform stats_cdf_weibull stats_covariance stats_dens_beta stats_dens_cauchy stats_dens_chisquare stats_dens_exponential stats_dens_f stats_dens_gamma stats_dens_laplace stats_dens_logistic stats_dens_negative_binomial stats_dens_normal stats_dens_pmf_binomial stats_dens_pmf_hypergeometric stats_dens_pmf_poisson stats_dens_t stats_dens_weibull stats_den_uniform stats_harmonic_mean stats_kurtosis stats_rand_gen_beta stats_rand_gen_chisquare stats_rand_gen_exponential stats_rand_gen_f stats_rand_gen_funiform stats_rand_gen_gamma stats_rand_gen_ibinomial stats_rand_gen_ibinomial_negative stats_rand_gen_int stats_rand_gen_ipoisson stats_rand_gen_iuniform stats_rand_gen_noncenral_chisquare stats_rand_gen_noncentral_f stats_rand_gen_noncentral_t stats_rand_gen_normal stats_rand_gen_t stats_rand_get_seeds stats_rand_phrase_to_seeds stats_rand_ranf stats_rand_setall stats_skew stats_standard_deviation stats_stat_binomial_coef stats_stat_correlation stats_stat_gennch stats_stat_independent_t stats_stat_innerproduct stats_stat_noncentral_t stats_stat_paired_t stats_stat_percentile stats_stat_powersum stats_variance stomp stomp_connect_error stompexception stompframe stomp_version strcasecmp strchr strcmp strcoll strcspn stream_bucket_append stream_bucket_make_writeable stream_bucket_new stream_bucket_prepend stream_context_create stream_context_get_default stream_context_get_options stream_context_get_params stream_context_set_default stream_context_set_option stream_context_set_params stream_copy_to_stream stream_encoding stream_filter_append stream_filter_prepend stream_filter_register stream_filter_remove stream_get_contents stream_get_filters stream_get_line stream_get_meta_data stream_get_transports stream_get_wrappers stream_is_local stream_notification_callback stream_register_wrapper stream_resolve_include_path stream_select stream_set_blocking stream_set_read_buffer stream_set_timeout stream_set_write_buffer stream_socket_accept stream_socket_client stream_socket_enable_crypto stream_socket_get_name stream_socket_pair stream_socket_recvfrom stream_socket_sendto stream_socket_server stream_socket_shutdown stream_supports_lock streamwrapper stream_wrapper_register stream_wrapper_restore stream_wrapper_unregister strftime str_getcsv stripcslashes stripos stripslashes strip_tags str_ireplace stristr strlen strnatcasecmp strnatcmp strncasecmp strncmp str_pad strpbrk strpos strptime strrchr str_repeat str_replace strrev strripos str_rot13 strrpos str_shuffle str_split strspn strstr strtok strtolower strtotime strtoupper strtr strval str_word_count substr substr_compare substr_count substr_replace svm svmmodel svn_add svn_auth_get_parameter svn_auth_set_parameter svn_blame svn_cat svn_checkout svn_cleanup svn_client_version svn_commit svn_delete svn_diff svn_export svn_fs_abort_txn svn_fs_apply_text svn_fs_begin_txn2 svn_fs_change_node_prop svn_fs_check_path svn_fs_contents_changed svn_fs_copy svn_fs_delete svn_fs_dir_entries svn_fs_file_contents svn_fs_file_length svn_fs_is_dir svn_fs_is_file svn_fs_make_dir svn_fs_make_file svn_fs_node_created_rev svn_fs_node_prop svn_fs_props_changed svn_fs_revision_prop svn_fs_revision_root svn_fs_txn_root svn_fs_youngest_rev svn_import svn_log svn_ls svn_mkdir svn_repos_create svn_repos_fs svn_repos_fs_begin_txn_for_commit svn_repos_fs_commit_txn svn_repos_hotcopy svn_repos_open svn_repos_recover svn_revert svn_status svn_update swfaction swfaction.construct swf_actiongeturl swf_actiongotoframe swf_actiongotolabel swf_actionnextframe swf_actionplay swf_actionprevframe swf_actionsettarget swf_actionstop swf_actiontogglequality swf_actionwaitforframe swf_addbuttonrecord swf_addcolor swfbitmap swfbitmap.construct swfbitmap.getheight swfbitmap.getwidth swfbutton swfbutton.addaction swfbutton.addasound swfbutton.addshape swfbutton.construct swfbutton.setaction swfbutton.setdown swfbutton.sethit swfbutton.setmenu swfbutton.setover swfbutton.setup swf_closefile swf_definebitmap swf_definefont swf_defineline swf_definepoly swf_definerect swf_definetext swfdisplayitem swfdisplayitem.addaction swfdisplayitem.addcolor swfdisplayitem.endmask swfdisplayitem.getrot swfdisplayitem.getx swfdisplayitem.getxscale swfdisplayitem.getxskew swfdisplayitem.gety swfdisplayitem.getyscale swfdisplayitem.getyskew swfdisplayitem.move swfdisplayitem.moveto swfdisplayitem.multcolor swfdisplayitem.remove swfdisplayitem.rotate swfdisplayitem.rotateto swfdisplayitem.scale swfdisplayitem.scaleto swfdisplayitem.setdepth swfdisplayitem.setmasklevel swfdisplayitem.setmatrix swfdisplayitem.setname swfdisplayitem.setratio swfdisplayitem.skewx swfdisplayitem.skewxto swfdisplayitem.skewy swfdisplayitem.skewyto swf_endbutton swf_enddoaction swf_endshape swf_endsymbol swffill swffill.moveto swffill.rotateto swffill.scaleto swffill.skewxto swffill.skewyto swffont swffontchar swffontchar.addchars swffontchar.addutf8chars swffont.construct swffont.getascent swffont.getdescent swffont.getleading swffont.getshape swffont.getutf8width swffont.getwidth swf_fontsize swf_fontslant swf_fonttracking swf_getbitmapinfo swf_getfontinfo swf_getframe swfgradient swfgradient.addentry swfgradient.construct swf_labelframe swf_lookat swf_modifyobject swfmorph swfmorph.construct swfmorph.getshape1 swfmorph.getshape2 swfmovie swfmovie.add swfmovie.addexport swfmovie.addfont swfmovie.construct swfmovie.importchar swfmovie.importfont swfmovie.labelframe swfmovie.nextframe swfmovie.output swfmovie.remove swfmovie.save swfmovie.savetofile swfmovie.setbackground swfmovie.setdimension swfmovie.setframes swfmovie.setrate swfmovie.startsound swfmovie.stopsound swfmovie.streammp3 swfmovie.writeexports swf_mulcolor swf_nextid swf_oncondition swf_openfile swf_ortho swf_ortho2 swf_perspective swf_placeobject swf_polarview swf_popmatrix swf_posround swfprebuiltclip swfprebuiltclip.construct swf_pushmatrix swf_removeobject swf_rotate swf_scale swf_setfont swf_setframe swfshape swfshape.addfill swf_shapearc swfshape.construct swf_shapecurveto swf_shapecurveto3 swfshape.drawarc swfshape.drawcircle swfshape.drawcubic swfshape.drawcubicto swfshape.drawcurve swfshape.drawcurveto swfshape.drawglyph swfshape.drawline swfshape.drawlineto swf_shapefillbitmapclip swf_shapefillbitmaptile swf_shapefilloff swf_shapefillsolid swf_shapelinesolid swf_shapelineto swfshape.movepen swfshape.movepento swf_shapemoveto swfshape.setleftfill swfshape.setline swfshape.setrightfill swf_showframe swfsound swfsound.construct swfsoundinstance swfsoundinstance.loopcount swfsoundinstance.loopinpoint swfsoundinstance.loopoutpoint swfsoundinstance.nomultiple swfsprite swfsprite.add swfsprite.construct swfsprite.labelframe swfsprite.nextframe swfsprite.remove swfsprite.setframes swfsprite.startsound swfsprite.stopsound swf_startbutton swf_startdoaction swf_startshape swf_startsymbol swftext swftext.addstring swftext.addutf8string swftext.construct swftextfield swftextfield.addchars swftextfield.addstring swftextfield.align swftextfield.construct swftextfield.setbounds swftextfield.setcolor swftextfield.setfont swftextfield.setheight swftextfield.setindentation swftextfield.setleftmargin swftextfield.setlinespacing swftextfield.setmargins swftextfield.setname swftextfield.setpadding swftextfield.setrightmargin swftext.getascent swftext.getdescent swftext.getleading swftext.getutf8width swftext.getwidth swftext.moveto swftext.setcolor swftext.setfont swftext.setheight swftext.setspacing swf_textwidth swf_translate swfvideostream swfvideostream.construct swfvideostream.getnumframes swfvideostream.setdimension swf_viewport swish_construct swish_getmetalist swish_getpropertylist swish_prepare swish_query swishresult_getmetalist swishresults_getparsedwords swishresults_getremovedstopwords swishresults_nextresult swishresults_seekresult swishresult_stem swishsearch_execute swishsearch_resetlimit swishsearch_setlimit swishsearch_setphrasedelimiter swishsearch_setsort swishsearch_setstructure switch sybase_affected_rows sybase_close sybase_connect sybase_data_seek sybase_deadlock_retry_count sybase_fetch_array sybase_fetch_assoc sybase_fetch_field sybase_fetch_object sybase_fetch_row sybase_field_seek sybase_free_result sybase_get_last_message sybase_min_client_severity sybase_min_error_severity sybase_min_message_severity sybase_min_server_severity sybase_num_fields sybase_num_rows sybase_pconnect sybase_query sybase_result sybase_select_db sybase_set_message_handler sybase_unbuffered_query symlink sys_getloadavg sys_get_temp_dir syslog system tan tanh tcpwrap_check tempnam textdomain throw tidy tidy_access_count tidy_config_count tidy_diagnose tidy_error_count tidy_get_error_buffer tidy_get_output tidy_load_config tidynode tidy_reset_config tidy_save_config tidy_set_encoding tidy_setopt tidy_warning_count time time_nanosleep time_sleep_until timezone_abbreviations_list timezone_identifiers_list timezone_location_get timezone_name_from_abbr timezone_name_get timezone_offset_get timezone_open timezone_transitions_get timezone_version_get tmpfile token_get_all token_name tokyotyrant tokyotyrantquery tokyotyranttable tostring __toString() touch transliterator traversable trigger_error trim try uasort ucfirst ucwords udm_add_search_limit udm_alloc_agent udm_alloc_agent_array udm_api_version udm_cat_list udm_cat_path udm_check_charset udm_check_stored udm_clear_search_limits udm_close_stored udm_crc32 udm_errno udm_error udm_find udm_free_agent udm_free_ispell_data udm_free_res udm_get_doc_count udm_get_res_field udm_get_res_param udm_hash32 udm_load_ispell_data udm_open_stored udm_set_agent_param uksort umask underflowexception unexpectedvalueexception uniqid unixtojd unlink unpack unregister_tick_function unserialize unset __unset() urldecode urlencode use user_error use_soap_error_handler usleep usort utf8_decode utf8_encode v8js v8jsexception var var_dump var_export variant variant_abs variant_add variant_and variant_cast variant_cat variant_cmp variant_date_from_timestamp variant_date_to_timestamp variant_div variant_eqv variant_fix variant_get_type variant_idiv variant_imp variant_int variant_mod variant_mul variant_neg variant_not variant_or variant_pow variant_round variant_set variant_set_type variant_sub variant_xor version_compare vfprintf virtual vpopmail_add_alias_domain vpopmail_add_alias_domain_ex vpopmail_add_domain vpopmail_add_domain_ex vpopmail_add_user vpopmail_alias_add vpopmail_alias_del vpopmail_alias_del_domain vpopmail_alias_get vpopmail_alias_get_all vpopmail_auth_user vpopmail_del_domain vpopmail_del_domain_ex vpopmail_del_user vpopmail_error vpopmail_passwd vpopmail_set_user_quota vprintf vsprintf w32api_deftype w32api_init_dtype w32api_invoke_function w32api_register_function w32api_set_call_method __wakeup() wddx_add_vars wddx_deserialize wddx_packet_end wddx_packet_start wddx_serialize_value wddx_serialize_vars weakref while win32_continue_service win32_create_service win32_delete_service win32_get_last_control_message win32_pause_service win32_ps_list_procs win32_ps_stat_mem win32_ps_stat_proc win32_query_service_status win32_set_service_status win32_start_service win32_start_service_ctrl_dispatcher win32_stop_service wincache_fcache_fileinfo wincache_fcache_meminfo wincache_lock wincache_ocache_fileinfo wincache_ocache_meminfo wincache_refresh_if_changed wincache_rplist_fileinfo wincache_rplist_meminfo wincache_scache_info wincache_scache_meminfo wincache_ucache_add wincache_ucache_cas wincache_ucache_clear wincache_ucache_dec wincache_ucache_delete wincache_ucache_exists wincache_ucache_get wincache_ucache_inc wincache_ucache_info wincache_ucache_meminfo wincache_ucache_set wincache_unlock wordwrap xattr_get xattr_list xattr_remove xattr_set xattr_supported xdiff_file_bdiff xdiff_file_bdiff_size xdiff_file_bpatch xdiff_file_diff xdiff_file_diff_binary xdiff_file_merge3 xdiff_file_patch xdiff_file_patch_binary xdiff_file_rabdiff xdiff_string_bdiff xdiff_string_bdiff_size xdiff_string_bpatch xdiff_string_diff xdiff_string_diff_binary xdiff_string_merge3 xdiff_string_patch xdiff_string_patch_binary xdiff_string_rabdiff xhprof_disable xhprof_enable xhprof_sample_disable xhprof_sample_enable xml_error_string xml_get_current_byte_index xml_get_current_column_number xml_get_current_line_number xml_get_error_code xml_parse xml_parse_into_struct xml_parser_create xml_parser_create_ns xml_parser_free xml_parser_get_option xml_parser_set_option xmlreader xmlrpc_decode xmlrpc_decode_request xmlrpc_encode xmlrpc_encode_request xmlrpc_get_type xmlrpc_is_fault xmlrpc_parse_method_descriptions xmlrpc_server_add_introspection_data xmlrpc_server_call_method xmlrpc_server_create xmlrpc_server_destroy xmlrpc_server_register_introspection_callback xmlrpc_server_register_method xmlrpc_set_type xml_set_character_data_handler xml_set_default_handler xml_set_element_handler xml_set_end_namespace_decl_handler xml_set_external_entity_ref_handler xml_set_notation_decl_handler xml_set_object xml_set_processing_instruction_handler xml_set_start_namespace_decl_handler xml_set_unparsed_entity_decl_handler xmlwriter_end_attribute xmlwriter_end_cdata xmlwriter_end_comment xmlwriter_end_document xmlwriter_end_dtd xmlwriter_end_dtd_attlist xmlwriter_end_dtd_element xmlwriter_end_dtd_entity xmlwriter_end_element xmlwriter_end_pi xmlwriter_flush xmlwriter_full_end_element xmlwriter_open_memory xmlwriter_open_uri xmlwriter_output_memory xmlwriter_set_indent xmlwriter_set_indent_string xmlwriter_start_attribute xmlwriter_start_attribute_ns xmlwriter_start_cdata xmlwriter_start_comment xmlwriter_start_document xmlwriter_start_dtd xmlwriter_start_dtd_attlist xmlwriter_start_dtd_element xmlwriter_start_dtd_entity xmlwriter_start_element xmlwriter_start_element_ns xmlwriter_start_pi xmlwriter_text xmlwriter_write_attribute xmlwriter_write_attribute_ns xmlwriter_write_cdata xmlwriter_write_comment xmlwriter_write_dtd xmlwriter_write_dtd_attlist xmlwriter_write_dtd_element xmlwriter_write_dtd_entity xmlwriter_write_element xmlwriter_write_element_ns xmlwriter_write_pi xmlwriter_write_raw xor xpath_eval xpath_eval_expression xpath_new_context xpath_register_ns xpath_register_ns_auto xptr_eval xptr_new_context xslt_backend_info xslt_backend_name xslt_backend_version xslt_create xslt_errno xslt_error xslt_free xslt_getopt xslt_process xsltprocessor xslt_set_base xslt_set_encoding xslt_set_error_handler xslt_set_log xslt_set_object xslt_setopt xslt_set_sax_handler xslt_set_sax_handlers xslt_set_scheme_handler xslt_set_scheme_handlers yaml_emit yaml_emit_file yaml_parse yaml_parse_file yaml_parse_url yaz_addinfo yaz_ccl_conf yaz_ccl_parse yaz_close yaz_connect yaz_database yaz_element yaz_errno yaz_error yaz_es yaz_es_result yaz_get_option yaz_hits yaz_itemorder yaz_present yaz_range yaz_record yaz_scan yaz_scan_result yaz_schema yaz_search yaz_set_option yaz_sort yaz_syntax yaz_wait yp_all yp_cat yp_errno yp_err_string yp_first yp_get_default_domain yp_master yp_match yp_next yp_order zend_logo_guid zend_thread_id zend_version ziparchive ziparchive_addemptydir ziparchive_addfile ziparchive_addfromstring ziparchive_close ziparchive_deleteindex ziparchive_deletename ziparchive_extractto ziparchive_getarchivecomment ziparchive_getcommentindex ziparchive_getcommentname ziparchive_getfromindex ziparchive_getfromname ziparchive_getnameindex ziparchive_getstatusstring ziparchive_getstream ziparchive_locatename ziparchive_open ziparchive_renameindex ziparchive_renamename ziparchive_setarchivecomment ziparchive_setcommentindex ziparchive_setCommentName ziparchive_statindex ziparchive_statname ziparchive_unchangeall ziparchive_unchangearchive ziparchive_unchangeindex ziparchive_unchangename zip_close zip_entry_close zip_entry_compressedsize zip_entry_compressionmethod zip_entry_filesize zip_entry_name zip_entry_open zip_entry_read zip_open zip_read zlib_get_coding_type amqpchannel amqpenvelope autoload bumpvalue class_uses closure cubrid_get_query_timeout cubrid_pconnect cubrid_pconnect_with_url cubrid_set_query_timeout directory domcdatasection eio_busy eio_cancel eio_chmod eio_chown eio_close eio_custom eio_dup2 eio_event_loop eio_fallocate eio_fchmod eio_fchown eio_fdatasync eio_fstat eio_fstatvfs eio_fsync eio_ftruncate eio_futime eio_get_event_stream eio_grp eio_grp_add eio_grp_cancel eio_grp_limit eio_link eio_lstat eio_mkdir eio_mknod eio_nop eio_npending eio_nready eio_nreqs eio_nthreads eio_open eio_poll eio_read eio_readahead eio_readdir eio_readlink eio_realpath eio_rename eio_rmdir eio_sendfile eio_set_max_idle eio_set_max_parallel eio_set_max_poll_reqs eio_set_max_poll_time eio_set_min_parallel eio_stat eio_statvfs eio_symlink eio_sync eio_sync_file_range eio_syncfs eio_truncate eio_unlink eio_utime eio_write get_declared_traits getimagesizefromstring getmeta getnamed getvalue hwapi_attribute_new hwapi_content_new is_tainted lapack lapackexception ldap_control_paged_result ldap_control_paged_result_response libxml_set_external_entity_loader mysqli_get_cache_stats mysqli_sql_exception mysqlnd_ms_get_last_gtid mysqlnd_ms_get_last_used_connection mysqlnd_ms_match_wild mysqlnd_ms_set_qos mysqlnd_qc_get_available_handlers mysqlnd_qc_get_normalized_query_trace_log mysqlnd_qc_set_cache_condition mysqlnd_qc_set_is_select mysqlnd_qc_set_storage_handler mysqlnd_uh_convert_to_mysqlnd mysqlnd_uh_set_connection_proxy mysqlnd_uh_set_statement_proxy mysqlnduhconnection mysqlnduhpreparedstatement pg_escape_identifier pg_escape_literal phar phardata pharexception pharfileinfo php_user_filter reflectionzendextension resetvalue session_register_shutdown session_status sessionhandler sessionhandlerinterface setcounterclass socket_import_stream stream_set_chunk_size taint tokyotyrantexception tokyotyrantiterator trait_exists untaint varnishadmin varnishlog varnishstat yaf_action_abstract yaf_application yaf_bootstrap_abstract yaf_config_abstract yaf_config_ini yaf_config_simple yaf_controller_abstract yaf_dispatcher yaf_exception yaf_exception_dispatchfailed yaf_exception_loadfailed yaf_exception_loadfailed_action yaf_exception_loadfailed_controller yaf_exception_loadfailed_module yaf_exception_loadfailed_view yaf_exception_routerfailed yaf_exception_startuperror yaf_exception_typeerror yaf_loader yaf_plugin_abstract yaf_registry yaf_request_abstract yaf_request_http yaf_request_simple yaf_response_abstract yaf_route_interface yaf_route_map yaf_route_regex yaf_route_rewrite yaf_route_simple yaf_route_static yaf_route_supervar yaf_router yaf_session yaf_view_interface yaf_view_simple zlib_decode zlib_encode trait insteadof auto-complete-1.5.1/dict/python-mode000066400000000000000000000057171267667017000174330ustar00rootroot00000000000000ArithmeticError AssertionError AttributeError BaseException BufferError BytesWarning DeprecationWarning EOFError Ellipsis EnvironmentError Exception False FloatingPointError FutureWarning GeneratorExit IOError ImportError ImportWarning IndentationError IndexError KeyError KeyboardInterrupt LookupError MemoryError NameError None NotImplemented NotImplementedError OSError OverflowError PendingDeprecationWarning ReferenceError RuntimeError RuntimeWarning StandardError StopIteration SyntaxError SyntaxWarning SystemError SystemExit TabError True TypeError UnboundLocalError UnicodeDecodeError UnicodeEncodeError UnicodeError UnicodeTranslateError UnicodeWarning UserWarning ValueError Warning ZeroDivisionError __builtins__ __debug__ __doc__ __file__ __future__ __import__ __init__ __main__ __name__ __package__ _dummy_thread _thread abc abs aifc all and any apply argparse array as assert ast asynchat asyncio asyncore atexit audioop base64 basestring bdb bin binascii binhex bisect bool break buffer builtins bytearray bytes bz2 calendar callable cgi cgitb chr chuck class classmethod cmath cmd cmp code codecs codeop coerce collections colorsys compile compileall complex concurrent configparser contextlib continue copy copyreg copyright credits crypt csv ctypes curses datetime dbm decimal def del delattr dict difflib dir dis distutils divmod doctest dummy_threading elif else email enumerate ensurepip enum errno eval except exec execfile exit faulthandler fcntl file filecmp fileinput filter finally float fnmatch for format formatter fpectl fractions from frozenset ftplib functools gc getattr getopt getpass gettext glob global globals grp gzip hasattr hash hashlib heapq help hex hmac html http id if imghdr imp impalib import importlib in input inspect int intern io ipaddress is isinstance issubclass iter itertools json keyword lambda len license linecache list locale locals logging long lzma macpath mailbox mailcap map marshal math max memoryview mimetypes min mmap modulefinder msilib msvcrt multiprocessing netrc next nis nntplib not numbers object oct open operator optparse or ord os ossaudiodev parser pass pathlib pdb pickle pickletools pipes pkgutil platform plistlib poplib posix pow pprint print profile property pty pwd py_compiler pyclbr pydoc queue quit quopri raise random range raw_input re readline reduce reload repr reprlib resource return reversed rlcompleter round runpy sched select selectors self set setattr shelve shlex shutil signal site slice smtpd smtplib sndhdr socket socketserver sorted spwd sqlite3 ssl stat staticmethod statistics str string stringprep struct subprocess sum sunau super symbol symtable sys sysconfig syslog tabnanny tarfile telnetlib tempfile termios test textwrap threading time timeit tkinter token tokenize trace traceback tracemalloc try tty tuple turtle type types unichr unicode unicodedata unittest urllib uu uuid vars venv warnings wave weakref webbrowser while winsound winreg with wsgiref xdrlib xml xmlrpc xrange yield zip zipfile zipimport zlib auto-complete-1.5.1/dict/qml-mode000066400000000000000000000032661267667017000167000ustar00rootroot00000000000000AlignBottom AlignCenter AlignHCenter AlignLeft AlignRight AlignTop AlignVCenter AnchorAnimation AnchorChanges Audio Behavior Binding BorderImage ColorAnimation Column Component Connections Easing Flickable Flipable Flow FocusScope GestureArea Grid GridView Horizontal Image InBack InBounce InCirc InCubic InElastic InExpo InOutBack InOutBounce InOutCirc InOutCubic InOutElastic InOutExpo InOutQuad InOutQuart InOutQuint InQuad InQuart InQuint InQuint InSine Item LayoutItem LeftButton Linear ListElement ListModel ListView Loader MidButton MiddleButton MouseArea NoButton NumberAnimation OutBack OutBounce OutCirc OutCubic OutElastic OutExpo OutInBack OutInBounce OutInCirc OutInCubic OutInElastic OutInExpo OutInQuad OutInQuart OutInQuint OutQuad OutQuart OutQuint OutSine Package ParallelAnimation ParentAnimation ParentChange ParticleMotionGravity ParticleMotionLinear ParticleMotionWander Particles Path PathAttribute PathCubic PathLine PathPercent PathQuad PathView PauseAnimation PropertyAction PropertyAnimation PropertyChanges Qt QtObject Rectangle Repeater RightButton Rotation RotationAnimation Row Scale ScriptAction SequentialAnimation SmoothedAnimation SoundEffect SpringFollow State StateChangeScript StateGroup SystemPalette Text TextEdit TextInput Timer Transition Translate Vertical Video ViewsPositionersMediaEffects VisualDataModel VisualItemModel WebView WorkerScript XmlListModel XmlRole alias as bool break case catch color const continue date debugger default delete do double else enum false false finally for function if import import in instanceof int let new null on parent property real return signal string switch this throw true try typeof undefined url var variant void while with yield auto-complete-1.5.1/dict/ruby-mode000066400000000000000000000021571267667017000170660ustar00rootroot00000000000000$! $" $$ $& $' $* $+ $, $-0 $-F $-I $-K $-a $-d $-i $-l $-p $-v $-w $. $/ $0 $1 $10 $11 $2 $3 $4 $5 $6 $7 $8 $9 $: $; $< $= $> $? $@ $DEBUG $FILENAME $KCODE $LOADED_FEATURES $LOAD_PATH $PROGRAM_NAME $SAFE $VERBOSE $\ $_ $` $deferr $defout $stderr $stdin $stdout $~ ARGF ARGV Array BEGIN DATA END ENV FALSE Float Integer NIL PLATFORM RELEASE_DATE RUBY_COPYRIGHT RUBY_DESCRIPTION RUBY_PATCHLEVEL RUBY_PLATFORM RUBY_RELEASE_DATE RUBY_VERSION SCRIPT_LINES__ STDERR STDIN STDOUT String TOPLEVEL_BINDING TRUE VERSION __method__ ` abort alias and at_exit autoload autoload? begin binding block_given break callcc caller case catch chomp chomp! chop chop class def defined? do else elsif end ensure eval exec exit exit! fail false for fork format getc gets global_variables gsub gsub! if in iterator? lambda load local_variables loop module next nil not open or p printf proc putc puts raise rand readline readlines redo require require_relative rescue retry return scan select self set_trace_func sleep split sprintf srand sub sub! super syscall system test then throw trace_var trap true undef unless until untrace_var warn when while yield auto-complete-1.5.1/dict/scala-mode000066400000000000000000000414571267667017000171760ustar00rootroot00000000000000_ : = => <<: <% >: # @ abstract case catch class def do else extends false final finally for forSome if implicit import lazy match new null object override package private protected requires return sealed super this throw trait true try type val var while with yield scala scala.actors scala.actors.remote scala.annotation.unchecked scala.collection scala.collection.immutable scala.collection.jcl scala.collection.mutable scala.compat scala.concurrent scala.io scala.mobile scala.ref scala.reflect scala.runtime scala.swing scala.swing.event scala.swing.test scala.testing scala.text scala.util scala.util.automata scala.util.grammar scala.util.logging scala.util.matching scala.util.parsing scala.util.parsing.ast scala.util.parsing.combinator scala.util.parsing.combinator.lexical scala.util.parsing.combinator.syntactical scala.util.parsing.combinator.testing scala.util.parsing.combinatorold scala.util.parsing.combinatorold.lexical scala.util.parsing.combinatorold.syntactical scala.util.parsing.combinatorold.testing scala.util.parsing.input scala.util.parsing.json scala.util.parsing.syntax scala.util.regexp scala.xml scala.xml.dtd scala.xml.factory scala.xml.include scala.xml.include.sax scala.xml.parsing scala.xml.path scala.xml.persistent scala.xml.pull scala.xml.transform ! :: AbstractActor AbstractButton AbstractSyntax AbstractSyntax.Element AbstractSyntax.NameElement Action Action.Trigger Action.Trigger.Wrapper ActionEvent Actor AdjustingEvent Annotation Any AnyRef AnyVal Applet Applet.UI Application Apply0 Array Array.Array0 Array.ArrayLike Array.Projection ArrayBuffer ArrayList ArrayStack Atom AttListDecl AttrDecl Attribute BackgroundChanged Base Base.Alt Base.Meta Base.RegExp Base.Sequ Base.Star BaseBerrySethi BasicTransformer BasicTransformer.NeedsCopy BeanDescription BeanDisplayName BeanInfo BeanInfoSkip BeanProperty Benchmark BigDecimal BigInt Binder Binders Binders.BinderEnv Binders.BindingSensitive Binders.BoundElement Binders.ReturnAndDo Binders.Scope Binders.UnboundElement Binders.UnderBinder BindingParsers BitSet Boolean BorderPanel BoxPanel Buffer Buffer.DefaultBufferIterator Buffer.Projection Buffer.Projection0 Buffer.Projection0.MapProjection Buffer.Range Buffer.Range.RangeIterator BufferIterator BufferProxy BufferWrapper BufferWrapper.IteratorWrapper BufferWrapper.Range BufferedIterator BufferedIterator.Advanced BufferedIterator.Default BufferedIterator.PutBack BufferedSource Button ButtonClicked ButtonGroup ByNameFunction Byte BytePickle.Def BytePickle.PU BytePickle.PicklerEnv BytePickle.PicklerState BytePickle.Ref BytePickle.RefDef BytePickle.SPU BytePickle.UnPicklerEnv BytePickle.UnPicklerState CachedFileStorage CaretUpdate Cell Channel Channel.LinkedList Char CharArrayPosition CharArrayReader CharInputStreamIterator CharSequenceReader CheckBox CheckMenuItem CircularIncludeException ClassfileAnnotation ClassfileAttribute CloneableCollection Code Collection Collection.Projection CollectionProxy CollectionWrapper ComboBox ComboBox.BuiltInEditor ComboBox.BuiltInEditor.DelegatedEditor ComboBox.Editor Comment Component Component.SuperMixin ComponentAdded ComponentEvent ComponentHidden ComponentMoved ComponentRemoved ComponentResized ComponentShown ConsRHS ConsoleLogger ConstructingHandler ConstructingParser Container Container.Wrapper Container.Wrapper.Content ContainerEvent ContentModel ContentModel.ElemName CountedIterator CustomObjectInputStream DEFAULT DFAContentModel DTD Debug Decl DefaultDecl DefaultEntry DefaultMapModel DefaultMarkupHandler DetWordAutom DocCons DocGroup DocNest DocText DocType Document Double DoubleLinkedList DtdTypeSymbol DynamicVariable ELEMENTS EditDone Either Either.LeftProjection Either.RightProjection Elem ElemDecl ElementValidator EmptyMap EmptySet EntityDecl EntityDef EntityRef Enumeration Enumeration.Set32 Enumeration.Set64 Enumeration.SetXX Enumeration.Val Enumeration.Value Equiv EvComment EvElemEnd EvElemStart EvEntityRef EvProcInstr EvText Event Exit ExitFun Expression.Attrib Expression.Child Expression.Cond Expression.DescOrSelf Expression.Equals Expression.Exists Expression.Expr Expression.FExp Expression.GenExp Expression.NameTest Expression.Test ExtDef ExternalID ExternalSources FJTaskScheduler2 FactoryAdapter FatalError FileChooser FlatHashTable Float FlowPanel FocusEvent FocusGained FocusLost FontChanged ForegroundChanged FormattedTextField Frame Function0 Function1 Function10 Function11 Function12 Function13 Function14 Function15 Function16 Function17 Function18 Function19 Function2 Function20 Function21 Function22 Function3 Function4 Function5 Function6 Function7 Function8 Function9 Future GBTree GUIApplication GridBagPanel GridBagPanel.Constraints GridPanel Group HasKeyValue HashEntry HashMap HashSet HashTable Hashtable HedgeRHS History IScheduler Ident IdentityHashMap ImmutableIterator ImmutableMapAdaptor ImmutableSetAdaptor ImplicitConversions Include Inclusion Index IndexedStorage InputChannel InputEvent InsertTree Int IntDef IntMap Iterable Iterable.Projection IterableProxy IterableWrapper Iterator Iterator.PredicatedIterator Iterator.TakeWhileIterator JavaMapAdaptor JavaSerializer JavaSetAdaptor JavaTokenParsers Label LabelledRHS LayoutContainer Left Lexer Lexical LinkToFun LinkedHashMap LinkedHashSet LinkedList LinkedListQueueCreator List ListBuffer ListChange ListChanged ListElementsAdded ListElementsRemoved ListEvent ListMap ListMap.Node ListQueueCreator ListSelectionChanged ListSelectionEvent ListSet ListSet.Node ListView ListView.AbstractRenderer ListView.ModelWrapper ListView.Renderer ListView.Renderer.Wrapped ListView.selection.Indices LocalApply0 Location Locator Lock Logged LoggedNodeFactory Long LongMap MIXED MailBox MainFrame MalformedAttributeException Map Map.Filter Map.KeySet Map.Lense Map.MapTo Map.MutableIterableProjection Map.Projection Map1 Map2 Map3 Map4 MapProxy MapWrapper MapWrapper.IteratorWrapper MapWrapper.KeySet MapWrapper.ValueSet Mappable Mappable.Mappable Mappable.Mapper MarkupDecl MarkupHandler MarkupParser MatchError Menu MenuBar MenuItem Message MessageQueue MessageQueueElement MetaData MouseButtonEvent MouseClicked MouseDragged MouseEntered MouseEvent MouseExited MouseMotionEvent MouseMoved MousePressed MouseReleased MouseWheelMoved MultiMap MutableIterable MutableIterable.Filter MutableIterable.Map MutableIterable.Projection MutableIterator MutableIterator.Map MutableIterator.Wrapper MutableList MutableSeq MutableSeq.DefaultSeqIterator MutableSeq.Filter MutableSeq.Filter.FilterIterator MutableSeq.Map MutableSeq.Projection NamedSend NamespaceBinding NetKernel NoBindingFactoryAdapter Node NodeBuffer NodeFactory NodeSeq NodeTraverser NonLocalReturnException NondetWordAutom NotDefinedError NotNull NotationDecl Nothing Null Number ObservableBuffer ObservableMap ObservableSet OffsetPosition OpenHashMap Option Ordered Ordering Orientable Oriented OutputChannel PCData PCDataMarkupParser PEReference PagedSeq PagedSeqReader Panel ParameterEntityDecl ParsedEntityDecl Parser Parsers Parsers.Error Parsers.Failure Parsers.NoSuccess Parsers.OnceParser Parsers.ParseResult Parsers.Parser Parsers.Success Parsers.UnitOnceParser Parsers.UnitParser Parsers.~ PartialFunction PartialOrdering PartiallyOrdered PasswordField PhantomReference PointedHedgeExp PointedHedgeExp.Node PointedHedgeExp.TopIter Position Positional Predef.ArrowAssoc Predef.Ensuring PrefixedAttribute PrettyPrinter PrettyPrinter.Box PrettyPrinter.BrokenException PrettyPrinter.Item PrettyPrinter.Para PriorityQueue PriorityQueueProxy ProcInstr Product Product1 Product10 Product11 Product12 Product13 Product14 Product15 Product16 Product17 Product18 Product19 Product2 Product20 Product21 Product22 Product3 Product4 Product5 Product6 Product7 Product8 Product9 ProgressBar Proxy PublicID Publisher Queue QueueModule QueueProxy RadioButton RadioMenuItem Random RandomAccessSeq RandomAccessSeq.Mutable RandomAccessSeq.MutableProjection RandomAccessSeq.Projection RandomAccessSeq.Projection.MapProjection RandomAccessSeqProxy Range Range.Inclusive Ranged Ranged.Comparator Reaction Reactions Reactions.Impl Reactions.StronglyReferenced Reactions.Wrapper Reactor Reader RedBlack RedBlack.BlackTree RedBlack.NonEmpty RedBlack.RedTree RedBlack.Tree RefBuffer Reference ReferenceQueue ReferenceQueue.Wrapper ReferenceWrapper Regex Regex.Match Regex.MatchData Regex.MatchIterator RegexParsers RemoteApply0 Remove Reset ResizableArray Responder RevertableHistory RewriteRule RichBoolean RichByte RichChar RichDouble RichException RichFloat RichInt RichLong RichShort RichSorting RichString RichStringBuilder Right RollbackIterator RootPanel RuleTransformer SUnit.Assert SUnit.AssertFailed SUnit.Test SUnit.TestCase SUnit.TestConsoleMain SUnit.TestFailure SUnit.TestResult SUnit.TestSuite ScalaBeanInfo ScalaObject Scanner Scanners Scanners.Scanner SchedulerAdapter Script Scriptable ScrollPane Scrollable SelectionChanged SelectionEvent SendTo Separator Seq Seq.Projection Seq.Projection.ComputeSize Seq.Projection.MapProjection Seq.singleton SeqIterator SeqIterator.Map SeqProxy SequentialContainer SequentialContainer.Wrapper SerialVersionUID Serializer Service Set Set.Filter Set.Projection Set1 Set2 Set3 Set4 SetProxy SetStorage SetWrapper Short Show Show.SymApply SimpleApplet SimpleGUIApplication SimpleTokenizer SingleLinkedList SingleThreadedScheduler Slider SoftReference Some Sorted SortedMap SortedMap.DefaultKeySet SortedMap.Filter SortedMap.KeySet SortedMap.Lense SortedMap.Projection SortedMap.Range SortedMap.Range.Filter SortedMapWrapper SortedMapWrapper.KeySet SortedMapWrapper.Range SortedSet SortedSet.Filter SortedSet.Projection SortedSet.Range SortedSetWrapper SortedSetWrapper.Range Source SpecialNode SplitPane Stack Stack.Node StackProxy StandardTokenParsers StaticAnnotation StaticAttribute StdLexical StdTokenParsers StdTokens StdTokens.Identifier StdTokens.Keyword StdTokens.NumericLit StdTokens.StringLit Str Stream Stream.Definite StreamReader StringBuilder Subscriber SubsetConstruction Swing.Embossing Symbol SyncChannel SyncVar SynchronizedBuffer SynchronizedMap SynchronizedPriorityQueue SynchronizedQueue SynchronizedSet SynchronizedStack SyntaxError SystemID TabbedPane TabbedPane.Page Table Table.AbstractRenderer Table.LabelRenderer Table.Renderer Table.selection.SelectionSet TableChange TableChanged TableColumnsSelected TableEvent TableResized TableRowsAdded TableRowsRemoved TableRowsSelected TableStructureChanged TableUpdated TcpService TcpServiceWorker Tester Text TextArea TextBuffer TextComponent TextComponent.Caret TextComponent.HasColumns TextComponent.HasRows TextField TickedScheduler ToggleButton TokenParsers TokenTests Tokens Tokens.ErrorToken Tokens.Token Tree TreeHashMap TreeMap TreeRHS TreeSet Tuple1 Tuple10 Tuple11 Tuple12 Tuple13 Tuple14 Tuple15 Tuple16 Tuple17 Tuple18 Tuple19 Tuple2 Tuple20 Tuple21 Tuple22 Tuple3 Tuple4 Tuple5 Tuple6 Tuple7 Tuple8 Tuple9 TypeConstraint TypeSymbol UIElement UIEvent UnavailableResourceException UnbalancedTreeMap UnbalancedTreeMap.Node Undoable UninitializedError UninitializedFieldError Unit UnlinkFromFun Unparsed UnparsedEntityDecl UnprefixedAttribute Update ValidatingMarkupHandler ValidationException ValueChanged WeakHashMap WeakReference WindowActivated WindowClosed WindowClosing WindowDeactivated WindowDeiconified WindowEvent WindowIconified WindowOpened WordBerrySethi WordExp WordExp.Label WordExp.Letter WordExp.Wildcard WorkerThread WorkerThreadScheduler XIncludeException XIncludeFilter XIncluder XMLEvent XMLEventReader XMLEventReader.Parser XhtmlParser cloneable deprecated inline jolib.Asynchr jolib.Join jolib.Signal jolib.Synchr native noinline pilib.Chan pilib.GP pilib.Product pilib.Spawn pilib.Sum pilib.UChan pilib.UGP remote serializable throws transient unchecked uncheckedStable uncheckedVariance unsealed volatile ~ ! :: ANY Action Action.NoAction Action.Trigger ActionEvent Actor ActorGC Alignment AnyHedgeRHS AnyTreeRHS Apply0 Array AttListDecl AttrDecl BackgroundChanged Base.Eps BigDecimal BigDecimal.RoundingMode BigInt Binders.EmptyBinderEnv Binders.UnderBinder BorderPanel BorderPanel.Position Buffer BufferedIterator BufferedSource ButtonApp ButtonClicked BytePickle CaretUpdate Cell CelsiusConverter CelsiusConverter2 CharArrayReader CharSequenceReader Collection ComboBox ComboBox.selection ComboBoxes Comment Component Component.Mouse ComponentAdded ComponentHidden ComponentMoved ComponentRemoved ComponentResized ComponentShown ConsRHS Console ConstructingParser Container ContentModel ContentModel.Translator ContentModelParser Conversions CountButton DEFAULT Debug Dialog Dialog.Message Dialog.Options Dialog.Result Dialogs DocBreak DocCons DocGroup DocNest DocNil DocText DocType Document ELEMENTS EMPTY EditDone Either Elem ElemDecl EmptyHedgeRHS EncodingHeuristics End EntityRef EvComment EvElemEnd EvElemStart EvEntityRef EvProcInstr EvText Exit Expression Expression.Root Expression.WildcardTest ExtDef FatalError FileChooser FileChooser.Result FileChooser.SelectionMode FlowPanel FlowPanel.Alignment FocusGained FocusLost FontChanged ForegroundChanged FormattedTextField FormattedTextField.FocusLostBehavior FreshNameCreator Function Futures GridBagDemo GridBagPanel GridBagPanel.Anchor GridBagPanel.Fill GridPanel Group HashMap HashSet HelloWorld IMPLIED Ident ImmutableIterator ImmutableIterator.Empty Include Index IntDef IntMap Iterable Iterator JSON Key LabelledRHS Left LinkedHashMap LinkedHashSet List ListChanged ListElementsAdded ListElementsRemoved ListMap ListSelectionChanged ListSet ListView ListView.GenericRenderer ListView.IntervalMode ListView.Renderer ListView.selection ListView.selection.indices ListView.selection.items LocalApply0 Location Locator LongMap MIXED Main MakeValidationException MalformedAttributeException Map Marshal Math MetaData MouseClicked MouseDragged MouseEntered MouseExited MouseMoved MousePressed MouseReleased MouseWheelMoved MutableIterable MutableIterator MutableSeq NA NamedSend Nil NoPosition Node NodeSeq None NotationDecl Null Number OffsetPosition OpenHashMap Option Orientation PCDATA PCData PEReference PagedSeq PagedSeqReader ParameterEntityDecl ParsedEntityDecl Parsing Platform PointedHedgeExp.Point Position Predef Predef.Pair Predef.Triple PrettyPrinter.Break ProcInstr Product1 Product10 Product11 Product12 Product13 Product14 Product15 Product16 Product17 Product18 Product19 Product2 Product20 Product21 Product22 Product3 Product4 Product5 Product6 Product7 Product8 Product9 Properties PublicID QNode Queue REQUIRED RandomAccessSeq Range Reactions RedBlack.Empty Regex Regex.Match RegexTest RemoteActor RemoteApply0 Remove Reset Responder RichString Right SUnit Scheduler SelectionChanged SendTo Seq SequentialContainer Set SimpleApplet.ui Some SortedMap SortedSet Sorting Source Stack Start Str Stream Stream.cons Stream.lazy_:: StreamReader StringBuilder Swing Swing.EmptyIcon Swing.Lowered Swing.Raised SwingApp Symbol SystemID TIMEOUT TabbedPane TabbedPane.Layout TabbedPane.pages TabbedPane.selection Table Table.AutoResizeMode Table.ElementMode Table.IntervalMode Table.selection Table.selection.columns Table.selection.rows TableChanged TableColumnsSelected TableResized TableRowsAdded TableRowsRemoved TableRowsSelected TableSelection TableStructureChanged TableUpdated TcpService Terminate Text TextBuffer TextComponent TextComponent.caret Tokens.EOF TopScope TreeHashMap TreeMap TreeSet Tuple1 Tuple10 Tuple11 Tuple12 Tuple13 Tuple14 Tuple15 Tuple16 Tuple17 Tuple18 Tuple19 Tuple2 Tuple20 Tuple21 Tuple22 Tuple3 Tuple4 Tuple5 Tuple6 Tuple7 Tuple8 Tuple9 UIDemo UTF8Codec UnbalancedTreeMap UninitializedFieldError Unparsed UnparsedEntityDecl Update Utility ValidationException ValueChanged WindowActivated WindowClosed WindowClosing WindowDeactivated WindowDeiconified WindowIconified WindowOpened XML Xhtml XhtmlEntities XhtmlParser jolib mkTilde ops pilib ~ ArrayIndexOutOfBoundsException Character Class ClassCastException Error Exception Function IllegalArgumentException IndexOutOfBoundsException Integer Map NoSuchElementException NullPointerException NumberFormatException Pair Runnable RuntimeException Set String StringIndexOutOfBoundsException Throwable Triple Tuple UnsupportedOperationException any2ArrowAssoc any2Ensuring any2stringadd assert assume boolean boolean2Boolean booleanWrapper byte byte2Byte byte2double byte2float byte2int byte2long byte2short byteWrapper char char2Character char2double char2float char2int char2long charWrapper classOf currentThread double double2Double doubleWrapper error exceptionWrapper exit float float2Float float2double floatWrapper forceArrayProjection forceRandomAccessCharSeq format identity int int2Integer int2double int2float int2long intWrapper iterable2ordered lazyStreamToConsable long long2Long long2double long2float longWrapper print printf println readBoolean readByte readChar readDouble readFloat readInt readLine readLong readShort readf readf1 readf2 readf3 require seqToCharSequence short short2Short short2double short2float short2int short2long shortWrapper stringBuilderWrapper stringWrapper tuple22ordered tuple32ordered tuple42ordered tuple52ordered tuple62ordered tuple72ordered tuple82ordered tuple92ordered unit unit2ordered auto-complete-1.5.1/dict/scheme-mode000066400000000000000000000040411267667017000173430ustar00rootroot00000000000000case-lambda call/cc class define-class exit-handler field import inherit init-field interface let*-values let-values let/ec mixin opt-lambda override protect provide public rename require require-for-syntax syntax syntax-case syntax-error unit/sig unless when with-syntax and begin call-with-current-continuation call-with-input-file call-with-output-file case cond define define-syntax delay do dynamic-wind else for-each if lambda let let* let-syntax letrec letrec-syntax map or syntax-rules abs acos angle append apply asin assoc assq assv atan boolean? caar cadr call-with-input-file call-with-output-file call-with-values car cdddar cddddr cdr ceiling char->integer char-alphabetic? char-ci<=? char-ci=? char-ci>? char-downcase char-lower-case? char-numeric? char-ready? char-upcase char-upper-case? char-whitespace? char<=? char=? char>? char? close-input-port close-output-port complex? cons cos current-input-port current-output-port denominator display eof-object? eq? equal? eqv? eval even? exact->inexact exact? exp expt #f floor force gcd imag-part inexact->exact inexact? input-port? integer->char integer? interaction-environment lcm length list list->string list->vector list-ref list-tail list? load log magnitude make-polar make-rectangular make-string make-vector max member memq memv min modulo negative? newline not null-environment null? number->string number? numerator odd? open-input-file open-output-file output-port? pair? peek-char port? positive? procedure? quasiquote quote quotient rational? rationalize read read-char real-part real? remainder reverse round scheme-report-environment set! set-car! set-cdr! sin sqrt string string->list string->number string->symbol string-append string-ci<=? string-ci=? string-ci>? string-copy string-fill! string-length string-ref string-set! string<=? string=? string>? string? substring symbol->string symbol? #t tan transcript-off transcript-on truncate values vector vector->list vector-fill! vector-length vector-ref vector-set! auto-complete-1.5.1/dict/sclang-mode000066400000000000000000000333521267667017000173550ustar00rootroot00000000000000A2K A2K abs absdif AbstractFunction AbstractIn AbstractOut AbstractServerAction acos addition Adverbs AllpassC AllpassL AllpassN amclip AmpComp AmpComp AmpCompA AmpCompA ampdb Amplitude Amplitude APF AppClock Archive Array Array2D ArrayedCollection asin Assignment Association asTarget atan atan2 AudioControl AudioIn audio_rate_mapping AutoClassHelper Bag Balance2 Balance2 Ball Ball BAllPass BAllPass BasicOpUGen basic_live_coding_techniques BBandPass BBandPass BBandStop BBandStop BeatTrack BeatTrack BeatTrack BeatTrack2 BeatTrack2 BeatTrack2 BEQSuite BEQSuite BHiPass BHiPass BHiPass4 BHiShelf BHiShelf BinaryOpFunction BinaryOpStream BinaryOpUGen BiPanB2 BiPanB2 Blip Blip BLowPass BLowPass BLowPass4 BLowShelf BLowShelf Boolean BPeakEQ BPeakEQ BPF BPF BPZ2 BPZ2 BRF BRF BrownNoise BrownNoise BRZ2 BRZ2 BufAllpassC BufAllpassL BufAllpassN BufChannels BufChannels BufCombC BufCombL BufCombN BufDelayC BufDelayL BufDelayN BufDur BufDur Buffer Buffers BufFrames BufFrames BufRateScale BufRateScale BufRd BufRd BufSampleRate BufSampleRate BufSamples BufSamples BufWr BufWr bundledCommands Bus BusPlug Busses Button CCResponder ceil Changed Changed ChaosGen Char CheckBadValues Class Classes ClassHelpTemplate ClearBuf ClientVsServer Clip Clip clip2 ClipNoise ClipNoise Clock CmdPeriod cmds CocoaMenuItem CoinGate CoinGate Collection Collections Color CombC CombL CombN Comments Compander Compander CompanderD Complex CompositeView Condition ContiguousBlockAllocator Control Control-Structures ControlDur ControlName ControlRate ControlSpec convertRhythm Convolution Convolution2 Convolution2L Convolution3 cos COsc COsc cosh cpsmidi cpsoct Crackle Crackle Creating-Standalone-Applications Crossplatform CSVFileReader cubed CuspL CuspL CuspN CuspN Date dbamp Dbrown Dbrown Dbufrd Dbufrd Dbufwr Dbufwr DC DC Debugging-tips DebugNodeWatcher Decay Decay Decay2 Decay2 DecodeB2 DecodeB2 default_group DegreeToKey DegreeToKey Delay1 Delay2 DelayC DelayL DelayN DelTapRd DelTapRd DelTapWr DelTapWr Demand Demand DemandEnvGen DemandEnvGen DemandEnvGen DetectIndex DetectIndex DetectSilence DetectSilence DetectSilence Dgeom Dgeom Dialog Dibrown Dictionary difsqr DiskIn DiskIn DiskIn DiskOut DiskOut DiskOut distort division Diwhite Document DocumentAutoCompletion Donce Done Done DoubleArray Dpoll Dpoll DragBoth DragSink DragSource Drand Drand Dreset Dreset Dseq Dseq Dser Dser Dseries Dseries Dshuf Dshuf Dstutter Dstutter Dswitch Dswitch Dswitch1 Dswitch1 DUGen Dunique Dust Dust Dust2 Dust2 Duty Duty Dwhite Dwhite Dwrand Dwrand Dxrand DynKlang DynKlang DynKlank DynKlank DynKlank EmacsEditor EmacsGUI Env EnvelopeView EnvGate EnvGen EnvGen EnvirGui Environment EnvironmentRedirect Error Event EventPatternProxy EventPatternProxy EventStream EventStreamPlayer Event_types Exception excess exp exponentiation ExpRand ExpRand ExpRand Expression-Sequence EZGui EZKnob EZLists EZListView EZNumber EZPopUpMenu EZRanger EZScroller EZSlider EZText False FBSineC FBSineC FBSineL FBSineL FBSineN FBSineN Fdef FFT FFTTrigger File FileReader Filter FilterPattern FilterPattern Float FloatArray floor FlowLayout FlowView Fold Fold fold2 Font Formant Formant Formlet Formlet FOS FOS frac Frame Free Free FreeSelf FreeSelf FreeSelfWhenDone FreeSelfWhenDone FreeVerb FreeVerb2 FreqScope FreqScopeView FreqShift FreqShift FreqShift FSinOsc FSinOsc FuncFilterPattern Function FunctionDef FunctionList Functions Gate GbmanL GbmanL GbmanN GbmanN Gendy1 Gendy1 Gendy2 Gendy2 Gendy3 Gendy3 GeneralHID GeneralHIDDevice GeneralHIDSlot GeneralHIDSpec Glossary Gradient GrainBuf GrainBuf GrainFM GrainIn GrainSin GrayNoise GrayNoise greaterorequalthan greaterthan Group Groups GUI gui GUI-Classes GUI-Overview GVerb Harmonics Hasher Hasher Help HelpDocsLicensing Helper HelpSearchResult HenonC HenonC HenonL HenonL HenonN HenonN HIDDeviceService Hilbert HilbertFIR HiliteGradient History HistoryGui HLayoutView How-to-Use-the-Interpreter HPF HPF HPZ1 HPZ1 HPZ2 HPZ2 hypot hypotApx IdentityBag IdentityDictionary IdentitySet IEnvGen IEnvGen if IFFT Impulse Impulse In Index Index IndexInBetween IndexInBetween IndexL IndexL InFeedback Infinitum initClass InRange InRange InRect InRect Int16Array Int32Array Int8Array Integer Integrator Integrator Integrator Internal-Snooping InterplEnv InterplPairs InterplXYC Interpreter Interval InTrig Intro-to-Objects Introductory_tutorial IRand IRand IRand isKindOf isNegative isPositive isStrictlyPositive JITGui JITLib jitlib_asCompileString jitlib_basic_concepts_01 jitlib_basic_concepts_02 jitlib_basic_concepts_03 jitlib_basic_concepts_04 jitlib_efficiency jitlib_fading jitlib_networking J_concepts_in_SC K2A K2A KeyState KeyState KeyTrack KeyTrack Klang Klang Klang Klank Klank Klank Knob Lag Lag Lag2 Lag2 Lag2UD Lag2UD Lag3 Lag3 Lag3UD Lag3UD LagControl LagIn LagUD LagUD LastValue Latch Latch LatoocarfianC LatoocarfianC LatoocarfianL LatoocarfianL LatoocarfianN LatoocarfianN LazyEnvir LeakDC LeakDC LeastChange LeastChange lessorequalthan lessthan LFClipNoise LFClipNoise LFCub LFCub LFDClipNoise LFDClipNoise LFDNoise0 LFDNoise0 LFDNoise1 LFDNoise1 LFDNoise3 LFDNoise3 LFGauss LFGauss LFNoise0 LFNoise0 LFNoise1 LFNoise1 LFNoise2 LFNoise2 LFPar LFPar LFPulse LFPulse LFSaw LFSaw LFTri LFTri Library LibraryBase Licensing LID Limiter Limiter LinCongC LinCongC LinCongL LinCongL LinCongN LinCongN Line Line Linen Linen LinExp LinExp LinkedList LinkedListNode LinLin LinLin LinPan2 LinPan2 LinRand LinRand LinRand LinSelectX Linux_udev_setup LinXFade2 LinXFade2 List ListComprehensions ListDUGen ListPattern ListPattern ListView Literals LocalBuf LocalBuf LocalIn LocalOut log log10 log2 Logistic Logistic loop LorenzL LorenzL Loudness Loudness LPF LPF LPZ1 LPZ1 LPZ2 LPZ2 Magnitude Main MantissaMask MantissaMask matchItem max MaxLocalBufs MaxLocalBufs Maybe Median Median Method Method-Calls MFCC MFCC MidEQ MidEQ MIDI midicps MIDIIn MIDIOut MIDIResponder min Mix modifiers Modifying_Standalones modulo Monitor MonitorGui MoogFF MoogFF More-On-Getting-Help MostChange MostChange MouseButton MouseButton MouseX MouseX MouseY MouseY MovieView MulAdd MultiChannel MultiLevelIdentityDictionary MultiOutUGen multiplication MultiSliderView MultiTap NamedControl NAryOpFunction NAryOpStream Ndef NdefGui NdefMixer NdefMixerOld NdefParamGui neg NetAddr Nil Node NodeControl NodeEvent NodeMap NodeMessaging NodeProxy NodeProxyEditor NodeProxy_roles NodeWatcher Non-Realtime-Synthesis Normalizer Normalizer NoteOnResponder Notes-on-the-HTML-Help-System NotificationCenter NRand NRand NRand NumAudioBuses Number NumberBox NumBuffers NumControlBuses NumInputBuses NumOutputBuses NumRunningSynths Object ObjectGui ObjectTable octcps OffsetOut OnePole OnePole OneZero OneZero Onsets Onsets Operators Order Order-of-execution OrderedIdentitySet Osc Osc OSCBundle OscN OscN OSCpathResponder OSCresponder OSCresponderNode OSC_communication Out OutputProxy PAbstractGroup PackFFT Padd Padd Paddp Paddp Paddpre Paddpre Pair Pan2 Pan2 Pan4 Pan4 PanAz PanAz PanB PanB PanB2 PanB2 Panner PartConv Partial-Application PathName Pattern PatternConductor PatternProxy PatternProxy PatternsDocumentedAndNot Pause Pause PauseSelf PauseSelf PauseSelfWhenDone Pavaroh Pavaroh Pbeta Pbeta Pbind Pbind Pbindef Pbindef Pbindf Pbindf PbindProxy PbindProxy Pbinop Pbinop Pbrown Pbrown Pbus Pbus Pcauchy Pcauchy Pchain Pchain Pclump Pclutch Pclutch Pcollect Pcollect Pconst Pconst Pdef Pdef PdefAllGui PdefEditor PdefGui Pdefn Pdefn PdegreeToKey PdegreeToKey Pdfsm Pdfsm Pdict Pdict Pdiff Pdrop PdurStutter PdurStutter Peak Peak PeakFollower PeakFollower Pen Penvir Penvir Pevent Peventmod Pexprand Pexprand PfadeIn PfadeOut Pfin Pfin Pfindur Pfindur PfinQuant Pfinval Pfinval Pflatten Pflow Pflow Pfpar Pfset Pfset Pfsm Pfsm Pfunc Pfunc Pfuncn Pfuncn Pfx Pfx Pfxb Pfxb Pgate Pgate Pgauss Pgauss Pgbrown Pgbrown Pgeom Pgeom Pget Pgpar Pgpar Pgroup Pgroup Pgtpar PG_01_Introduction PG_02_Basic_Vocabulary PG_03_What_Is_Pbind PG_04_Words_to_Phrases PG_05_Math_on_Patterns PG_060_Filter_Patterns PG_06a_Repetition_Contraint_Patterns PG_06b_Time_Based_Patterns PG_06c_Composition_of_Patterns PG_06d_Parallel_Patterns PG_06e_Language_Control PG_06f_Server_Control PG_06g_Data_Sharing PG_07_Value_Conversions PG_08_Event_Types_and_Parameters PG_Cookbook01_Basic_Sequencing PG_Cookbook02_Manipulating_Patterns PG_Cookbook03_External_Control PG_Cookbook04_Sending_MIDI PG_Cookbook05_Using_Samples PG_Cookbook06_Phrase_Network PG_Cookbook07_Rhythmic_Variations PG_Ref01_Pattern_Internals Phasor Phasor Phid Phid PhidKey PhidKey PhidSlot PhidSlot Phprand Phprand Pif Pif Pindex Pindex PingPong PinkerNoise PinkNoise PinkNoise Pipe Pitch Pitch Pitch PitchShift PitchShift Pkey Pkey Place Place Plag Plambda Plambda Platform play PlayBuf PlayBuf playN Plazy Plazy PlazyEnvir PlazyEnvir PlazyEnvirN PlazyEnvirN Plet plot Plotter Plprand Plprand Pluck Pluck Pmeanrand Pmeanrand Pmono Pmono PmonoArtic PmonoArtic PMOsc PMOsc Pmul Pmul Pmulp Pmulp Pmulpre Pmulpre Pn Pn Pnaryop Pnaryop Pnsym Pnsym Pnsym1 Point Polar Poll Poll Polymorphism PopUpMenu Post pow Ppar Ppar PparGroup Ppatlace Ppatlace Ppatmod Ppatmod Pplayer Ppoisson Ppoisson Pprob Pprob Pprotect Pprotect Pproto Pproto Prand Prand Preject Preject Prewrite Prewrite PriorityQueue Process Prorate Prorate Prout Prout Proutine Proutine ProxyMixer ProxyMixerOld ProxyMonitorGui ProxySpace proxyspace_examples ProxySynthDef Pseed Pseed Pseg Pseg Pselect Pselect Pseq Pseq Pser Pser Pseries Pseries Pset Pset Psetp Psetp Psetpre Psetpre Pshuf Pshuf PSinGrain Pslide Pslide Pspawn Pspawn Pspawner Pspawner Pstep Pstep Pstep2add Pstep3add PstepNadd PstepNadd PstepNfunc PstepNfunc Pstretch Pstretchp Pstutter Pstutter Pswitch Pswitch Pswitch1 Pswitch1 Psym Psym Psym1 Psync Psync Ptime Ptime Ptpar Ptpar Ptrace Ptsym Ptuple Ptuple publishing_code Pulse Pulse PulseCount PulseDivider Punop Punop pvcalc pvcalc2 pvcollect PV_Add PV_BinScramble PV_BinShift PV_BinWipe PV_BrickWall PV_ChainUGen PV_ChainUGen PV_ConformalMap PV_Conj PV_Copy PV_CopyPhase PV_Diffuser PV_Div PV_HainsworthFoote PV_JensenAndersen PV_LocalMax PV_MagAbove PV_MagBelow PV_MagClip PV_MagDiv PV_MagFreeze PV_MagMul PV_MagNoise PV_MagShift PV_MagSmear PV_MagSquared PV_Max PV_Min PV_Mul PV_PhaseShift PV_PhaseShift270 PV_PhaseShift90 PV_RandComb PV_RandWipe PV_RectComb PV_RectComb2 Pwalk Pwalk Pwhile Pwhile Pwhite Pwhite Pwrand Pwrand Pwrap Pwrap Pxrand Pxrand QuadC QuadC QuadL QuadL QuadN QuadN Quant Quark Quarks RadiansPerSample Ramp Ramp Rand Rand Rand RandID RandID Randomness randomSeed RandSeed RandSeed RangeSlider RawArray RawPointer reciprocal RecNodeProxy RecordBuf RecordBuf Rect recursive_phrasing Ref RefCopy Regenerate-GUI-Help ReplaceOut resize Resonz Resonz RHPF RHPF ring1 ring2 ring3 ring4 Ringz Ringz RLPF RLPF RootNode Rossler Rotate2 Rotate2 round Routine runMe runMe2 RunningMax RunningMax RunningMin RunningMin RunningSum RunningSum SampleDur SampleRate Saw Saw SC2DSlider SC2DTabletSlider Scale scaleneg SCButton SCCompositeView SCContainerView SCControlView SCDragBoth SCDragSink SCDragSource SCDragView SCEnvelopeEdit SCEnvelopeView SCFont SCFreqScope SCFreqScopeWindow Scheduler SCHLayoutView Schmidt Schmidt SCImage SCImageFilter SCImageKernel SCKnob SCLayoutView SCLevelIndicator SCListView SCMenuGroup SCMenuItem SCMenuSeparator SCModalSheet SCModalWindow SCMovieView SCMultiSliderView SCNumberBox Scope ScopeOut ScopeOut2 ScopeView Score SCPen SCPopUpMenu SCQuartzComposerView SCRangeSlider ScrollView SCScope SCScrollTopView SCScrollView SCSlider SCSliderBase SCSoundFileView SCStaticText SCStaticTextBase SCStethoscope SCTabletView SCTextField SCTextView SCTopView SCUserView SCUserView-Subclassing SCView SCVLayoutView SCWindow Select Select SelectX SelectX SelectXFocus SelectXFocus Semaphore SendPeakRMS SendReply SendTrig SequenceableCollection SerialPort Server Server-Architecture Server-Command-Reference ServerBoot ServerOptions ServerQuit ServerTiming ServerTree Set SetBuf SetResetFF Shaper Shaper SharedIn SharedOut Shortcuts sign Signal Silent Silent SimpleController SimpleNumber sin sinh SinOsc SinOsc SinOscFB SkipJack Slew Slew Slider Slider2D Slope Slope Slope softclip softPut softSet softVol_ somepage SortedList SOS SOS SoundFile SoundFileView SoundFileViewProgressWindow SoundIn SparseArray Spawner Spec SpecCentroid SpecCentroid SpecFlatness SpecFlatness SpecPcile SpecPcile Splay SplayAz SplayZ Spring Spring sqrdif sqrsum sqrt squared StandardL StandardL StandardN StandardN StartUp StaticText Stepper StereoConvolution2L Stethoscope Stream StreamClutch Streams Streams-Patterns-Events1 Streams-Patterns-Events2 Streams-Patterns-Events3 Streams-Patterns-Events4 Streams-Patterns-Events5 Streams-Patterns-Events6 Streams-Patterns-Events7 String StubTemplate SubsampleOffset subtraction sumsqr Sweep switch Symbol SymbolArray SymbolicNotations SyncSaw SyncSaw Syntax-Shortcuts Synth Synth-Controlling-UGens Synth-Definition-File-Format SynthDef SynthDesc SynthDescLib SystemClock T2A T2A T2K T2K TabFileReader TabletSlider2D TabletView tan tanh Tap Tap Task TaskProxy TaskProxy TaskProxyGui TBall TBall TChoose Tdef Tdef TdefAllGui TdefEditor TdefGui TDelay TDelay TDuty TDuty TempoBusClock TempoClock TExpRand TExpRand TextField TextView TGrains TGrains TGrains the_lazy_proxy Thread thresh Thunk Timer TIRand TIRand ToggleFF TopicHelpTemplate Tour_of_UGens TRand TRand Trig Trig1 TrigControl True trunc Tuning Tutorial TWChoose TWChoose TWindex TWindex TwoPole TwoPole TwoWayIdentityDictionary TwoZero TwoZero UGen UGen-doneActions UGenHelpTemplate UGens UGens-and-Synths UnaryOpFunction UnaryOpStream UnaryOpUGen Understanding-Errors Undocumented-Classes UniqueID UnixFILE Unpack1FFT UnpackFFT UserView Using-Extensions Using-the-Startup-File UsingMIDI VarLag VarSaw VarSaw VDiskIn VDiskIn VDiskIn Vibrato View ViewRedirect VLayoutView Volume VOsc VOsc VOsc3 VOsc3 Warp Warp1 Warp1 Warp1 Wavetable WhiteNoise WhiteNoise WidthFirstUGen WiiMote WikiUsage Window Wrap Wrap wrap2 WrapIndex WrapIndex Writing-Classes Writing_Unit_Generators XFade XFade2 XFade2 XLine XLine XOut ZeroCrossing ZeroCrossing auto-complete-1.5.1/dict/sh-mode000066400000000000000000000025351267667017000165170ustar00rootroot00000000000000# Bash Family Shell Dictionary # http://www.gnu.org/software/bash/manual/bash.html . : [ alias bg bind break builtin caller cd command compgen complete compopt continue declare dirs disown echo enable eval exec exit export fc fg getopts hash help history jobs kill let local logout mapfile popd printf pushd pwd read readarray readonly return set shift shopt source suspend test times trap type typeset ulimit umask unalias unset wait ! [[ ]] case do done elif else esac fi for function if in select then time until while { } ! # $ * - 0 ? @ _ BASH BASH_ALIASES BASH_ARGC BASH_ARGV BASH_CMDS BASH_COMMAND BASH_ENV BASH_EXECUTION_STRING BASH_LINENO BASH_REMATCH BASH_SOURCE BASH_SUBSHELL BASH_VERSINFO BASH_VERSION BASH_XTRACEFD BASHOPTS BASHPID CDPATH COLUMNS COMP_CWORD COMP_KEY COMP_LINE COMP_POINT COMP_TYPE COMP_WORDBREAKS COMP_WORDS COMPREPLY DIRSTACK EMACS EUID FCEDIT FIGNORE FUNCNAME GLOBIGNORE GROUPS HISTCMD HISTCONTROL HISTFILE HISTFILESIZE HISTIGNORE HISTSIZE HISTTIMEFORMAT HOME HOSTFILE HOSTNAME HOSTTYPE IFS IGNOREEOF INPUTRC LANG LC_ALL LC_COLLATE LC_CTYPE LC_MESSAGES LC_MESSAGES LC_NUMERIC LINENO LINES MACHTYPE MAIL MAILCHECK MAILPATH OLDPWD OPTARG OPTERR OPTIND OSTYPE PATH PIPESTATUS POSIXLY_CORRECT PPID PROMPT_COMMAND PROMPT_DIRTRIM PS1 PS2 PS3 PS4 PWD RANDOM REPLY SECONDS SHELL SHELLOPTS SHLVL TEXTDOMAIN TEXTDOMAINDIR TIMEFORMAT TMOUT TMPDIR UID auto-complete-1.5.1/dict/tcl-mode000066400000000000000000000031351267667017000166640ustar00rootroot00000000000000after append apply array auto_execok auto_import auto_load auto_load_index auto_mkindex auto_mkindex_old auto_qualify auto_reset bell binary bind bindtags break button canvas case catch cd chan checkbutton clipboard clock close concat continue destroy dict encoding entry eof error eval event exec exit expr fblocked fconfigure fcopy file fileevent flush focus font for foreach format frame gets glob global grab grid if image incr info interp join label labelframe lappend lassign lindex linsert list listbox llength load lower lrange lrepeat lreplace lreverse lsearch lset lsort menu menubutton message namespace open option pack package panedwindow pid pkg_mkIndex place proc puts pwd radiobutton raise read regexp registry regsub rename return scale scan scrollbar seek selection set socket source spinbox split string subst switch tclLog tclPkgSetup tclPkgUnknown tcl_findLibrary tell text time tk tk_chooseColor tk_chooseDirectory tk_getOpenFile tk_getSaveFile tk_menuSetFocus tk_messageBox tk_popup tk_textCopy tk_textCut tk_textPaste tkwait toplevel ttk::button ttk::checkbutton ttk::combobox ttk::entry ttk::focusFirst ttk::frame ttk::label ttk::labelframe ttk::menubutton ttk::notebook ttk::paned ttk::panedwindow ttk::progressbar ttk::radiobutton ttk::scale ttk::scrollbar ttk::separator ttk::setTheme ttk::sizegrip ttk::style ttk::takefocus ttk::themes ttk::treeview trace unknown unload unset update uplevel upvar variable vwait while winfo wm auto-complete-1.5.1/dict/ts-mode000066400000000000000000000224741267667017000165370ustar00rootroot00000000000000absRefPrefix accessibility accessibilityWrap accessKey ACT ACTIFSUB ACTIVSUBRO ACTRO addAttributes addExtUrlsAndShortCuts additionalHeaders additionalParams addParams addQueryString addQueryString adjustItemsH adjustSubItemsH adminPanelStyles after age align align.field all allowedAttribs allowedGroups allowEdit allowNew allowTags allStdWrap allWrap alternativeSortingField alternativeTempPath altImgResource altTarget altText alwaysActivePIDlist alwaysLink andWhere angle antiAlias append applyTotalH applyTotalW arrayReturnMode arrowACT arrowImgParams arrowNO ATagBeforeWrap ATagParams ATagTitle atLeast atMost authcodeFields autoInsertPID autostart backColor badMess base64 baseURL beforeImg beforeImgLink beforeImgTagParams beforeROImg beforeWrap begin begin beginAtLevel beLoginLinkIPList beLoginLinkIPList_login beLoginLinkIPList_logout beUserLogin bgImg blankStrEqFalse blur bm bodyTag bodyTag bodyTagAdd bodyTagCObject bodyTagMargins border border borderCol bordersWithin borderThick bottomContent bottomHeight br breakSpace breakWidth brTag bytes c cache_clearAtMidnight cached cache_period caption captionAlign captionSplit case case CASE casesensitiveComp cellpadding cellspacing char charcoal clearCacheOfPages cMargins COA COA_INT cObject cObjNum code collapse color color1 color2 color3 color.default color.field colRelations cols cols colSpace COLUMNS COMMENT commentWrap compensateFieldWidth compX compY concatenateJsAndCss conf config config CONFIG constants CONTENT content_fallback content_from_pid_allowOutsideDomain controllerActionName controllerExtensionName controllerName crop cropHTML csConv cssInline CSS_inlineStyle CTABLE CUR CURIFSUB CURIFSUBRO current CURRO cWidth data dataArray dataWrap date debug debugData debugFunc debugItemConf debugRenumberedObject decimals dec_point default defaultAlign defaultCmd defaultCode defaultGetVars delete denyTags depth dimensions directImageLink directionLeft directionUp directReturn disableAllHeaderCode disableAltText disableCharsetHeader disableImgBorderAttr disablePageExternalUrl disablePrefixComment disablePreviewNotification displayActiveOnLoad displayActiveOnLoad displayrecord distributeX distributeY doctype doctypeSwitch doNotLinkIt doNotShowLink doNotStripHTML dontCheckPid dontFollowMouse dontHideOnMouseUp dontLinkIfSubmenu dontMd5FieldNames dontWrapInTable doubleBrTag doublePostCheck dWorkArea edge edit editIcons editIcons editPanel EDITPANEL EDITPANEL effects email emailMess emboss emptyTitleHandling emptyTitleHandling emptyTitleHandling enable enableContentLengthHeader encapsLines encapsLinesStdWrap encapsTagList entryLevel equalH equals evalErrors evalFunc excludeDoktypes excludeNoSearchPages excludeUidList expAll explode ext extbase externalBlocks extOnReady extTarget face.default face.field FEData fe_userEditSelf fe_userOwnSelf field fieldPrefix fieldRequired fieldWrap file FILE filelink fileList fileTarget firstLabel firstLabelGeneral flip flop foldSpeed foldTimer fontFile fontSize fontSizeMultiplicator fontTag footerData forceAbsoluteUrl forceTypeValue FORM format formName formurl frame frameReloadIfNotInFrameset frameSet freezeMouseover ftu gamma gapBgCol gapLineCol gapLineThickness gapWidth gif GIFBUILDER globalNesting GMENU goodMess gray gr_list groupBy headerComment headerData headTag height hiddenFields hide hideButCreateMap hideMenuTimer hideMenuWhenNotOver hideNonTranslated highColor HMENU hover hoverStyle HRULER HTML html5 htmlmail HTMLparser htmlSpecialChars htmlTag_dir htmlTag_langKey htmlTag_setParams http icon iconCObject icon_image_ext_list icon_link icon_thumbSize if ifBlank ifEmpty IFSUB IFSUBRO ignore IMAGE image_compression image_effects image_frames imgList imgMap imgMapExtras imgMax imgNameNotRandom imgNamePrefix imgObjNum imgParams imgPath imgStart IMGTEXT import inBranch includeCSS includeJS includeJSFooter includeJSFooterlibs includeJSlibs includeLibrary includeLibs includeNotInMenu incT3Lib_htmlmail index_descrLgd index_enable index_externals index_metatags infomail inlineJS inlineLanguageLabel inlineSettings inlineStyle2TempFile innerStdWrap_all innerWrap innerWrap2 inputLevels insertClassesFromRTE insertData intensity intTarget intval invert IProcFunc isFalse isGreaterThan isInList isLessThan isPositive isTrue itemArrayProcFunc items iterations javascriptLibs join jpg jsFooterInline jsInline JSMENU JSwindow JSwindow.altUrl JSwindow.altUrl_noDefaultParams JSwindow.expand JSwindow.newWindow JSwindow_params jumpurl jumpurl_enable jumpurl_mailto_disable keep keepNonMatchedTags keywords keywordsField labelStdWrap labelWrap lang language language_alt languageField layer_menu_id layerStyle layout layoutRootPath leftjoin leftOffset levels limit lineColor lineThickness linkAccessRestrictedPages linkParams linkVars linkWrap list listNum lm LOAD_REGISTER locale_all localNesting locationData lockFilePath lockPosition lockPosition_addSelf lockPosition_adjust loginUser longdescURL loop lowColor lower mailto main mainScript makelinks markers markerWrap mask max maxAge maxH maxHeight maxItems maxW maxWidth maxWInText m.bgImg m.bottomImg m.bottomImg_mask md5 meaningfulTempFilePrefix menuBackColor menuHeight menuOffset menuWidth message_page_is_being_generated message_preview message_preview_workspace meta metaCharset method minH minifyCSS minifyJS minItems minItems minW m.mask moveJsFromHeaderToFooter MP_defaults MP_disableTypolinkClosestMPvalue MP_mapRootPoints MULTIMEDIA name namespaces negate newRecordFromTable newRecordInPid next niceText NO noAttrib noBlur no_cache noCols noLink noLinkUnderline nonCachedSubst none nonTypoTagStdWrap nonTypoTagUserFunc nonWrappedTag noOrderBy noPageTitle noResultObj normalWhenNoLanguage noRows noScale noScaleUp noscript noStretchAndMarginCells notification_email_charset notification_email_encoding notification_email_urlmode noTrimWrap noValueInsert noWrapAttr numberFormat numRows obj offset offset _offset offsetWrap onlyCurrentPid opacity options orderBy OTABLE outerWrap outline output outputLevels override overrideAttribs overrideEdit overrideId PAGE pageGenScript pageRendererTemplateFile pageTitleFirst parameter params parseFunc parseFunc parseValues partialRootPath path pidInList pixelSpaceFontSizeRef plainTextStdWrap pluginNames png postCObject postUserFunc postUserFunkInt preCObject prefixComment prefixLocalAnchors prefixLocalAnchors prefixRelPathWith preIfEmptyListNum prepend preUserFunc prev previewBorder printBeforeContent prioriCalc processScript properties protect protectLvar quality quality radioInputWrap radioWrap range range rawUrlEncode recipient RECORDS recursive redirect reduceColors relativeToParentLayer relativeToTriggerItem relPathPrefix remap remapTag removeBadHTML removeDefaultJS removeIfEquals removeIfFalse removeObjectsOfDummy removePrependedNumbers removeTags removeWrapping renderCharset renderObj renderWrap REQ required required resources resultObj returnKey returnLast reverseOrder rightjoin rm rmTagIfNoAttrib RO_chBgColor rootline rotate rows rowSpace sample sample section sectionIndex select sendCacheHeaders sendCacheHeaders_onlyWhenLoginDeniedInBranch separator setContentToCurrent setCurrent setfixed setFixedHeight setFixedWidth setJS_mouseOver setJS_openPic setKeywords shadow sharpen shear short shortcutIcon showAccessRestrictedPages showActive showFirst simulateStaticDocuments simulateStaticDocuments_addTitle simulateStaticDocuments_dontRedirectPathInfoError simulateStaticDocuments_noTypeIfNoTitle simulateStaticDocuments_pEnc simulateStaticDocuments_pEnc_onlyP simulateStaticDocuments_replacementChar sitetitle size size.default size.field slide smallFormFields solarize source space spaceAfter spaceBefore spaceBelowAbove spaceLeft spaceRight spacing spamProtectEmailAddresses spamProtectEmailAddresses_atSubst spamProtectEmailAddresses_lastDotSubst SPC special split splitRendering src stat stat_apache stat_apache_logfile stat_apache_niceTitle stat_apache_noHost stat_apache_noRoot stat_apache_notExtended stat_apache_pagenames stat_excludeBEuserHits stat_excludeIPList stat_mysql stat_pageLen stat_titleLen stat_typeNumList stayFolded stdWrap stdWrap2 strftime stripHtml stripProfile stylesheet submenuObjSuffixes subMenuOffset subparts subst_elementUid subst_elementUid substMarksSeparately substring swirl sword sword_noMixedCase sword_standAlone sys_language_mode sys_language_overlay sys_language_softExclude sys_language_softMergeIfNotBlank sys_language_uid sys_page table tableParams tables tableStdWrap tableStyle tags target TCAselectItem TDparams template TEMPLATE templateFile text TEXT textMargin textMargin_outOfText textMaxLength textObjNum textPos textStyle thickness thousands_sep title titleTagFunction titleText titleText tm TMENU token topOffset totalWidth transparentBackground transparentColor trim twice typeNum types typolink typolinkCheckRootline typolinkEnableLinksAcrossDomains typolinkLinkAccessRestrictedPages typolinkLinkAccessRestrictedPages_addParams uid uidInList uniqueGlobal uniqueLinkVars uniqueLocal unset unsetEmpty upper url useCacheHash useLargestItemX useLargestItemY USER USERDEF1 USERDEF1RO USERDEF2RO USERFEF2 userFunc userFunc_updateArray userIdColumn USER_INT USERNAME_substToken USERUID_substToken USR USRRO value variables wave where width wordSpacing workArea workOnSubpart wrap wrap2 wrap3 wrapAlign wrapFieldName wrapItemAndSub wrapNoWrappedLines wraps xhtml_11 xhtml_2 xhtml_basic xhtml_cleaning xhtmlDoctype xhtml_frames xhtml+rdfa_10 xhtml_strict xhtml_trans xml_10 xml_11 xmlprologue xPosOffset yPosOffset auto-complete-1.5.1/dict/tuareg-mode000066400000000000000000000034241267667017000173720ustar00rootroot00000000000000# OCaml 3.12.1 # Keywords and as assert begin class constraint do done downto else end exception external false for fun function functor if in include inherit initializer lazy let match method module mutable new object of open or private rec sig struct then to true try type val virtual when while with # Pervasives ! != & && * ** *. + +. - -. / /. := < <= <> = == > >= @ FP_infinite FP_nan FP_normal FP_subnormal FP_zero LargeFile Open_append Open_binary Open_creat Open_nonblock Open_rdonly Open_text Open_trunc Open_wronly Oupen_excl ^ ^^ abs abs_float acos asin asr at_exit atan atan2 bool_of_string ceil char_of_int classify_float close_in close_in_noerr close_out close_out_noerr compare cos cosh decr do_at_exit epsilon_float exit exp expm1 failwith float float_of_int float_of_string floor flush flush_all format format4 format_of_string fpclass frexp fst ignore in_channel in_channel_length incr infinity input input_binary_int input_byte input_char input_line input_value int_of_char int_of_float int_of_string invalid_arg land ldexp lnot log log10 log1p lor lsl lsr lxor max max_float max_int min min_float min_int mod mod_float modf nan neg_infinity not open_flag open_in open_in_bin open_in_gen open_out open_out_bin open_out_gen or out_channel out_channel_length output output_binary_int output_byte output_char output_string output_value pos_in pos_out pred prerr_char prerr_endline prerr_float prerr_int prerr_newline prerr_string print_char print_endline print_float print_int print_newline print_string raise read_float read_int read_line really_input ref seek_in seek_out set_binary_mode_in set_binary_mode_out sin sinh snd sqrt stderr stdin stdout string_of_bool string_of_float string_of_format string_of_int succ tan tanh truncate unsafe_really_input valid_float_lexem || ~ ~+ ~+. ~- ~-. auto-complete-1.5.1/dict/verilog-mode000066400000000000000000000044761267667017000175620ustar00rootroot00000000000000`define `else `endif `ifdef `ifndef `macromodule `module `primitive `timescale above abs absdelay ac_stim acos acosh alias aliasparam always always_comb always_ff always_latch analog analysis and asin asinh assert assign assume atan atan2 atanh automatic before begin bind bins binsof bit branch break buf bufif0 bufif1 byte case casex casez cell chandle class clocking cmos config connectmodule connectrules const constraint context continue cos cosh cover covergroup coverpoint cross ddt ddx deassign default define defparam design disable discipline dist do driver_update edge else end endcase endclass endclocking endconfig endconnectrules enddiscipline endfunction endgenerate endgroup endif endinterface endmodule endnature endpackage endparamset endprimitive endprogram endproperty endsequence endspecify endtable endtask enum event exclude exp expect export extends extern final final_step first_match flicker_noise floor flow for force foreach forever fork forkjoin from function generate genvar ground highz0 highz1 hypot idt idtmod if ifdef iff ifndef ifnone ignore_bins illegal_bins import incdir include inf initial initial_step inout input inside instance int integer interface intersect join join_any join_none laplace_nd laplace_np laplace_zd laplace_zp large last_crossing liblist library limexp ln local localparam log logic longint macromodule mailbox matches max medium min modport module nand nand nature negedge net_resolution new nmos nmos noise_table nor noshowcancelled not notif0 notif1 null or output package packed parameter paramset pmos pmos posedge potential pow primitive priority program property protected pull0 pull1 pullup pulsestyle_ondetect pulsestyle_onevent pure rand randc randcase randcase randsequence rcmos real realtime ref reg release repeat return rnmos rpmos rtran rtranif0 rtranif1 scalared semaphore sequence shortint shortreal showcancelled signed sin sinh slew small solve specify specparam sqrt static string strong0 strong1 struct super supply supply0 supply1 table tagged tan tanh task then this throughout time timeprecision timer timescale timeunit tran tran tranif0 tranif1 transition tri tri tri0 tri1 triand trior trireg type typedef union unique unsigned use uwire var vectored virtual void wait wait_order wand weak0 weak1 while white_noise wildcard wire with within wor wreal xnor xor zi_nd zi_np zi_zd auto-complete-1.5.1/doc/000077500000000000000000000000001267667017000150555ustar00rootroot00000000000000auto-complete-1.5.1/doc/Makefile000066400000000000000000000005561267667017000165230ustar00rootroot00000000000000MDS = $(wildcard *.md) HTMLS = $(MDS:%.md=%.html) all: $(HTMLS) manual.html: manual.md pandoc --standalone \ --toc \ --number-sections \ --css style.css \ --from markdown+implicit_header_references \ --to html \ --output $@ $^ changes.html: changes.md pandoc --standalone \ --css style.css \ --to html \ --output $@ $^ clean: rm -f $(HTMLS) auto-complete-1.5.1/doc/ac-fuzzy.png000066400000000000000000000534651267667017000173500ustar00rootroot00000000000000‰PNG  IHDRž5×§†"sBIT|dˆtEXtSoftwaregnome-screenshotï¿> IDATxœìÝy|ÓEþøñW’¶éݦ´徤œ-W9åTÀƒ•Õ]¶(ºëwñZÅûØUnñ\wEн@¿ ˆ ¡€‚å*P ¥Ðûn“æøýš&é¶ïçãÁ#á3™ùÌ|šf:“ùÌ„B!„B!„B!Ds£prÜÙ£BaÍäìÑÃN&`¼ùàÄ„çë·jB!šµë^³wØs'cÂÜ—X?šìu<6¦<üÞá=yðî‘õVY!„ÍŸ_Ç8ʳNóÍGOYöÆÜÑÃMFŒxs§óèÑ[jó¢¼+…ä§rþð%”J%(Àh4Ñyp{4íÑDÖcó„¢yË)(Eo¨2™T-•’Ð _·.+aú`€uçヹ£Ñ[=*®?šEµ#žÊN'=»¤JÚ±ÍÉä_-ÄËKIX„7~~^xy©P(”fæsêäUTþ>ÄÞÕÇåÆ!DK•SPJna ɇvºœ§OÜxŒFS•ÃÊÊÌ/`Ä­ÓKç㹓QÜÌX¦ßªñx‡÷Àh2Ù$þ¼5™‚ÌBüý=‰hëOHˆ …µZEx¸‘QôéÎþ}—ÙüÕ/ ¼C:!Dë•WXFv~1§’¾cüm3èÙAã4ÏéKyìüúKz ¾M [—7ú Ì#ž ªv:ÆëÿWØ[¦š˜ð¼þ7§åLŸïRY€¥¼éã-ùo>f¯¬›xc;Ò1`û]Oõßñ€í4Û¥cé( JJ•ùß÷»/0åöøû{‘üK&eezŠŠ´ää”’ŸW†J¥âÒ¥_h›œBPä½N/uuìøib:k˜>õ|½¸šSÌÿö%·ÀQ‘6¯=wáE‘’^@Vn¡šªOY¹–ìkWyäξ¼÷ÕqúßbÛùýù$NÎŽC¸’™M„t>â&J«‰%ƒÑîµÓü•ŸÅöÊzgÑÕæ}|É&›s:*këÎý–²_²‰Ûǰ{Ì^Y7ñ¾þXÙéè¯ÿSr½Cr8â1ZU¸èZ ¥ùyY©žÒR~~žlÿæ,E1f\g¾Þr†¼Ü2ÊJ+P*Uœ;”n=´M  ã¸š_pÑüääp-3¥JIûȶøûùPV®åRzJ¥ ½¾‚¶á\ÍÌF¥RÑ¥S{TJ%z½žKW®RZªE©TÕ6‚ @ó0>/¿€«™Ù˜Lª!<4„+W3É/,B¥RBˆ&ˆ§R¸w\wútgÓžÓ”éôt‰ æ/ÜÊÛÿL$3;—° ¹yæòò ‹éÞþ®æs%_‹1ÈT¥þ`B¯×Û+ŠœOöp<ù,ÁA´‹Œ@Ä¡“éä•ã¡òå\ê¥*m(+×rùÊ5Ô^ž—  $ªmDþ”DcR*ëØñ(–ÏâÚ”eÓñ¸XÖ;‹îàñ%›ªtjÕ•u5¶NæN§²ãq}ÄcîŽøúz2ãž>ôìŽÚÛ¥tZF£‰»gôáë­g8zä*ÓNѾc!ÇŽêèÛ{pu=£hAÒ32 Vëyð¶>h+ lüáeAau¥Ü5"š ½_/¾=tž„‰=)*)çÿöž£S§hrr²Ó†¨0*ôF¾>BžÉDIi):îŸÜ¥BAÒék$%ŸaxŸú¼m…žƒ'¯’–~¶Á^ îÉòà™„x|½=ñP)Ùqè<Έeî[_S^^A°ZÇC·ßBN~ ~^˜LFL&—®\«Rï€Kû~=¾=:„qôL‡Ï\ g÷NèF¼FÛ?ÏÅÜ··Ò-*˜ÉC»òŸ¿îÏ«LJ“˜:¢;×òJ9xæ*á^øùxñcr:í#yæw#˜óúf:EòÜCø×Ž•éP(<èéÏ}nᣯŽàçC„&€äÔ‹ŒŽïÂÇ.’0¥_8Ç—Yþ§I|¹û½;…ѱmºò|žùý$Ö~ýÞj¢Â0””–ã說RÿGÞÞJT˜yäÀ¾ãiÜ[Êu?“š‘EvvÃnéϵÜŠËtvÚð?ztfZ|öþ|‰Ä—˜{×`žý`yùEøùÙ¿·B´Ö#‹¢R]­òW~~:*kXÜ@Ëó‡ŽÚ}³²†Å ¬2Òy|É&†Å ¬r>ë²jÊñˆÇz¥P T*¹”–O‡ŽAxy)ùà½Ñiõæ‘BÁ`$++—rÝ9~þ)ƒ‘ÃïÆd4âî_ÝL´9yùLОŒœb<” 2óKÐø{Ó6Äæ7è?wüÂÔáÝñöô`ûèL„ƃ!‹kùZ§1j@4a>ú©ñòT2<¦#'Îg²%ñ>>Õ]RÑBx¨”–烑CG~rš'nPT×ó)¯¿ì•eíæÿ[wµ¬CG~ª2½V9í7¨?€Ý²jÊaÇc½b!¼W9g2Ù¼é4ƒ‰øQÑ̼·//‘“]‚ÑeZ ŠOsôèyâ‡ß…ɨLø…ûW·úA´ƒO%¾Þžtm¯A©4Oq©<Ôæ]-L&”׿>4J•Ò| ³´Ú ¢#|xúwñ|²å?éôôïÞ…¼½<(*ÕâãíMhH0:]9¹ù¼¾f‡tážq}ø÷·¿°çÄ5RÒs™Û™óWòxâ·ÃhâOI™Žgâ1M\¸R@\ïv—Uà£V£ÓëÐ_Ÿ:0™Lvëïá©ÆdÐYÚèàGI™µ‡ÊfÚÁ„‰Îmüì¶¡²ãÁžžžŒF” &£Q~/ZÛïRÌïç ¬: ¥“ÞÞ÷2¶úÕuh®–uäØñ*#ëi·Ç—lbЀ»eÕ”Ëßñhz†“}:…¶üï4'N\ã¶Û{ðë_÷Åd2‘––Ç+¯~Ä… ©Ü>å0©)È/Ç„ô —ïxZ8_.\ÉghŸv¬ýægJÊ*hˆÉËôóêõzº¶ árV!Û<ϯo½qÓñ¹Ë¹ÌšÔ£áGŽ [t[4A>\¹z%ÿJäž±½Þ·=ß&¥q09ƒ;FöàâÕ|Î^Êå§”k ꉧ§ŠÕ_!2*’”˹ŒMEEÞ^´ Àh2áéåi·þ u*ÌO¿®møåB¿ŸÜƒóWòñññA§»~¯› :GÛmCUæ_x£É$¿­@mVµ¹º­’£Ž¬¦e¹Óé߯o•i·êʪ)—G<!=ÃÉ?›R¥@§5°ßE’“3 óãàÁ½¤¤œcݺ—‰ŠlË’·öb4A»‘䯺V@DÒ™óôïÞ†Oþ|zƒ‘«¹Å<óá÷EY^§T*,÷¨”濜¼Ô^ì;~‰Û‡wå‹×ïárV‘åõ‡Og2 {Ÿüy:“‰ï§²óð–ÿq’å烇 #Ðß—ÿñ÷ßÖ„)ý¸_© ¨TË›ëö‰Ÿ¯'RÎsü|&kž»“2m…eºÁ×LJ¤3™Uêÿì‡?b^úè¯b ô!íZ_í9CÇèNšo3P)IÏ_ßú/½¸€ˆˆ6œ:™ÅÙ39DÆ;T¾(•J.^¾LYI1J%Þ¾þ„†h8!_oJËõ´k‰&Ø|ŽAo ýJùE…x*• ºFw¼ñ]Š RÓҨЕSa0/˜‰jÛ–ÐPMµõ/++çôÙÔjOÔ*%&Ý:wFå¡àÔ™"ÂBñ÷÷·Û†²òrKûΤœ',DCHˆÜTÝ„úòÍÿ60zâ—¹œO«Ós*é;¦L»‡ÜÂR·. Ì£¡ë;ü (J¯ÿ+±z^”;ìx.\ɵ{âòÜR®ýx …RJÿÛò£GOE†V«ÇKユ{Þ!Òé´F&£ “É„ÒêËK×2š—uÚËg4™Àd2ï„~ýµæ¹kË ÍªeaD©°_ƒÁ`qÙÙ5ªÚú›À`4 R©jÕÑ:ùùzãé¡dÇ–/hßk8ÁAη§É/(æò©D&NýzóªKw. ÀhÂåŽÇõûx¬xi|è0¹…çrH>|˜ÛfàŒ  ñA}½Ã‘ùëVêúêµúù+仩L…RyʹºóT_–B©4G;´—î þ ¥Òy»µA´:E%eøù¨Û v~ý%—]Ì7þ¶huzJÊ´n_–™ë©kôÏͺ„0´Ë¤çBˆÖ¤¸´œÐ`¦ÝåúÖaÚ =ÅV# w/Kagö :N:—ËBá@v^q‹.«ýŽýާW@6·í©—Ê!„hzd³Ã…×U;âùê¯÷’›“ €§—Ú¥“¸ôºfËQ—.ÃC!D(**rþ"*tZ.¦¦’”t˜¬¬,‡¯U©T„„†2xÐ`¢;u²IK¿|‰¿}´Û¥s:œjBѲ]ɸÂþý{?~ºtA¥RYvÕ0aB_¡7?7).*âÚµkìß·OµQ‘Qµ:gƒ®ù|饗¸÷^‰Ã#„îjÛÖ­ôï7€î={¢T*1èõèõz***¨Ðé(//£¬¬”ÒÒR tîÜ™m[·Öúœ 6âÉÉÉáÝwßå§Ÿœoˆ'„¢iTèõ byàêŠä>·ÜÂÏÇ×úœ 6âY»v-wß}7QQµŠ !„hx&“ µÚµïñ+©Tuºm¦Á:ž-[¶0sæL›c …‚6mÚðÔSO1räH/^lI+,,dÆŒøøøGZZš%mÛ¶môë×///:uêÄ'Ÿ|âRZjj*“&MÂÛÛ›[o½•ÔÔT—ÎwõêUFŒ¯¯//¼ðBÖ§ !DK`4ùç?ÿU«àuÎ4XÇóóÏ?3hР*Ç_yåÞ~ûmøì³Ï,ÇŸ}öY"""ÈÍÍeÆŒ,Z´È’–Ào¼Aqq1ß}÷ßÿ½Ki&Làé§Ÿ¦  €»îº‹‡zÈ¥ó=óÌ3 >œœœtºšnBˆæÌh42ïñÇ™ûÈ#,XøD½w> Öñäåå¡ÑTÝ1!!Áò˜žžn9þå—_ò /àããã>ÊÎ;-iÞÞÞ$''söìYÚ·oÏš5k\JKIIaüøñ¨Õj~øa]:ß×_Í“O>‰óçϯË!„Í‚Ñhä±yóØ¿?üãã$&&òÄ‹êµói°ŽG£Ñ—Wuwk___ËcEE…åxVV;vD¥Rl“÷‹/¾ààÁƒL™2…>üðC—Ò¶nÝJŸ>}ðððÀÇLJ²²2—ΗMDDáááõp5„¢y˜7o?ÿü3»¾ûŽ×^}•mß|É'xê©§ëí Öñôëפ¤$—_ß¶m[ŠŠŠ0 ˜L&›Þ5..Ž/¾ø‚K—.ñå—_òì³Ïº”öàƒòúë¯SZZJaa¡Ëç ãÚµkNo¨Bˆ–dòäÉüoófËŒ•FÌúõÿåÖ[ÇÕÛ9¬ã™6mëׯwùõ3fÌà¹çž£¨¨ˆ´´4î¿ÿ~KÚÌ™39~ü8:ŽÂÂB¼½½]J+//'<<­VË«¯¾êòùn»í6Þ~ûmÊÊÊXµjUmš/„ÍÒwÞYåk’àà`n¿ýöz;Gƒu<³gÏfãÆ6ßã8òÆo••Edd$#GŽdܸ½ëÌ™3ùõ¯ŸŸ¯¼ò ëÖ­s)méÒ¥ÜyçDGGÓ¡C—Ï÷—¿ü…ÄÄDBCCQ«Õ²ªM!ê‘Ý@p?:W·êÝ÷ë¼WÛË/¿Ì/¿üÂÿûߺֳÉäååѽ{w²³³e¯6!„Û©ë^m«W­àégŸÃ`0˜o"51^ÿg2Ñjµ7þo•öÙgëøs±”cÞ«í#Þyï§àtËœ_|±Ùv:O>ù$ÅÅÅüíocìØ±M]!„h1d“Ðj„……I·nÝøâ‹/šº:BÑ`þúæëz¾zíx&¿º¥>‹kb}ñÔ¿xäó“ÀIxåÕ¿¼Eµ]ˆÖaû ÓªMk-‘”ÛE¶%¦_<½¼P©T.ç;tð@­ÏÙ SmB!ÄÍdªMÑjÜ>¨#Oì—G ›¡i^¤ãB´ czðħ‰œ»ZèüÅ¢ÁÈT›¢ÕÐø«¥Óq:âÙ¶x*ù%:vü|™>í5ü”šÃ§»Oà«ö`Ñý‰ëAjV¯®O"³À¼·Zl×p~?¡7ÂüÉ-*gÝgÙ~ì’Ó´6Á>ÌŸÚ˜è’/å±tóO\Ë7—©ñWóâÌÁtiȆÄóÌÕÝ2ôvT!Dó³mñÔ*ÏeªÍlçE?v^L©EN?ª_šáX£Oµ­Ý}š?NaÕ–ãÜßÍÒñÄÔÁY8½?O¯3¯ÄxèÖ^$_Îãéuùݘî6utT!DóSÙÉl[Õ6oÞ<>ùä¦OŸÎæÍ›-ÇW®\IHHûöíc„ ,Y²Ä’öì³Ïò§?ý‰ü‘¿ÿýï>|Ø¥´ßÿþ÷<ôÐC$&&rë­·ò 7–°¬X±‚þýû³oß>***lêè¨.Τ§§³cÇ,XÀòåË–9vìXvíÚeSÆž={èÖ­¡¡¡ÛçÈ’%K0`‰‰‰ÄÄİtéRKÚñãÇ-S ÖÏkÛkIII|úé§ìܹ“½{÷:¬£³¶Û«›+õ\ºt)±±±v¶Õ]guÍ›³÷¼h\ÞñLŸ>ÝòhýWø·ß~ËܹsQ«ÕÜwß}|¥-^¼˜Å‹3zôht:Æ ³”LNNáááäæÚn—ã¨.P»UVÕ•©R©ˆçý÷ßgôèѬX±‚ Ñhœ¶ÏQ]ÉËË#44”œœ‚‚‚ì¾Îd2Ùí@jÒWØ«§³¶×VPPMÛ­Uw]ª.BˆªÜf9õ„ Xµj%%%dddðÜsÏYÒžxâ Ξ=KEEÅÅÅ6|ŽÒ´Z-NLJ~hs¾Q£F±fÍ´Z-Ÿþ¹Ëuiˆö;–ììlfΜIff¦ÍôŽ£ö92lØ0Ö®]‹V«eíÚµ :´Êk‚‚‚øå—_ê¥ µå¨íµ5bÄÖ­[‡V«eݺu6iŽ®KCÔEQ•Ût<úÓŸÈÍÍeܸqÌž=›!C†XÒ&MšÄOù$üã™4imÛ¶µ9ßüùó9vìñññxyyÙüÕï¨. Ѿ‘#G¢Ñhˆ'88˜ &¸Ô>Gžxâ ’’’6lÇŽcÑ¢EU^óÀ0gΗWø4ÄuqÔvg«ïª³páB:D||<*•Ê&ÍÑuqT!Dý±7Çâùø£su«Þ}ŸÜœló/×þʾxñb=V­ñ2uêTöìÙÓÔUB4"G̘LÍ#è}QQQòÏ[²™Ó'SXZaù.ÇüXõ;žÊã!jØÏò?N²”“~ùûè#Þyïƒ_e@éõ%VÏË€òzýŽ'99¹>‹kT~øa³®¿B4õÚñôéÓ§>‹kpÿøÇ?øðÃ騱#Ë—/§}ûöM]%!„hñÜfU[SxðÁyðÁ›ºBѪ¸Íâ!„­ƒt<õHö½mذ¡C‡ÊïjkÕSmBˆÖ¥2,‚ìP]U€·“ “шÁ&£ oO%&“yU›õñº®÷“ŽGÑjHXû¾Ü¼­QÏרOLL !!!Üyç;vŒ!C†0oÞ<À¼åþóÏ?ÏÞ½{éÖ­Ë—/'220‡>Xºt).\ ""‚Gy„»îºËiÚ•+Wx饗HJJbÀ€¼úê«DEEæ7àüùó9uê<ð~ø¡e[GuqfåÊ•¬[·Žž={²|ùrËÞe™óÉ»ä IDAT™™,Z´ˆ'Nзo_–,YbI»9B¦õÿcbbxñÅY¹r% …‚W^y…±cÇ ×ëY¾|9›7oF¯×3wî\fÏž]ç6ÑÒXO­U>—ªÍÆG—Ó¯?ž^^Un¸väÐÁµ>§„E¨ç°ƒ}ûö˲eË,Ç…)p¦ºíÿß{ï=Ο?φ ؾ}»Í¾duiƒ-„Ep/¡žÃ"Tn¹ŸÀþýû-Ç"LÁ¦M›xöÙg‰ˆˆÀßߟ ÔK„¢!IXê7,‚u™Ö¡"LAVVVµ7½ºÂ@!š‚Û,.h)a*·ÜÏËË#88ØrÜQ˜¥R‰N§ÃËË‹¼¼<‡×éæz¦§§Ó¡C»iµ a „ Émîãi)a*·Ü_·n#GŽ´w´tt4[¶lA«Õòé§Ÿº|®éÓ§ó—¿ü…¬¬,JJJxçwê¥ BÑܦãiIaâãã9tèóçÏ·s´å¢ &Ôh¿¸Ç{Œ:0cÆ &L˜@@@@½µA!Š„E@Â"ÑZIXø¿õÿ®õrêiwÞmù¿„E¨ ‹ „CÂ"HX!„hTn³ª­)HX!„h|n³¸@!Dë ›‹‰‰±üBÔ„Ep­zª­9°Þ,TQ7Á=ȈGÑjHX÷ШOLL cÆŒaÙ²eÌž=›Õ«W[ÒŠ‹‹™?>±±±Üwß}dddXÒöíÛÇŒ38p “'OfãÆ.¥]¹r…‡~˜ÁƒóÐCqåÊKZvv6¿ûÝïˆeõêÕ6# Guq¥kÖ¬aâĉÄÅűfͧeÆÄİråJbcc™5kYYY.kòäÉœ?ÞÒžQ£FUÙi[qcÊÚd2ÉÔµ°õ ))‰O?ý”;w²wï^—Ê´§°bÅ —Î3dÈË®Ó;vì`̘1xzzÖ¨®B´Á½HX„z‹æÍI£¢¢ äã?v©Lëp ••3C‡µ”³}ûv¦L™R£z !DS°ÔoXÀY´&eZ×%??¿J~{† ›o¾Iff&çγÙ}[!ܕ۬jk)ajÓ>° §`2¡’B¡Àh4¢TÞ¤FDD ÑhXµjcÆŒÁÃÃm~œBQ-·YÕÖRÂ"Ô¦}`NaĈUòGEEqäÈ‘*LJʦM›?~|ë(„Ám:ž–¡¦í«TNaáÂ…vóÏ›7¯ÊjœÊï°†^ç: !Dc°4}X„˜˜˜Z¯²Ù²e Û¶mcÕªUõ\+!Z> ‹ ašTS†EøÏþSëswîÜ™¹sç6ëk/„h]$,‚„E¨íˆ'&&†¸¸8>üðC¹GÑl´êePî¡¶ÓlrœuóÝwß5uZ%·Y\ „¢uŽGÑjHX÷Ъ§Ú„­‹„Ep2âB´Á=HX„z ‹Æ 5j£Gf÷îÝNËœ6m)))6åTTT0fÌrrr¶Oá ‹à^$,B=‡EHOOgÇŽ,X°À²‡œ£2ÇŽË®]»lÊØ³gݺu#44Ôaû„®‘°îEÂ"ÔsX„9sæàííÍ´iÓHMMuZfeÇ“ŸŸOÿþý)**bóæÍLž<Ùiû„¢9’°ÔoX„ÀÀ@<==mÎY]™$--íÛ·£P(ؽ{7{÷εO!š#·YÕÖZÃ"¨T*âããyÿý÷=z4+V¬`À€h4§íBˆæÈmVµµæ°cÇŽ%;;›™3g’™™i™fsÖ>!„hŽÜ¦ãiÍaFމF£!>>žàà`&L˜àRû„¢9’°4}X!DÓÈÊʪ6mܸqX“Ú“°Íxkþ¦ ‹ „háááM]…VIÂ"¸AX!DÓp4â ÇmVµ5w ‹ „­‰Û,.BÑ:HÇÓÈ\Ù#Ê]÷‘ªÜãÊ]ë'„3Á=´ê©¶¦Ðœ÷ˆª¬»üÒŠæJÂ"¸ñ!Z ‹à$,B=…EpÞÀÑ4Uff&³fÍ"66–•+WÚ¤Õ6D˜¯÷š5k˜8q"qqq¬Y³Æi™111¬\¹’ØØXfÍšåòªŸÉ“'sþüyÀ|mGUe×o!šŠ„Ep/¡žÂ"8 oàh+ö¥K—[ï!’’’øôÓOÙ¹s'{÷îu©LƒÁÀ¾}ûˆeÅŠ.gÈ!–·wìØÁ˜1cðôô¬Q]…h(Á½HX„z ‹à,¼#‰‰‰$$$ V«¹ÿþûë\k‹/&**ŠÀÀ@>þøc—Êœ={¶åºTvVÎ :ÔRÎöíÛ™2eJê)„h=$,õÁYxG ,u ­s]¬EDDT9æ¬Lëë’ŸŸï´þ`ñ¼ùæ›dffrîÜ9›À…š۬jkîaœ…7p$((ˆ¼¼gu™3gÞÞÞL›6ÔÔTËqG¡„¢)IXê7,@DDD•cµmŸ³ºàééiÓFG¡„¢)¹Íª¶–¡¶í«mXG¡„¢)¹Íª¶–¡¶í«m]…ZBˆ¦ä6OK‹PÛöÕ¶.ŽB-!DS’°HX!Z+ ‹ aš”„E¢õ‘°MCÂ"HX!Z- ‹Ð4ÜfU[S°BÑøÜfqBˆÖA:7'{J Q$,‚{hÕSmBˆÖEÂ"¸ñ!Z ‹à$,B=†EÈÌÌdöìÙ 4ˆÙ³gÛl‚ZÙ~{!œY¹r%±±±Ìš5˦LGç›7oëׯ`ýúõÌ›7Ï¥s ÑIX÷"aê1,Â’%K0`‰‰‰ÄÄİtéÒ*¯±2ÁƒÁÀ¾}ûˆeÙ²e.ï™gžaݺu”——³víZžyæ—Î%DK$aÜ‹„E¨Ç°`öìÙ¨ÕjxૼÆ^Èg*ËLHH`ÿþý.¯}ûöLž<™Ç{ŒÛn»MîQB¸ ‹@ý…E¸9AAAA•öÛ ™à¨Lëú…„„Ø”éì|S§Nåƒ>°é !DSs›Um-!,B`` M(‚   —Ûïhè_Yf^^ÁÁÁ.Ÿï£>bÚ´i|ôÑG¼þúë.×E!’Û¬jk a† ÆÚµkÑjµ¬]»–¡C‡ÖæRTQYæºuë9r¤Kç;uêÉÉɼöÚkœ8q‚Ó§O×K]„¢®Ü¦ãi ažxâ ’’’6lÇŽcÑ¢Eµ½UÄÇÇsèÐ!æÏŸïÒù–-[Æœ9sP©TÌ™3ÇfQ‚B4% ‹€„E¢µ’°¡IIX!Z ‹Ð4$,‚„E¢Õ’°MÃmVµ5 ‹ „Ïm!„h¤ãiÍmëõæRO!ꪹýn¶T­zª­¡ÈÖëB¸'ùÝt2âi²õºîI~7݃„E¨Ç°޶^¯MÈ„iÓ¦‘’’b󺊊 ÆŒCNNŽÃöUWfe]fÍšEll,+W®t©mB4gÁ½HX„z ‹àhëõÚ„L;v,»ví²yÍž={èÖ­¡¡¡ÛW]™K—.%66ÖnÛ…h‰$,‚{‘°õÁ‘Ú„L¨ìxòóóéß¿?EEElÞ¼™É“';m_ue$&&’€Z­æþûï¯sÛ„¢&$,õÁ‘Ú„L8p iiilß¾…BÁîݻٻw¯edã¨}Õ•i¯.BјÜfU[K‹àHmB&¨T*âããyÿý÷=z4+V¬`À€h4§ís$((Ȧ.BјÜfU[K‹àHmC&Œ;–ììlfΜIff¦ešÍYû1bëÖ­³„ZBˆÆä6OK‹àHmC&Œ9FC||<ÁÁÁL˜0Á¥ö9²páB:D|||v£Bˆú a°B´VAÂ"4) ‹ Dë#aš†„E°B´Z¡iÔkÇÓ·oßú,®Á-[¶LBB !D#s›ÅB!Z‡íx^zé%î½÷ÞjÓ?í\õ&JGÎüKÇç·Ö8Ÿ€moú»üºÊBѬãÉÉÉáÝwßµÜÜYŽ­(ç¶õ~ÜÁùÍ—õ¡5vp“Ÿ-fò³Åv>£ÑÈÂ… Ñh4h4-Z„ÉdršO¡PXþ !š—ëxÖ®]ËÝwßMTTT½•Y–e"¤ÜwÒ’¼ûî»üøã$''“œœÌþýûùàƒœæ3™L.uPB÷Ó`Ï–-[,[×T*½fdëŒb>ë]È‘·ËmÒ*ŠMìš[Êg½ øßÅ”\¹±÷ا Ì£“ÕóëŒz8ôZ9ÿTÈ¿ú’üw­M>kÖÿ¿òƒžMSŠY×½€/F‘²^Wõ|T=_éU#_Ï,f]¾žYLéUÛzþ'¶¤7Ëùzf1G—Ú¶±:e9üï;ØñV(‡þy;e7î‡2+8µóv­ˆfçòv\üqµƒ’nÐgppí­|ûv8gw¿d“¦×qì‹ß²ãí0׌¦¼ðRëùÃ{·P’sÚ|î’k|·¢#Fƒ®º¢,>ÿüs^ýu"##‰ŒŒäµ×^“Ý„há¬ãùùçŸ4hͱ¤7Ëi3ăß ÀxÓnüIo•ãªà7ljžâÉá×o|hß!È2½fýÌÓoç ܱ՟{öP–íÚ_Á{”2è)of%1éŸ~\=hpé|‡ß('b¿ý9°~Ó¶s¸Ð›iéz·ç7ºràð¿¦ÑyØBÆ?q…ˆÓ9±åQKZÊž7(É9Ãð‡óè)´%™JºáôwÏ¡éϸi¶ÀÙÝ/àåέ .ѦçœÞùç:×3$z49©ßpíÔWDt¿¥ÊËi™'Ož´yŸ •ZAþY… øE*¹ÄÇ¥|Wöêéó{s=ûþAÍ•=¶õìr·§åÑz4äȨ¹Ç í4¥JM‡s(HÿñÆùŽÿ“Þ—à…‡:€ã^q©Ìœó;‰2•‡†üÑ&íÚéMtù *:z˜œ‹»ë\Ïè1䦚˹vêKÚöšáR™ÅÅÅøùù™Ë5Š€€Š‹ï;&!Dãk°Ý©5eäJºÞ¡æ/ƒ++•çšØ_&0±¿™eYFüÛ×¼ÿû/'Þ×rr]¡‰¸ç¼éñ[ç¡ßÜ]¡íËÃGay4ºÖw’un§wþ™ÒÜL&ƒMš¶ø*>ÁÑÕæµ^}f½( ¢</_ó]Ù^~¶wgëJ³ù~u/À„©ÛQ=C;áÔŽEh‹3(Î:Ihg×¶ñ÷÷§¤¤„€€öìÙCAAþþ²¢Nˆ–¬Á:ž~ýú‘””ĤI“,ÇÔÁ ÊsMø„)(ϱýÀö W2c—?*ïš­Rò WR|ÙH@tÕÎG¡ƒT^æŽÍZX?cß÷àÊ=ß?^j¿ã1aó¹ìdÛ¯Àº¯ª:±åúLYAx×) :v.½±á§Ú¿ eùiøj:ÛÍ[Ý 4OŸ*J³ñò‹@Wb{w¶Ú¿ #çþ„ÊÃÑ(OÉd@¡¸±˜Ãq=#ñò ãì÷/ÞývJOZ½{÷æèÑ£Œ=€#GŽ4»0„5Ó`SmÓ¦Mcýúõ6Ç¢F{pòZ ZlDOöàÈ-%&J®ÙûD™Kçéz·'?¾RFY¦‰Š“Íú”œß¨ÃPn"ùcÛóí~´”¼ÓŒæ… *;û ªƒd·ýË>2ރ俛ÛðËÇZ"ãëÞwõåxù†c4è8¿ï/¶çëûN}û$Úâ«èuÅœýÞµ©¶ÐÎãI=ô.F}9Ù.Hˆèyg¿½®˜òÂKÿßÃUòûG“wÉ6Jª£z„D%ýçÏiÓcºKu˜5kÏ?ÿë{xä~!š—z ‹`óÿ—_~™_~ù…ÿþ÷¿u­§h2~ùWO~ÉÀ{þÓÔU¢Õhõanöâ‹/6dñ Z.û„výœ¿XѪÉ&¡¢^ìx+PжÏL§¯B´n :â­Gcîï&„hÞdÄ#„¢QµèÏÎ+,ÏÇÏŸß„5i>òší\±¢YüìÕÓÑu©í5k.×£RM¯KM˪k™¢ùp«OåÎúWùÿ+Vðýûïsä‹/È»äÚ¦–ãçÏo’7îÍõoNêz͵½¹|ˆØ«§£ëÒTï³ÆVÓëR—ó4Äõ¬îóE4¾f3â?>z­–üôt’·o§ÏäÉhÚW½—D!„{k6€‡ZMX—.˜ŒF.>Œ¦}{ô:ÉÛ·““šŠh(1Ó¦á}ÓýDö”ròÛoÉOO'(*Š>'âÀ¾üƒwÝ…_Hº’¬[ÇÈ?ü¥“5îÖIU>¯üËM[\̉­[)¼vÀ6mè{ûí¨]Ø“Ìd4’²w/'Ob2éþ F¡s.\àìž=”æåUɧéÐÓ»v¡-)¡8'‡Žë^çòr<}ÍûÁyùú¢/w-:©®¤ï ûû³9+Såáay4mcUæóôõ¥¢Ìµ Yk{­qÖµy»&¥JesΘiÓ¸xè—ŽC¯ÕÒ}ôhÚÅÄ8µ-°ä«(+óš|7_3W¯uMÔ¶ mÚ3m¹/r|ëV§B©$´S'ή¬tóuq5Í›ŸƒU=j{­½¯=¼¼ ãÂÁƒ„…Yþxs–ÏU5ùƒêÛî¨Ì†xЯ׬¦ÚôZ-Ù.pæû ¢[7ÎíßA§£¼¨ˆämÛªäó $ÿ¦ïŒž¾¾˜ .žS;w²çoÃÓÛ›.ÇWÉÛ5>žŸ6m ÓY¾Xì>z4?oÚ„Éd²›'äzÇS›i¶Žƒsdýz z½å|ÝFâÄÖ­ì~ï=ó_ëVÓŽt6Œ”={8¸n&“‰ÎC†XÒj[f¥ï?øÀ¼¢èúÈÁš½kæÊµ¶×vG+ÞjÛ†ˆîÝ9±u+¥ùùø…„ÐgÊ—ò…vê„§!:áéíMD·nUêf¯ž•ì]WÒùþƒ,« ­Ërv­íqö¾Žæ|bb•zGùj{]œÕ¥º¶;*³¶×E¸— ‹Ðœ]=uŠkgÎÐÿŽ;šº*õ®¹Ý1/„¨^s ‹Ð¬¦Ú‹Ñ`àʉ6 !„¨ÒñرëwhÓ³g×D!ZžfóOcjéÓP-½}B÷&#!„J:žðÑG`sÿB¡°üBˆÖ¬Yu\‰¤§§3räHÔj5#GŽ$ÝêníÔÔT&Mš„··7·Þz+©©©UÎwós!„pgn×ñØ›Në¾¼7Ý—÷®òÀ§›¥gÍ¡Š~*ÂïªÀ&#t}½'>]}Éù_¦åxöÿ2QxÐõžøõ $kÓ4WØ›6³žN«ÉÔÚ¢E‹1bùùù :”'Ÿ|Ò’6až~úi ¸ë®»x衇ê|>!„hJn×ñÔ”ow_ÊΔP|¬ÿ6éš±!(<hƆPr²Är¼øç"B&…¡ðTø ï¿ÿ>S§NE«Õh¯ØoÇ/„MÅí¦Ú-™Vùª(¿T5h™Ow? à߯ê&¥yßçbÒ›Èû>ßžþ–ãþýÉÞ’‰QkDŸWÁµ^©Ÿ8Ñ©S'öÞjz„ ,_¾œòòr–-[Æx«Àdåå儇‡£ÕjyõÕWí–ÂáÇ´ÞBQ_Ü®ãq$x\(—ßM«Ò9ùv÷Eᡨ2Í€ Î={š²”R¦GX‡N ÇPbà g¹´ê">Ýìämo¼ñÓ§O·¼ýöÛüðòÿ~–,YbI[ºt)wÞy'ÑÑÑt¨&VÍ¢E‹;v¬Œx„ÍB‹‹P”T@ѱ"¢josüì‚“5þÎH!š ‹ÐLz‰ùv§Ù„B¸Ÿfßñ¤MÞ®ôz.¯J%eÑ).¯JE_ ·ÉssÖÏ« §P[ÎÂX³¹ôæçà8œ‚#,\¸ððp4 Ë—/w©L…BA›6mxê©§9r$‹/¶IûóŸÿŒ¯¯/Ç'##Ã¥º2cÆ |||ˆ‹‹#--Í¥¶;ÊWiæÌ™lٲťz!Ûu<ö¶ÌÉÞœ‰O'º¾ÞÓkçfeçJéðÇhº¼ØÒë»Pgu ïξt}³'ÞÑ>doºær=ª §àR^;ÓJŽÂ8+«ºÐŽÂ)8òÒK/qêÔ)Ž;ÆÅ‹¹víÆuqVæ+¯¼ÂÛo¿MBBŸ}ö™Mš^¯'''‡Ñ£GóÌ3ϸT—gŸ}–ˆˆrss™1c‹-r©íŽòU>><úè£téÒ¥Þò“ŸŸïRyBˆÆãv#{÷ÞJô6á ì©ìtlò•,ù<ü=0”¹V ºp µµuëVúô郇‡>>>”•UÝì´¦…S€êW“eddйsçZ•éëëky¬¨°ÚZ™/<<œœœªØ“••EÇŽQ©TW9_]òåççìRyBˆÆãv=*?ôEæC‰ë€ÊW…¡Øüz}±•Õ>DJóv;†âªRe¾›Ã)ÔÖƒ>È믿Nii)………¶õT©ÐjÍỳ²²ª-ãæ)¼Êp @•p •¯··¢¬mÛ¶6ß1Õ¤LG*óeggR%½2$ÄÍu)**Â`0`2™0v˶×gù>ìòÈKÑxÜ®ã±÷_o?ò¾ËÁTa"ÿ×—Çúöð³„EÈßk³{µW˜EI˜*Läí®ú×yuájËQxƒîÝ»óùçŸSVVƲeËìæ·úÀQ8GøÓŸþDFFEEE<ÿüóu.°ä[±b“&Mª’n/$ÄŒ3xî¹ç(**"--ûï¿¿J>{mw%ßúõë¹ýöÛ]®¿¢q¸]ÇcOØôÊSË8÷ÜiJ—£…†ÝAÙ¹RÎ=sš²ÔRÂî¸!lzÙÿËäÂËgñ õªš¹šp µå(¼Á_ÿúWžyæ:tèP혽ЎÂ)8òòË/ÓµkWbbbèСƒÍtTmËó¨D£Ñ°k×.þú׿VI·â7Þ ++‹ÈÈHFŽɸqã\j»³|—/_fãÆÌž=Ûåú !G³ ‹`,5úÆ9º¼Ö£ÁÎ!ájN¡PÔé&Ñú6sæLúöíË‹/¾ØÔU¢A5ǰÍbU@ö¦LB&‡Qp Ÿn¾M]áæÖ¯_ßÔUBT£Ùt<*?^<‹g˜‘sÚ;Ï „Â-5›ŽG3>ÍøÐF9—L³Õœ;M³ !\—žq•ôŒ«zÎfÓñ!„hO?ûœÍí&£Ñüˆ }…þúq£Uº‰>x¯Ö瓎G!F££Ñˆéú£ÑhÄd2¢Õjí¦ÕE³XN-„¢åŽG!D£’ŽG!„ÅW_}UeïÃüü|¶nÝZoçŽG!„ŶmÛ˜6}º¥óÉËËgæÌ_óÝw»êíÒñ!„°X½z5ýúõcì¸q<ûç?3yÊúöíË[oUÝ«¶¤ãBa¡T*ywõjâããy÷Ý÷>|8K—.A©¬¿îB–S !„°¡T*YýÎ;ÄÁÝwßPç%Ô6å×[IB!Z ¥RÉoû›zéXÊ®÷…B4 …¢Æ‘ }•ÈÆ5!Büÿöî>(ªzàø[QFsy°”[âè…[ó3›4ç†#ÙN&dXã8¦š"Ц¤ùÓÓÌ´IM\ÇeÊÒ‘ñ§ãd>ü4(¼ê/1ES|J¼ YYdÙÝóûö¸ËÓ>ñ°Æç5sæ,߳߇sØs>û=ç{Îvb¾ÝºñkÁÏ.å9WT„o7÷¯ÔHàBˆN,jÜ8ŠŠÎr±ø&“©Å÷*ŠÂíßæÊ•+Dyðë¾2¸@!:±þ!Œ9ŠŸOgßÿìÅl67û^‚‚‚ˆ5Šþ!n×éTà¹ÿ¾S…9û>!„Þ£_Èßò7—òÔkðëîër}N÷x.\¸àráB!þºöíÛÇÒÿ^âr>9Õ&ÐjµvçåµÞ£1ZÓ£ÒÎÎÄú?qåáNgmß¾«W¯²|ùòV/»£iµÚÿÌÛ´ÅkOKÕ6¸3Úr‡jKÖö6<°»¢=Ö½5ÚÙV–,YBAAyyy;vŒ””|||X¸p!#GŽtºGŸõS§N‘‘‘ÁÅ‹éÕ«qqqÄÄÄ ( :Ž0nÜ8<òꬆíuÔ–¼¼¼6ùVVV²gÏÒÓÓÕ´æêñ¶}Ô™c\{µ¹¥mÖZû`‡žµk×À;wÈÈÈàƒ>p¸LoqøðaJKþtpJJ «V­BQ–/_îRàiIQQŸ~ú) .døðáèõz233‰‰‰!''‡ßÿíÛ·°|ùröîÝË›o¾Ù*u»¢£Úòý÷ßIPP]º·™GA[o³<ñññèt:t:‰‰‰N-k+¹¹¹dffb0xæ™gX´h!!!¾ÑÛþÝ0úÛ.3™LlÚ´‰C‡0fÌæÎK7'ÆÀïÙ³‡œœþüóOüq¦NJTTT‹ejµZ† Bqq1#FŒ °°èèhÞ{ï=µ]cÆŒáèÑ£„††òÉ'ŸðÄO´Øk}?þø#‹…Q£F±`ÁzôèáÔº7•ÏÝú¼Á``óæÍ|ôÑGÌ›7OM·~»·}ÌHYYY£ƒ¢+vìØÁœ9sÔ@æççGrr2‡bÖ¬YjùÓ§O'==½COGµ%??ŸI“&9ý~­V‹F£!::š³gÏòüóÏ«_tKKKY·ngΜaÈ!,^¼˜~ýúuŸÏ­[·rðàAÌf3S§N%66€_ý•-[¶píÚ5‚‚‚˜6m¯½öšGëÕÒé­–êÓjµLž<™¬¬,ÌÊ•+=úüµ¦v½ÇQ÷¬¥ÓíqÊàÒ¥K¤¥¥‘––ÆéÓ§Ù¸q£Ã<¶]ІoÛ¶ÜÜ\HHH 77—mÛ¶9,s÷îÝlذ••Ejj*ÅÅÅN•yöìYrrr8~ü8ÙÙÙ>|Ø®ìçž{ޤ¤$.^¼È–-[¶ÅZßœ9sX¼x1dëÖ­N¯{SùÜ­ÏÛ¤§§3bÄž}öY5máÂ…,[¶Œ?ü pèÐ!-ZDaa¡GuQQQÁ[o½Ett4Ë–-S]õêUÂÂÂÔ÷†‡‡SRRâQ}îꨶ\¾|™ððp—òÄÇdzsçNÆŽË?ü ¦'''3iÒ$öïßϨQ£øüóÏÕeÛ·oçÚµk¤¥¥±k×.»ß®Y½z53fÌàÀ¬_¿ž3gÎx¼^ ÷1[Žê3›Íäææ2tèP¯Ú‡:üÒŒŒ fÏž @BBiiiN-k+ÉÉÉòä“OpîÜ9ʳ~˜GÍèÑ£íÒ .ÛNVÙÙÙ$&&Ò§O4 IIIN• àïï¯Î+++í–Ùæ;uê”ÓëÉ‹/¾À‘#G¼._{»xñ"‡&!!Á.=22’]»vÇÞ½{©®®fõêÕDEEyTŸ^¯§¤¤„mÛ¶‘M¿~ýHII ººšž={0oÞ<üýý]~ Jk騶èõzz÷îÝ(½á>f»Ÿ;Vß½{WMß±cÆ Ã××—˜˜»ãÀÁƒIJJ"88fΜ©.ëÞ½;W¯^åÆôíÛ—%K\ñå GõÅÆÆâççGll,¿üò‹Óå¶´ÍZƒË§ÚZêö9ñÐTší5›†®¥eÎÔçªüü|¾úê+®_¿NmmÝuOïM*++ W¯^jZyy¹Ã|wîÜhò4˜«e*Šb÷·m>½^ï°-ÖúbbbÔ´†¿Pè ùÚ[JJ 3gÎlt°;qâ999DGGÆ ÈÌÌ$99™ˆˆ·ëëÙ³'3fÌPë›>}:'NT—UWWãïïÏÆ©ªªRþí­£ÚÒ»woôz==ö˜]zKÇ???un{×~AA:Žëׯ7z*sYYýû÷o²¼+Vðí·ß’^¯'11‘ñãÇ«Ë[û˜å¨¾€€4M£/ -ñºk<-5ȓƺSnkoœ5kÖpïÞ=6lØ@XXãÆktÐV¥Å;{ äîÝ»v,00P}ÝÜ:ôíÛ—ÒÒRnß¾ÝèCî¨LGlóÙ4»víŠÅbAQ»S›”••±ÿ~µ'匶Ê×\;ÛÛùóçY³f kÖ¬QÓ´Z-û÷ïW¯ÃL˜0U«Va±XX±bYYYn×gí…[Ù~6CCC¹téC‡ ¸¸˜º]—':ª-ƒ ¢¸¸˜^xÁã²Ö®]Ë‚ ˆˆˆÀh4òú믫Ë)--%$¤ñûO?ý4+W® °°•+WÚ‚Ö>f9ª¯¢¢‚€€îÝ»×( {¢K—.ýL‚W]ãéhÖ ©Ñhøé§Ÿì–i4 îÔÛÑ£G›Ìo=ˆß¼ySM3f ÇŽSó½òÊ+Û2a nPEee%lÚ´É£2­Ž=ªæ6l˜šÞÜéEëéˆï¾û£ÑÈ­[·øì³ÏìÞÓÔº;“¯©n¼£|­uÔSÖsï¶çàóòòì‚¥58Zƒ¥'´Z-:½^Á` ##ƒ#FuŸ‰ôôtÊËË)//'##ƒW_}Õ£úÜÕQm‰ˆˆht=Ó]F£FƒÑhä믿¶[6vìX¾üòKÊÊÊ0 v÷?þøc._¾ŒÉd¢ªªŠîÝ»·J{šã¨¾Ý»wc4ÉÊÊj•€lÕ¯_?~ûí7·ówø¨6o2þ|t:ï¾û./½ô’ݲٳg³yóf’““‰ŒŒl2ÿôéÓùæ›o˜2e Š¢——G||EQ8pà;wîdÀ€¼ýöÛN­»£|Mq”¯¹vz£ùóç³téRºtéÂûï¿ïTž¦¾ åååKjj*“'O¦¦¦†ádzhÑ" î‹Ê­[·˜:u*PwïÌo¼Ñz+₎jKTTS¦L!..Žàà`5½¹íÙ’ÄÄD–-[@\\œÝ²wÞyNG||EQ?~¼:ªÍÓ¶X͘1ƒ¥K—b0ÜzrASç)|“ŒSu”—Õ]l«1ÖÊ#sþÕ\…÷ò¶'dffRRRò—|r«ÚãÆ{ÛGæÜ¼q¯¶nåËÍ[&Õ€¡~ª²y] <ÂmîØÚò`8mÚ´6+[´§ϺuëÚº¢íÛ·¯£› „hÞº¯;xœí¶65†^x/¾ø¢£› „heÍÝáìq»æA5¿äçsæÿœ»ÙÕßߟð°pFüóŸtíêÞø49Õ&„ØéS§¸WYÉÌY³é£Ñ ( Jýí wïþ›>}êÒ µµµTüç?äü̙ӧyÞfT¬+:üÉB!:οN1’> f³³É„ÉdâÜÙß8~ô—Š/P]mÀ`0`¬©¡G„ £ð¤û€’Btbf‹…§BCíî3+>ÿ;WK®ðÔ€PJ®\FúÛÜ0Û?$‹ 7Ò7$G!:9Û'€\þã7®_㕨h|||¨¬¼ÇÉ‚|}}[íéÖx„B¨ú‡„ð䀸tõÁl2ÑͧÏ N¯^½¨©~àñ8@Btzk?û´]ë“À#„Øyã`&ÄŒÌõ#ÚÌ (…šZs݃‘-öé ŸÂí:%ð!D'öt÷?xcx`ýiÅn8µ‚‚©Ö¤§~¸\¡â_¸]§!„X,, U÷õX,zô艢X¨©©Á`¨Âb±à×ÝO}Ÿ'ä>!„ªÒ[·(8qœê~5öÁƒjΜ IDATxœìÝwxTUúÀñïÌ$“^&$„j¨Ò{A,°¢®ŠeÅ],¨(ˆõ§¬]Q°+–UYÛbAQzP!@Ú¤'Óïïa&™L&•ÞÏóä™É=sÞ{ÎLrß¹ç–B!„B!„B!„¢¹QU³¼ºG!„‘RÝ£—‹J*ÀVqáØiOÕoÓ„B4k«?ïjq eIF¡,—8>*®“+ÿù*¾‘ùÇäaõÖX!„Í_@ëþ²óÛ¢GûR–hl€µÂ£ 7{<@YÒ¹÷ŸwpF_âô¢ÜôòÒ 8¾ãjµT`³)´ë‡®e0ºØàzìžB4o9ù%X¬•“ªä¥QâߤcM»z0À1ùøQ–h,ªs  ªr§<é¤eW*Û½,‰¼³hµj"¢| ТÕjP©T”dæqèàY4~ô».ÁãÎ!ÄÅ*'¿}A1IÛW{\'¡ÿl6¥RÂhJ±2óJrùÕ€=ùøR–d4€™ó;3öá·*÷x|#;`S§Â½+’ÈÏ, 0Л¨è@ÂÂüP©TøøhˆŒ &6ˆ„„H6m<ͲŸpÙ5’|„—®Ü‚R²óŠ8”ø'c&L¡s+]µuŸÊeõ¯?Ð¥ïåè‚ýšt,8Ÿ3(Ûã1S9éØÎý®ruvšfì´§,¿ãŠ f§‚ý¿¤ £_?obb¹oæ@||¼P£ÑBq±™’b3ѱAx3û¡ßÀׇWu­¶CBq1ÊÌ-bûºŒ{-Ña×Û{ì ‡ÿ¤ÿˆ‰Dé›t,€³9…l[õ-«??0F‡Çòç&Àäöâ°·SQHAFjµ ??/¼½5ää”Û2˜#‡³ÉÏ7 R©Ðj5˜-VN¦äSTlÂV`FŸ¦G[}6¢>ddå‘¥Çd6ãïçK«Ø¸|í±ã©„†Ze¼Rƒ‘ÃÇNÒ»{'—å‰{’ˆ‹mA‹Èðzi¿¸¸¨Î}¿ ÄjóüXJTX‡ÎÕ/ßWŒµlÕÆjã\=v¨G±{¼«Çµ×¯¸ÌU¬ |qÞÓ±â|¬§êc<à<Ìvjw*• •Z…ZSö³vÍ ®œØ‰À@-I2)-µPXh$'§„¼ÜR4 §N :é!17Vû QW»÷¦G;W_Õ -gsŠøeãQôù´Šqzmò‰SŒí˱´|²ô¹„ë*'ŸRƒ‘쌳ÜsmwÞûy½º9'Ÿ]{òÄ´Á¬Ú~‚ôÌl¢$ùˆ ÔKV›Ë uµõË·Å®b½=ûš*ëΜ¿Ôiîb­X½Ékæü¥L3Äå2W±*ð=÷Xžt,ç~ÔœKHn÷xl .Ì(D¥.{^Zb¡¤ÄD@€7¿ÿv”ËúÄ2rt;~]~„\})¥%fÔj ÉÇwÑ¡“‘]‰A´]ó7\4?9¹ùddf£Ö¨‰‹‰&0ÀRƒ‘SigP«5X,f¢£"9›™F£¡}Û84j5‹…Ség))1¢V«ˆŽ"$¸l7>7/Ÿ³™Ù( D„ëˆ #ýl&y…h4j¢ÂÃÓ…°ÿÐ1nÝ‘„v‘,]˜R“…ö±¡¼|Ïå¼öÕf2³õD„éÐç–ÅË+(¢c\7Îæ‘žgÄ¢Tj?(X,Fúu‰%ç?ëÙ—t”Ð`ZÆD  aûÁ4ô…¼4þ$§œªÔ‡Rƒ‘Óéøh½),*FLltÔü”DcR«ë˜xÔ*û¶¸6±œ‡±Þž} 3ç/­”ÔªŠUÎIÇLYÒ)O<žïñ”¥#þþÞL¹>Î#ññõB­“ъͦ0yJ¿®8®g9™zˆ¸ÖìÞe¢{×¾UeFqI;“I¨…LHÀh¶òÓºC”†D`3•pÝ6˜-6ýµü±ý8ÓÆv¦°ØÀ’iÛ¶ 99YŒêт؈@Ì¿n9F®¢P\RB—‰ÛÇwE­R‘x8ƒÄ¤# Nˆ¢ç°nͶ(V“½A—ZðñÒ8 ;((´kà²å‰¼½½±Úl¨U*›Mþ/.ÎÇRÊþfª?!À!Y¨U(WÇeœ7úU%4Ocíܽ¯ÒžŽã°ÛÌùKéÓ»‡ËX5åñ1]çH²g¢RÁò_³&v↺£( ©©¹üû¹Eœ8‘ÂÄ+¯Ňü< Ö%RŽñ\äüüý8‘žÇÀ„–|ñÛ^ŠKÍÄE£hðÃâ¶®Åb!¾e§³ ø}Ûqn¸üüEÇɧõÜ2®;6ënvîÞO‡6ÑèBüH?›Áü¯7sý¨® îlj©lM:Ã5Ã:qòlGOéÙs,ƒ>cðöÖðÎ;‰‰áØi=£/kƒÙ\Н֋–AØo­·Ëö«|‚ÐP–xzÆ·àÀ‰3L߉ãéyøùùa2»ÖMv1¡.ûPYÙ?¼MQäÿâP›³Ú<=­œ»DVÓXP–tzõì^iØ­ªX5åñ@XçHòŽf£Ö¨0­lÚx’¤¤L""غuÇŽ%³xñµ›zbªÔ*ʆœ«ZOÕ±TjuÙl‡®ÊÝ´_¥VWß/w}—œÂâRü|3a «ýÓÖ3a F“…âRc“UÆó‰©ktŒ§¢ öa l?®Æõ„âRRTb <4I×y~ë0£ÙB‘ÃES¥r1zP•jÇq„B¸‘[tQǪAÞqxºeóÓÊõõÒ!„—†.AÙ¬òàuUîñüüÊès²ðÖúx´Ò   ^×Üe_Ù“B\, «‘f“‘“))$&î ++Ëík5 aááôíÓ—6mÛ:•¥>ÅG‹Öx´N·CmB!.négÒÙ´icÆŒ£mûöh4û]5,fKÙsÅFQa!lÚ¸o-±1±µZgƒžóùì³Ïrã•Z-Z´ˆ   —£jr€Ê•ºÖBˆKÉÊ+èÕ³7;wF­VcµX°X,˜ÍfÌ&C)¥¥%””” R©ˆŠŠ¢]»v¬\±¢Öël°Ä“““ûï¾Ë‚ *•=û쳬_¿ÞåÙorFœB4³ÅBßeSxºýMèÖ ³Åý­°Üi°ÄóÅ_0yòdbc+ïŠ={–Þ½{7Ôª…BxHQ||<;Ž_N£ñªÓNBƒ%žåË—3uêT§e*•Ê>OwùóŠeU ¿-Z´ˆˆˆ¢¢¢X¶l™½,==ÁƒãïïÏO<ÑPÝBˆKŠÍf㫯¾®ÕäuÕi°Ä³wï^úôéã´¬ì•R鹫ß+JII!55•—_~™¹sçÚ—Ï™3‡#F““ƒÉTóI–„B8³ÙlÜ?s&3Y?RïɧÁOnn.:]ýÝqΜ9øûûsë­·räÈûòßÿY³fáççÇ#:·úÊj°ÄÓ³gO*¼]xx¸ý¢§ÌÌÌ_ŸB\ÌÆÏ/Ë–Ù¿ìët¡,Yò?.¿|t½­£ÁϤI“X²dIC…·7n .Ä`0¸òÁ !l{š†FÝãqܽ-^¾‡ãXVq¯gåÓWñæò}ÜyygÞX¶—-G2òåé©}iß"ˆ·ž¨—v:î¹ÚëYùÎ lüò¢;vãÖ×?#82Ú©­ýqë´%ØOËkðÝæã´õã¡«zÒ£MI§ry}Ù2òJ«­÷ÅÌËyêëm¤f¡ ôaÑŒü}Áj,V÷7ìs÷ž¹kËʧ¯"¯ØÄª½§IˆÓ±'%‡Ï×ÀßÇ‹Ù×ô¢‡(R² ynI"™ù¥U¶Aˆ¦ÂݶçR·úd«O«EÍ&Õršx“LÅÝUrÔ"Ô[ßü“QÝb¹kLûFôî+º²ïds¿ØÂí£;ÕK;«†³Y-<½æ(|ð*¿¾9Ÿß©¼Gë0þl3%F OOíËw›óÊ­ƒxsù>þï›í\Õ·5_Ý‹¹‹·T[oOJ6½Û†“š]Äð.Ñl9’YmÒ)WÕ{V][¾Xs˜®êÁ[Ë÷qãÐöÄóË»Wbâú×~gòÀvÜ}EW^ø~§goª»m€)WG±)XÅfê€bS0š­(Ђտ¼\¶lÙTëõ5›³Ú–l:ŽÑleõ¾4âÂìËû´à‡­'0Z¬|·ùx£´eØ­÷àíã˰[gptó_•Êß^±ŸÌüRŠ fûýŽwþb׉lÌV+v¦Ò5.Ô£z»SrèÝ.€á 1¬KJ÷¸U½gÕµå}iöÇð`ßóýîÍ—ëŽb´XY¶#…ËεKÑü,–Z((µPPb&¿ÄL^±‰Ü¢²}‘ }¡‘œBc×Õl. -2˜°Xm¨îãìçM^qÙpåŽÜ áÕV ®lƒ  §4?¯Ryv¡¡Ò²¢¸{lWâœÚ_]½Ý)9Ü{e7ƒ|iÄ®ãÙNåîúWÕ{V][Œf«ýÑK}¾<$@˼e÷Ó“› !j£Ù$žª”š õ×’[l$4@[©¼ºd£R©°Ù¬¨Õž_8Uœ›C`x$%¹züC=›ìîákzòöŠýl=š‰·FÍOsÇ{T/§Ð@^±‰;Fwfë‘ ,6çÍ}m’imÛ¢/2òwÖ`´X«±BT¡Ù µU%19‹ÉÛ¡õR3ePû×mÅÉ]5»ëÀ†/?Àb2²ñ«é4dŒGu´^ò‹MxkÔÜ2¢cÖ·'%›±½âØx8£Fõê»-åŽË;ã§õ"*Ä9×öª—ö!.-Mf§¶g|²úOOíËäãùakÍñŒ¿ÿ)>èŒÅE.O*(^ñì¶y#â‰í܃[_ÿÌ£õ,Z•ij7öC¥‚/Ö©¾‚ƒÝ)9\Ñ+®Ò0[mÕ¶-ÿùó03'v盇¯ °ÔTã~!€«ƒ Þ3ïazëÝ÷Ñç”mè¼µ>»~áºzlZÃ=©yÝ«íò-‘óßîh°u!œ5—»Ö©þýó—1åêñ”˜±Úl6Û¹GƒÉ‚ͦTZäÖ-›XðÀ8{œ´Ó§øhÑ"Þ~¥@ɹŸb‡ç¥€¡Ùµ]ì¼5j&\ÖŠ‡Î^è¦!D½ÄÓÄýòÄþÚïùiÔBÑ”Õë1ž×'·©Ïp æsýÇl¨¾ïß¿5ðÊ5­$¾B4¶&srBˆ¦á‡%ßTZ6züµõÿ‚ µ}÷Ýw 8=zT*sµ¬&<­/Ó"qéq·íçM™z×ýíF®¼úoŒ»j c&L®×ødç½÷ÞãóÏ?§K—.•ÊöíÛ×(mi„¸ô¸ÛöˆÆsAOvv¶|ðBˆF'ÛÏ\TCm=zô G(Šb^±¬ªá·ï¾ûŽáÇ3bÄÖ¬Yc/ËÌÌä–[n¡_¿~¼ùæ›õÒÎê†áV¾óÿ7¸ïÝv%YΧ9÷èуÏ>ûŒ±cÇÒ¿>ûì3ÒÓÓùç?ÿIß¾}¹ë®»HOO÷¨Þøñã9~¼ìÂØììl†ŽÙÜgGqs·í•5ôP[£&ž}ûöÙ‡ÒŸ»ú½¢´´4V­ZŬY³X°`}ù믿N¿~ýظqc½m_Ú™åv˜­|Z„v}‡ðë›ó*•'&&òù石zõj6lØÀôéӹ뮻ؼy3—_~9ÿ÷ÿçQ½°ukÙÅ©«V­bäÈ‘x{{×G7…¸d¸ÛöˆÆ×l®ã¹óÎ;ñõõeÒ¤I¤¤¤Ø—oÞ¼™iÓ¦áããÃí·ßÞ(m©nZ„§Ÿ~šØØX‚ƒƒùøãX±bD«Õrýõ׳{÷nê 8Оx~ÿýw®¼òÊì™B” µýôý·ü¶ì{~_þ«ý±^ã7›Ó©ƒƒƒðööÆf;?Z~~>aaa„‡‡Wªç¸K]_ßrª›!**ªÒ²õë×3þ|RRRœÚ_]½ðÒK/‘™™Irr2ƒ ªcë…½)SoryËœúÒlOUBBBÈÍÍ%<<œœœœJåÕ%›Æšáé§Ÿæé§ŸfĈ˜L&HTT:Ž·Þz‹‘#GâåÕì?2!Ä%®Ù µUeÈ!,^¼£ÑÈâÅ‹k\¿±¦E0èt:L&~øaÖ7pà@–.]ʘ1ž­K!š²&“xÏ4©ÉY'?ü0Û·ogèСh4žïµ”+Ÿ¡âTå¿WuvÛ¼ñß±‘+xÚ£õÌ™3‡x€qãÆ]£6–ï¯îÝ»_è&\´ê5ñ$$$Ôg¸s¼®¿l¨¾÷èуþýûóá‡Êõ;Bˆ‹‚œ"ÕÄÉЀâbÓdN.BqiidZ—Ü}F ùù ÑdZ„¦A¦Ei\r÷5…ÏOˆÚiªäë…UQPl6¬ (6_o5ŠRvçÇåJ×%Ó"—Ü}Fòù‰æJþv]ûaÙÊF]_£&žŠÓ ÀùoÈîî©Ö£GžyæÞ|óMT*ÿþ÷¿5jP6-¬Y³8|ø0Ó¦M«—v:î¹ÚëYùÎ lüò¢;vãÖ×?#8òüéÙ=zôà‘GáË/¿$//ûî»;ôôtž}öYéÝ»7Ï=÷±±±ÕÖ?~<ï¿ÿ>íÛ·';;›É“'óçŸV{†ÛÆyýõ×9qâQQQÜsÏ=\wÝuöu9¾ÇŽ¿{úÕäó»ÿþû9r$S§NeÉ’%¬]»–wÞy€¢¢"žzê)6lØ@‡X°`111ÕöAˆšp÷·{©Ó¦˜={á­ÕÖè"üí[·Ôz2-‚ ô?þ8>ø Û¶mã“O>aÇŽõÝÓϨ&Ÿßc=ÆâÅ‹1 |ñÅ<öØcö²7ß|“°°06nÜÈW\ÁüùóëÜ!*’iš–fsV›L‹P³i|||HNNæäÉ“´hт矾¶Ý­³¸¸8ÆÏ}÷ÝÇ„ ˆ‹‹³—ýñÇ̘1nºé&{_¡iõAQšMâ©Ë´õ=ã`m§E¸öÚkéÕ«ýúõÃh4zToÀ€lß¾½Êiªêß‚ Ø·o3fÌ`èС,Y²¤F}¬oW]uÛ¶m㪫®rZ®×ë;v,½zõbðàÁØËšZ„õ£Ù_@z©O‹PUÿºwïn’Ü´isæÌaêÔ©¨ÕjL&Z­–ÜÜ\ÚQW‹-bÒ¤I,Z´ˆ^xÁ¾<""‚+V¸¼»>!š¯f³ÇS™ÁµGy„£Gb6›)**rÚ°·iÓ†åË—c4ùüóÏkÔ–Ú8tèIII<ÿüóìß¿ŸÃ‡ÛË®¸â Þzë-Š‹‹9sæ O>ù¤G}B4_M&ñÈ´U«Í´ãÆã‘G¡ÿþ|ðÁ¼ôÒKö²ò4®¸â §ã-uáîó{ã7¸óÎ;Ñh4Üyç¼ñÆö²|½^ÏèÑ£¹í¶Û0`€G}B4_*˼gÞ;ÃôÖ»ï£ÏÉ.[ õì›æÉ“'ë±i çsýßz’÷ÙzYnùòå¬\¹’·Þz«ÁÖ!„pÖ\îN]XXX§ú?.ù¦Ö§SOºöü”2i§Ë£±? IDATOñÑ¢E¼ýÞJ’s?ÅÏKƒL‹POdZ!..Í%ñ4G2-B=‘i„Â3õšxšË7„†ieDƒDU”ºÞI!š–&srBˆKƒ$ž&dY|üE½>!„€K ñälÝÊÆn`yB«† áä7ßÔK܆Øh_œ\ï1ݵ³!Ö'„Õ¹¨OÞÞ½ìš3‡N>ȄݻòÕWèåF“BqA5û[æ¸sô½÷èúè£D @@Û¶\vîîÇËâã¾ñ;þžµnI/¿LQr2>-ZÐùhuýõö×9Öó{†Œ gÎ$oï^B{ö¤ïÛoãÛ¢…ýµ>ááÄM™Bî΄D—‡®³â^ˆ«=–ò×”œ>ÍÞ'Ÿ$gÛ6Âúô¡×+¯àî‚Pwít·¾êúÐó…8ôÚk VÓûå—iQƒ»)!4à»!ž†(sE¿c‘ÆըÀÎG¡ËìÙLØ¿Ÿ!_~IŽÃ“¯NN¶o¬Ÿ$½ø"º>}¸r÷nB{÷&©Â•ögÍ"ù£ˆ›<™´Ÿv³¢ò²«““éùüóö°eÚ4:üë_Lس‡èqãØã0Ý€»vº[_u}(=}š+6l ë£’ôê«®ß@!„pã¢j3àTãz £8%ßèhz¿öšGõ²6n$þ®»Ðøú?}:YçæÔ)wn³¸ë®Ãp¶fw:ÐïØAÚÒ¥ô|î9û²Ëÿú‹ˆ!CPkµ´¹é&rwíªQÌÚô!þî»ÑøùwÝuŸ8Qçõ !.= –xܸnˆ2W¼ƒƒ1×âvýÞ{¼Ý»ÙrÇüÖ§'¿þÚ£zæü|´ç¦fð Çìp‹ŸŸýÑf±xÜÃÙ³ìŸ7>o¾‰Z«µ/Ï\³†¿Æç—NXž€Õ`ð8fmûà€ÚÛÅj­óú„—ž‹z'¬oßJßØË©4l&&½Þ©,´gOú½÷c7n¤ÿ{ïq°ª=ž wzÛcsrð>7‡P]ØŒF|žÏ?o…ùzvÏK×GaâLØ»·ê 5¸µ!ú „Ž.êc<ƒ¯¼BÖÆØÌfJNb÷ܹ@Ù‰§þ«Á@ò'Ÿ8ÕÛqÿý>ŒÍlÆRT„ÆÅíø½CCÉ«0NÄСÿôSlF#Ç?ý”ˆ!CjÔ^Wö<ù$­o¸Ð^½*•ÙŒF´aaØL&޼ý¶Ëú®ÚéNCôA!5ÈYmúÄDÂúöm´²ªèz÷¦÷«¯rèõ×ÉOJBJ§™3èúè£ìyüq¾ü2]æÌqª;a‰3gRœ’BP‡\öúë•bÇOŸÎ¦›oÆZZjLxüqgÎäמ=íg„yÂÝh§ü‘Ó?þÈîGµ¿Æ¾¾'ž`Û¿þŠBç‡rÛU;Ý­¯¶}BOÕë´Açäo¾å:ΜI„‹Y6¢L!.U—ü´åùe£– !„h>.ê“ „B4=’x„B4*Iû,7Þxc•執˯Q¼#_›ø²[Aë‰ +~~¼ý§9P©T.—•ÿ!ê¦ÁONNï¾û. ,¨·˜»˜°$€ÛO„Ô[Ìæ¢¹l´]IžLòìäZ×oì¾+Šâr™«åBˆšk°ÄóÅ_0yòdbccë-fi–BX‚¦Þâ !„h| –x–/_ÎÔ©S–•dØX1¥ˆÿv-`çk§2s‘Â_3Jøo—|~¹¦ˆât›½ìóvùeÃkŠÃósJ³Vü­,æî7 •†á>o—ÏŒ|7¤/ 8𑱬-gmü:µˆÅòùuj%g×W1†ãó¯øo×VL)¢4Ó³oÁ§óOsû’Û麠+·üïN矶—UüFïø»ãUÅ᪌¢ nøúº,è _ß@FQ†Gm±Ø,¼ð× ô{·—½}Ÿ&~êQÌøùñ xo/¯}™¾¾76¼áT6ý|º-ìÆõ_^Ofq¦Gm)2qÏÏ÷°0ëþ{ééõÝ]=wT*‹-"""‚¨¨(–-[æT&ÃiB4¼K<{÷î¥OŸ>NË_2Ðb€ß„ÍìüúÄW ø†«øûî`Ú\éÍŽÎ'¦ÛO„؇ן$¾b ²OYLk…˜å2¶Z¹rIS7‘¶ÆÀŽ Dõñâæ½ÁDôöbÇKו]P,ð÷]A´àEâ+žÕ›¶dÿø/ö<°‡qÆñØÊÇ<ªç8LUqÈêÅ5/Ò'¶»gî¦wLo^Zó’G1ßÜø&Éúd–ß¾œõÿZOvq¶Ç1g ÅGÛ?brÂd~>ø³S™Åf!ñþDú·êÏ«ë^õ¨-¯­{pÿpvÞ¿“ñÇóÒÚóës×wwõª“’’Bjj*/¿ü2sçε/—á4!Gƒ%žÜÜ\t:Ó²´uîòAã«¢Ût§²ÔßÌôz ¬¬ó4-g6Y._3èy_[ªÑ†¨÷eé,$L/«×ýnÒ×{¶>À^/á.ÒÖV‘í*økú_ i=­FËM=obWú.×W•'7rW¿»ðõòezÿél8¹Á£z?$ýÀ3cž¡E` µ<:âQc^—pýñláY§²òzÿèûÖXçQ[V]ÉÌÁ3ñõòåÖÞ·²é䦭0gÎüýý¹õÖ[9räˆÇõ„õë¡ët:rss ·/3å+ø†— c”?–3è¾Z (6ÀÃÑc®CÌ0וü£+ç׊m1xþM×q}Æ<Ïê­9¾†—Ö¾Ä ý ¬ŠÕãu¹“oÈ'Ü¿ìý ÷§ÀPàTî84帷U”E\H\­búyûÙ-6çd]^/Ì?Œ¼Ò<ú /Ñ3üÃá((Ø*?øÚÖì_ˆ´Z-Vký|BÏ5XâéÙ³'‰‰‰Œ7ξÌ'T…A¯à¡Âã¼Áö‹T3å¯@4¾5_÷Ñ©0d+øE•Åö”6Ĺ-ÚàóëUiÀj—1íõr|B)kËÄ =ŸƒƒÛª9þ“ «A!éãÊ1ËëüÔHìÏr·Ñj$Ì? “ÕÄÛ›ßv*k«kËÏI?c°ø$ñ—õC}CÙwvŸÓ²¡m†òéŽO1ZŒ|ºãS†´âQ[&w›Ì¿ÿü7™Å™›ŠN¨mLÀ^ï?‰ÿax›á•ÊãBâØqz‡Ó²ñÆóúú×)6“^Îì_gWªçªïžÔkmÛ¶eÃφ4…®5Xâ¹í¶Ûøé§ŸHKK³/ë;×—3›-|Ý+U…íuŸG}1䨸߀B~½¾˜èÁž}£ì;×—¬¾¾¬Våñ]¿'|ÉØfá«îùdí´ÐÿÉóßœû>æËÎW ,RH`+o‘_÷ÊçÌf }çzöû‰QOð¯ÿÅðEÉ r>ÅüÑ‘òêúWúáPZ…´rYzÿéÜüíÍNÃg|œm§·Ñó­ž$¦%òÄÈ'ÅG‹ñö{ü (JÎý;wnw1W/\ˆÖߟ˜®]É?s]\í‡ ±—µíߟÔ]»ŠŒ¤Ç¤IøTÛ‹ÉDÒï¿““’B`x8=&MÂ÷ܵTîúîXVq¯§º>t3†äQ©Tt;–ˆöí«m§B8jRCmåAWC@úÔTÂZµ"¬U+rOò8žcLǸGׯ'$&†‘÷ÜCpt4Gׯ÷(æñ-[(ÖëxË- ½ë.L%%Çl?x0'‰îÚ•3‡9•)6#gÌ ´eK’=¼%KòÆhýü9c‘:ptÝù;B»ë»»á»êú`((`èôéÄƱÜ:ÆÝg+„¸´4©ÄãNî©S„µn®U+ô©©uާOM¥uŸ>¨½¼hÝ·¯Ç1Ï$%ÑyÔ(|ñÒjé0l˜Ç1£»vµ?‹ŠœÊìõ.»Œœ“'=jKæ±c´4µ—q={zœÝ©®múõCãåEt—.”äæÖy}BˆKO³j3•”`(,$¨E ……˜JKÑúùÕ:¦Å`ÀÛ¿ìbS­¿?ƒgº™Š‹ñ q}-Ou15^^öGÅfs*+¯çíï¹Ô³¤šKJØøñÇõ6Yu}ðò)»^J­ÑȤiBˆZi‰'÷Ô),F#¾ù¦Ó²:¡R©°Y­¨5Ln°¡lj.-Eë賓/_Ïnö© ÀPP€Ÿ‹äSÛ˜€½ž¹´ï*ê)ŠâtsJm@CWý}ŒuéƒBx¢Y µéO¢Ó¨QöcF"÷Ü¿NÇÙC‡°Y,œÚ¹Óe}o__ 22œ–…µnMêÎØ,Rwî$¬•ë»BWÓµ+GÖ¬ÁX\ŒÕd"yÓù™/k°×;µkamÚT*÷ &ÏáNßQ:¼iV“ Ca!I+WVªçªïîÔ¥ §K !ª×,Onj*a­ÏOZÖºµýØC‡aÃHÞ° Œo°ë»R·îÛ—K–8m; N^ZkÞ{üôt:ŽáQ[Ú „_H[/fÃ'ŸàísþV=µYní ?uÊé¸Q¹ø¡CÙ³t©Sâ‡ÅTRÂú>"ñÿCç"I¸ê»ã©/N­k„¢: :-‚ðLÅSÂ…ÂSÍqZ„f±Ç#„ââ!‰G!D£’ÄÓÈ0›âR"‰G!D£’Ä#\r¼^H!ê“$žp1l´å®Bˆ†"‰G!D£j‰ÇZháÔ›){ô9¿fqtÖA§ò£³’ûW'æãØÜÃäþ•€%ßÂé·R86û§ßJÁ’oqªS1†ãóœå™{ô§¦`)°PWf³™‡~˜ÈÈHt: ,°—¥¥¥1lØ0|||6liw(P©T,Z´ˆˆˆ¢¢¢X¶l™½,>>žpàÀ:tè`/+((`Ê”)øùùÑ¿Rnöé.¦J¥²ÿTTÛ˜îúî.¦ââÔäOÅ„½,¿¶~Ä¿ÐÅêz¨4¹„V´¡ý3(9X\Vïç |ÛùÿRg|Ûø‘½Ôó[Ç(6ˆ¡3~ñþäü’Y£>¸¦zöÙg9tè»wïæäÉ“d8ÜÆföìÙ 2„¼¼<Èœ9sœê¦¤¤ššÊË/¿ÌܹsíËÇÇï¿ÿÀÊ•+7nœ½ìñÇ'** ½^Ï”)S˜={¶G1E©r˜­¶1Ýõ½º˜BˆKƒ÷Ì{g(Š¢(9ÙYJNv–RPPàÑO}8òPR¥eÉOQ,fEQÅR`®ôš#%)æúP›˜îúÞíB4mM.ñ¸:ÆÐ5€Ü?sPÌ yëôÇòï@îZ=ŠE!oÿNö2m„–ÂÄ|³BîšœJuËëå®Õãß9°vq0mÚ4|ðAΜ9Caa!O=õ”½ìŠ+®`Á‚ Þxã ÆŒãqÜqãÆñî»ï:ߘ2e O>ù$………¤¦¦rûí·×¹µé®ï ÑN!DÓÖä+WGaH)%ùÉè¼Ô®ï©íªÞ5Q”&—üØaJSJˆ¸&Ê)fö/™œ˜wïpmåÊ $?~˜Òc%D\U¹¼†æÍ›G||<=zô U«V„††ÚË^{í5Ö­[Gpp0›6mbþüùÇ?~ñX -ø´ô½ÐÍht±±±\wÝu|ñź)BˆKL³8¹à謃„]NîZ=>±¾Äü#¯`/§òˆk¢È[—‹µÄJø•èF‡c3ØÈø*âƒEøÄøsg^:o{Çúp~DZ¬â^OúǧH$dˆŽüM¹';½Uúg((àà—–FHl, cÇâ{îö7ŠÍƱ 8sð ŠÍF»iݧOÖWnêÔ©¼öÚk<ôÐCõO!<Ñäöxª:®RÝ4.§Eø%Mñ/v& g0YKÏ×븠«=©8>wõ»£ÈÉÑä­Õ£˜lä­Õ99Úã¾9·SaC¿óûïiÓ¿?#ï½—Èøx’V­²—ß²…b½ž·ÜÂлîÂTRRçõ•ëÛ·/{öìñ8žBÔ‡&—xª¢†Ê[…nTÅç‹£¨©1xé¼QûkhyokŠö6.•·ŠÐa:JT®WSÞáÞ^LÚG§¼,ïpï:Çr焵j…Z£¡e÷îäŸ9c/;“”DçQ£ð ÄK«¥Ã°au^_¹ÐÐPòòòê-žBx¢É µUµ§QÝ4.§E(¶pâßGA¡ì§žî¸Ô'ýÊl¢nˆ©—x9'NptýzJrs+MÂf*.Æ7$¤ÊºŽ'TµgS•¼¼<§û¦ !Dchr‰§*Ö" š ¯MSàäEÛ'; ò®ß9^ô«² êBîªlZÜ[çxI«VÑåòË o×ÅjeÍ{ïÙË´ ð«"ùÔ4Ù8Ú±c½zõªu}!„¨&7ÔVÕ1žÚLSØ3˜ìåe÷x³äšÉø*½Îí3¦0ž6Ðâï1R Ó uŽi³Zñö÷G±Z9±u«SYL×®Y³cq1V“‰äM›ê¼¾rK–,aâĉõO!<Ñlöxʧ)ðiéëñ½Ú¯Š$󻳜ø¿£¨ý5„Oˆô¨ž»3Þ²—e¢ŽJ­BwyÙK3i9£u ;ã¬ãˆì]ºEQh?x°SY»Aƒ8¶~=[/FQÚ P§u•;}ú4?ýô¯¼òJ½ÄBO5¹ÄSÕ1žˆ«£ªœ§ª:j5Ñ·ÄÂ-5[Ÿ» G“Lð€P‚ÔýIl·nÄvëfÿ½UïÞöçj†N£FÑiÔ¨:¯ÇѬY³˜9s&áásÿ;!„(×ähK–,¹ÐMB\¢šÜ1!„·f‘xdš!„¸x4‹Ä#„ââ!‰G!D£’Ä#„¢QIâBѨ$ñ!„hT’x„B4*IË7ÞXeùçíòkïÈ×&¾ìVPãzV¾èñëÊ„¢!4XâÉÉÉáÝwßeÁ‚õs÷B–pû‰z‹éÎ¥˜àÆ?^ÄøÇ‹m}6›‡~N‡N§cöìÙ(ŠRm=•JeÿB4/ –x¾øâ &OžLlll½Å,ÍRKÐÔ[¿\SDqºÍ^öy»ü²½Åáù96 lÞÀ7} øºWIŸê9rü=}…¥W±¸c>ß+äØSåõQy}%gmü:µˆÅòùuj%gÛùm¿_2ðëÔ"v½îÜǪ”æŸdÇ7×°êÕp¶5‘Òü“ö2ÅfæÐêÇøkaV/hÉÉmïxÓXt†­_\ίErtͳNec!»¿¿™U¯E°ù³ NÕ¹ëÞëFqÎá²ugðçÂÖØ¬¦ªBÙ}ùå—¼ð ÄÄÄÃóÏ?ÏâÅ‹=j¢yj°Ä³wï^úôéã´,ñ%-xñ÷]AØÌίO|Õ€o¸Š¿ï¦Í•ÞìxáüFûö!öá5ÇçP6ü–Ÿlåš\¿1ˆÒlϾ¯ŸUBŸG}¹%)„q_pv«Õ£õíxÑ@T/nÞLDo/v¼äœ\.{Ø—ý‹ŒÄOÖrü§ ¬Âޝ'ÑnÐÃŒy$¨NW³ù½ö²cë_¤8çƒïÚÌÈ{a,Îô(æá?ŸD×j(£g¥b³9'€£kþm@$—Ï:E‹Î×pxõungX›䤬 ãÐÏDuœˆZ£­6æÁƒþNúöíKRR’GíB4O –xrssÑétNËÒÖYH¸Ë¯ŠnÓ}œÊR3Óë²²ÎÓ´œÙdñh=Éß›ø¬þÑj¼UôëëQ=м£V NX ˆQ3l¾ŸGõÒ7XH˜^ÖÎîwû¾Þ¹í'{Û÷†Ü>cámG¡ÖøÐª÷ä§m;¿¾}_Ñuì||ƒbñò ¢Óè{3çøjÚ ¸—m<àT–qx)ñÃCãåGë>ÿ$çäš:·3¬ÍHô)eq2ý@t—)Å,**"  ,þðáQTÔxǘ„Ï«¡ët:rss ·/3å+ø†— .,gÐ+|7´Pl€‡ÇŒK³lÆÕ<ŽúÀŸýï9ø™ SBÿ'}étsõßÐ+öÁT༇åå§²?Ú<Ëd%¯äðê'(ÑCQ¬NeÆ¢³ø…¶©²®ãÙgŽ'˜ ¹hý#ÐD:÷¡$›µït”¼ÙîÚÞv$‡VÍÆXt†¢¬ƒ„·íQÌÀÀ@Š‹‹ býúõäçç(gÔ q1k°ÄÓ³gO7nœ}™O¨ ƒ^Á/B…!Çyƒí©fÊ_h|kv–’_¤š¢Ó6‚ÚTN>* XM Ñ–%6G=5Œz߀ôõÖÎ,qxœ¶ËÚç>hƒë~VÕþå÷påB"ã¯Äf5±úõh{™O` JóRñ×µsY·ª3мýÂ0—d£ ˆÂTœåTæØ‚a3ö ñr·—§BQ¬¨TçOæpßδþ];ÈŽQ©½=è9tíÚ•]»v1bÄvîÜIBB‚Gu…ÍSƒ µMš4‰%K–8-‹áÅÁOX8Ðf¼;ç1+§ÛØðH©G뉟ìͶ—Rš©`.Vœè·Usü'VƒBÒÇÎë[so ¹‡­ØÌe'6h|*F.K”Ùûœ¿ÙÇ õ"铲>øØHÌкçn›Å€Ö?›ÕÄñ/;¯¯ûß9ôÇŒEg±¥q)Æ IDAT˜Š8ºÖ³¡¶ðvcHÙþ.6‹“ÛOHˆê| G×ÎÃb*ÂPpŠ}¿ü³R}¿Ð6äžÚìq;ÂÚŒ"mï—´ètµGm¸å–[xê©§8{ö,gÏžåé§ŸfÚ´iN¯‘S¦…¸¸4Xâ¹í¶Ûøé§ŸHKK³/ë;×—3›-|Ý+U…íuŸG}1䨸߀B~½¾˜èÁž6Ý{–/A­Õü|e!ß .tÚéû˜/;_1°dH!­œ»Úö*oÖÞW»æ³çM#Ãßð¯»ÛÝ>¬¼©Øé¬¶~Oø’±ÍÂWÝóÉÚi¡ÿ“žSr§ó˜—ØõÝ ¬{· ¾AqNe†?‰h;6~<€µïtÂÛ׳k˜:~ýÉu¬^‡ªÂ›Ýiä<Ì%Ù¬y+ž­‹ÇÖzD¥úG>Ë®%×; å¹k'@XÛ‘h¼| óp˜ à¾ûî£oß¾téÒ….]º0pà@f̘Qm=Çkxäz!šWÿ­Þ3ïazëÝ÷Ñçd—-кØp!((Èé÷yóæqàÀþ÷¿ÿÕµ¢8sà[ÎüË®ÿöB7EˆKFaaaêÿ¸äzôì…·V‹Fãùu’Û·naÒµ“í¿§>ÅG‹ñö{ü (JÎý;´8˜nÝܶóçŸÓsÒ$îh³ZÙøÉ' ¼õVÖ/ZTe;JòƤîÚE`D=¯¾Úþ94Äßõ¦ÿü‡^×\C@x8Å99ìYº”!wÞYm½Ú}¹‹é®ïîÔö}MK“j+ÿ£®î;4.Ž‚³g²?^­Ÿ#gÌ ²CŽ®[çѺv~ÿ=mú÷gä½÷OÒªUö2]«Vöá¼ÌcLjhß¾Ú¤SÞnÇ>8öãèúõ„ÄÄ0òž{ŽŽæèúõµóø–-ëõ ¼å†Þu¦’c¶<˜“‰‰DwíÊ™C‡œÊ›‘3fÚ²%É6xÔwïµ»¾»:©®†‚†NŸNü°ashgÒo¿?t(£î»>û¹wȨJDûöd%';-ËII! <­¿ÿ2+ÿtqqsè{Cü]‡µiCÎɲ9”rNž$¼MêÕö}qÓ]ßÝ©íûžo_DÃkR‰ÇS^>>XLesÌd;F»Aƒøÿöî=,ªjÿø{˜á6ÂpǸ(bYŠ'Íoah¢†ƒ.ßsúv0ÃŽ‘e¯ÔÏ[’–‚šŠ™Z–SGMS|2 Ô4=iêÉ+ b 0ÜFf˜™ýûc˜í sÛsafÐÏëyæØkÖeo†ý™½fíµÜ<ÏùûŸ¯½Qd$Üø|ô4Í55lš(2 šÀSZŠÐlnsCU¢†…›@€¨aÃÐPUÅ)_Í¥Kxpôhxöê‡ú'&r.3là@öYÖe©6ߣ²'#s¬=Ö¦˜Û‡èÇ_ @ØCAÚØÈnwÐ*£­© ž½záa­Éh êÛuååèhoÇOkÖ@!“¡öòe„ÆÅÙ¼ÖÒþ;4hýºã}ÅÖ!®¬„H+ð˜Êg-seÛwSºã=H¯Guµi(d2<Ô3IwH¥8¾y3X´²øúu”;ic£^¾€ÈH\-*‚¬µwÄbˆ¢¢los{;Ü…êùà<„B(Ú¹­N*om…WoÃó³™+“/°ÏŒJwm M>w¡mÜ&dµöX›bnžêéšÜø|:§¦¢ò×_qãÜ9(d2Ä…>ƒ›¬Ë?"mMM¸]Rðx¨//‡¸¢Žk—}±†ÎßAkß»å}…‹B!“¡¹¦ƒŸy†S>k™+ÓØ¾›ÒïAâx=2ð4ݼ ¿0õ”ü>>1y2ܦw…a‰$/ýø#3}û‚Q*Q¼a›æéã¡׎GP¿~à¹Ù~a(ðôDG[<„BÈ¥R¼¸M.êáãƒö–x>Ö– €Í×ÑÖw#ùº3®ÇÚÖîƒ_h(§¦*+ñ{a¡ÙÀÃssC`L ÊOBPß¾(;~½#"àáÍm@®Ç…kš!:­vX{¬M½¯ð ÂõS§àÄ~x3—+KþÇãûnªÌîxÇëQ]m ™ õׯ£äÈD?ö ¤\;qJ¹í .ýðƒ^>o??4uù@¥TÂ](£Tâú©Szy"#QséBbc-n§»—ZnÝÒÙ&ŠŠBÕo¿A¥P ê·ß ŠŒäTVøÀ().†¬µJ¹×Nœ°¹Ll¾gÏêt¹h:f\޵¡}7ÅÚ}ø}ÿ~Ü©¯‡J©„B.g¯îÌ êÛòÖVô4²;wba7ª¡ãÂ%Íí¿ƒöw.\޵!æÞ×¢èhTŸ?¯÷77—ÏkþÇŒí»©2¹.íúzÌdžëW«?±…†bàÓO³C©cŸ|WƱÏ>ƒ»—ú%$èå}òIœß»J¹œýb1nÔ(üwï^0 c0¨3ðXÓÍ5l~Û±J…‚­¯ÿÈ‘¸PXˆâ ÔŸÖµº9LéûÄ(;v §¾ú àïÿü›fm™G6nT(ê¼rÐfè˜q9Ö†öÝÔˆ7k÷!$. !mj‚H„‡SR8å Œ‰»·7D11p÷òBHÿþzm3ÔN CÇ…Kš)G6ndGj—eîXbî}ò_~Ñ;Ñ›Êgíq1×cûnªLk q-ݺ,BOV{å n•”`ȳÏ:»)v×Óî˜'„×—EèQ]mŽ¢R*ñÇ… :Ÿ† !„ØŠ>ùúàƒNn !„Ü{zÌw<Žt¯wCÝëûGqmtÅC!Ä¡(ðtƒM›6Á××WçþÇ>!ä~Ö£OéŒËÎnËTY´hŽ;¦sg5Ã0Ýv§53BHOÒ£OOQ[[‹?ýéOÎn!„¸¤xJg\f¯v´€Š¥eß’”Êß+£dØ×Š÷ßFÙœ+¸±ºŠ›OÕ®BÍÖj”;‚yסhì°¹š®4Í4\¯DnÞ¼‰ÄÄDxzz"117µîÖ®¨¨@rr2¼¼¼0fÌTTTèÕ×õgBqe.x u§ÅåD\þ@½ŸÀ»¿¤¥ê¥$ç%ðy¤xü»'`FÄ.{Þ±Bˆ÷Ýf·×ï» ¾¯±¹Â'Þu{ï¦qa¨ÛL»;Í’®µììlŒ1MMMxüñÇ1{öl6mܸq˜;w.š››ñüóÏcÊ”)6×G!ÎärÇRÂ8!ÚJZwε ×ŸütÒF‹Àsç!`´­—[Ùíwþ+(9í«.¼ã|p{÷-(š×Ê  »Š!¿WçÒ>(¥w»Ú”­ \_R 0P?œØKÕÐЀ@HHµÖ),,Dvv6JJJ T*ÕDB±— hùµ½âõ')m<ÒFÁ ñH„öb·÷Š÷CýþÛPÉTP4vàÖ?ÿ°Ï˜ƒŸ»,5=nÜ8äç磽½yyy«µ0Y{{;‚ƒƒ!“ɰtéRƒeŠD"œ>}º[ÛM!öârÇÿ¤@T¯¯Ò NÂ8!xž^7€®Í¿Š¶2)‚ÒBØÍÏCÙªÄõÿWŠk+áÝß@Þn››‹´´4«“?þG…ŸŸNœ8•+W²i«V­ÂsÏ=‡èèhDY«&;;£G¦+BHpO,‹ 9Ó É9 "¦< ³½tÆe‹¿3"„ž„–EpFÁ ù—&ƒÝl„B\O§2y<BCC1gÎ$&&âý÷ß×I[°`„B!PSSé----˜8q"¼½½1|øpTUUqÚwSù4ÒÓÓ±ÿ~Ní „8ŽËCSæÔÞ1Þˆ]ö »ÖNWmפˆ|'ýö‡´sêú=·àÕWˆØ„W´7ê÷ÞâÜcË)pÊk [ÉÔòæÊ2¶ô©åLY´h®\¹‚sçΡ²²·nÝ=.æÊ\²d >þøcddd`ûöí:i …b±£F¼yó8µeþüù ACC&NœˆììlNûn*ŸÆ°aÃpþüyNí „8NNÝz¹Ñsúª—7xJ„ÆÃb½×„¤‡CÐ[½;}¦E¤%­ˆžÛO½ôAR ª>*ç\§ör •]·yÊÊÊØŸ§NÊùÄlÊ¡C‡ðû￳Ë)ÄÇÇsÊ÷å—_¢¨¨}úô,_¾œs™ÈÊÊBFF¦OŸ®“¦YÚaÆŒ2d§¶ìÚµ gΜ··7¦M›†~ýúÙ-Ÿ¿¿?ššš8•Gq—»â1tï²U¡³¼!𠣓Oªdó z  l㾬€±å¬UXXˆ‡~ÞÞÞhkÓŸìÔR¦–SŒ&«©©Aß¾}­*S(²Ïº«¶jòC,Öÿp`H]]¢¢¢Àçóáïï¯WŸ-ùšššàïïÏ©ù+[¹¾åõëwà{kÍC䦞n”wô’&_×嬕™™‰eË–A*•¢¥¥E·|>d2õòÝuuuFËèÚ…§YN€Þr š×Q¦ó“%eš¢ÉW__‘H¤—®Y¢k[$ ”J%†J¥2X¶¡}0—ïôéÓœ¯¼!ŽãrÇÐw<>}Ðø“Lƒ¦£Ü‡Ç ø°Ë"47èÌ^íäÉ™f0 ‹õ?ÁZ¦–7ˆ‹‹Ã×_¶¶6äååÌohéSË)˜’‘‘wß}555H$xï½÷l.›oõêÕHNNÖK7´$Äĉ‘““‰D‚ªª*¼úê«zù í;—|;vìÀ„ 8·Ÿâ.x J A{E®å\OàÆyµÐ gCÐvMŠk󮢭BŠ gï.‹”‚ú}·q}q)Ü=ô3YNÁZ¦–7X±bæÍ›‡ÈÈH£]`†–>0µœ‚)‹/Fll,ŒÈÈHî(kËÔW%(**Š+ôÒ - ‘››‹ºº:„‡‡#11IIIœöÝ\¾êêj|÷Ýw˜4içöB£Ç-‹ ’*Q‘{ ý>ÐmuÐr –ãñx6Ý$joééé4h.\èì¦Ò­zâ²=bTÔï½ Ñø 4Ÿl‚w¡³›C\ÜŽ;œÝBˆ=&ðð}ø¸¾°îAíó!„¸¤xÆ"`l Cê¢n6˹R7!„»›5µ¸YSëÐ:{Là!„Ò=æÎÏѹý‚Q©ÔÏ` èPtnWi¥3ظqƒÕõQà!„•J•J¦óY¥RaTÉdÓlÑ#†SB¹wPà!„âPx!„°öìÙ£7÷aSS íVB!¬~ø©iilðillBzúÿâ§ŸŠìVB!¬uëÖ!>>£“’0ÁŒOIÁ AƒðÑGúÓ`Y‹!„–››Ö¯[‡'Ÿ|ë×o@BBV­Z 77û… NM!D‡››Ö}ò ž1/¼ð<Ø<„Z§|»•D!äžáææ†ÿû¿—íz¥Ã–m÷ !„ô<Ïâ‘•J…ÞÊÆ– ÀC!÷1w¿žúÅ¢<—.^„»Àúoj(ðBÈ}lü„ ¸xñJK®B¡P˜|-Ã0¸uû®_¿Žñ6¬îKƒ !ä>#ñˉãØ÷ý^(•J£¯åóù DBb""Â#¬®“Sà¹sç§Â¸¾ŽBˆë‹èƒ },Ê#“w<=Ü-®óÏÕ«W-.œBȽkß¾}X0žÅù¨« ))Iç÷¢"ûMaO=¥÷ÍßÄ’¿…5y¸úâ‹/PYY‰… Ú½lgKJJrú{^ûЖ¶¸Là1uP]á€sÑÿPÝIÓÞ®'vK8bßíÑÎî2oÞ<œ:u EEE8vìòòòÀçó1sæLŒ1‚s9æÞëgÏžÅÖ­[QZZŠ^½zaòäÉHMMÃ0(((À&L@VV–MC^¹êÚ^sm)**ê–¿aKK ¾ûî;lÙ²…Ýf¬WûårŽsT›M3{ý:=ð¬X±™™™€ºº:lݺsçÎ5›Fˆ«(..FmíÝ¥ƒóòòðÁ€a,\¸Ð¢ÀcÊÅ‹±lÙ2Ìœ9Æ ƒD"Á¶mÛššŠÝ»wãòåËøâ‹/ .ÄÞ½{ñÜsÏÙ¥nK8«-?üðFމÀÀ@í®dz‚î>fN<™™™(((`Ú´iœÒºËž={°mÛ6H¥R 8³gÏFDD„Þ'zíß»Fí4…BuëÖáСC€qãÆáí·ß†€Ãøï¾û»wïÆüLš4 ãÇ7YfRR „’’ >§OŸFJJ þñ°í7nŽ=Šèèh,]º¡¡¡&Û¡©ïðáÃP©THLLÄŒ3àååÅiß å³¶>W#•J±aüÿþûxçwØíšO÷ÚÓŒˆÅb½“¢%¾þúk¼õÖ[l óôôĬY³‡Âo¼Á–?eÊlÙ²Å)ÇYm9yò$^~ùeίOJJ‚¿¿?RRRpáÂ<úè£ìÝÚÚZ¬Zµ çÏŸÇ Aƒ0g΄……P¿?7mÚ„ƒB©TbÒ¤IHOOüúë¯Ø¸q#ªªªˆW_}þóŸmÚ/SÝ[¦êKJJÂ+¯¼‚;w"66K–,±éýgO½ÇÜ噩nGt@YY6oތ͛7ãܹsX»v­Ù<Ú— ]ÿüóϱgÏdee!++ {öìÁçŸn¶Ì;v`Íš5ˆŠŠÂÎ;±~ýz”””p*óÂ… ؽ{7Ž?Ž]»v¡¸¸X§ì!C†`úôé(--ÅÆͶESß[o½…9sæààÁƒØ´iç}7”ÏÚú\Í–-[0|øp <˜Ý6sæLäääà½÷ÞÃŒ3pèÐ!Ìž=§OŸ¶©®‹/¢©© /½ôRRR““ÃN]_YY‰¸¸8öµ @EE…MõYËYm)//Ç€,Ê“™™‰o¾ùÉÉÉøñÇÙí³fÍÂË/¿Œýû÷#11}ô›öÅ_ ªª ›7oÆ·ß~«³vMnn.^ýu8pùùù8þ¼ÍûÕõL›¹ú”J%öìÙƒøøx—úrú ¤[·nÅ›o¾ ÈÊÊÂæÍ›9¥u—Y³fA$á\ºtɦò4oæ§žz O=õ”Î6@Œµ»víL›6 ½{÷†¿¿?¦OŸÎ©L …ìsKK‹Nšv¾³gÏrÞ‡‘#Gâ‰'ž9rÄåò9Zii)Š‹‹‘••¥³}äÈ‘øöÛo1yòdìÝ»mmmÈÍÍÅøñãmªO"‘ ¢¢Ÿþ9víÚ…°°0äååÚÚÚàíí xçw  -žÅ^œÕ‰D___½í]ÿÇ´ÿÏ’““Ùçúúzvû×_¡C‡ÂÝÝ©©©:çƒbúôé ‚P(ÄÔ©SÙ4TVV¢ººÁÁÁ˜7Ïò_–0W_zz:<==‘žžŽÿüç?œË5uÌìÁâ®6S—}æF<Ú¦ýM×g*K}–:yò$>ûì3ܸqê1ê¶Þ›$‹½zõb·544˜ÍWWW»Á,-“aßµóI$³mÑÔ—ššÊnëºB¡+äs´¼¼g™«/ àïï¯÷Ô—ûŽÇTƒli¬5åÚûà,_¾ÍÍÍX³f âââ0a½“6Ã0&ïìíJ$¡¾¾^'€‰D"ögcûŒÚÚZܺuKïMn®Ls´óiŸ4ÝÜÜ R©À0ŒN×f@@Äb1öïßÏ^IqÑ]ùŒµÓÑ®\¹‚åË—cùòå춤¤$ìß¿Ÿýæ…^À|•J…Å‹cçÎV×§¹ ×Ð~oFGG£¬¬ ñññ€’’ÄÄÄX]—-œÕ–~ýú¡¤¤=ö˜Íe­X±3fÌ@BBär9žyæ6M$¡¶¶úwî?ôÐCX²d àôéÓX²d‰N °÷9Ë\}MMM@ss³^@¶dzi™—úŽÇÙ4Òßß?ýô“Nš¿¿?u×ÛÑ£G æ×œÄoÞ¼Én7nàØ±cl¾±cÇšmË /¼@=¨¢¥¥MMMX·nMej=z”Í7tèPv»±îEMwÄ¿þõ/ÈårÔÔÔàÃ?Ôy¡}ç’ÏÐe¼¹|ö굕¦ï]»¾¨¨H'Xj‚£&XÚ")) H$J¥Øºu+†@ýžØ²e ÐÐЀ­[·âé§Ÿ¶©>k9«- zßgZK.—Ãßßr¹_}õ•NZrr2>ùäˆÅbH¥RáÛ‹-Byy9 Z[[áááa—öc®¾;v@.—cçÎv Èaaaøý÷ß­ÎïôQm®äÝwßEAAþþ÷¿cÔ¨Q:io¾ù&6lØ€Y³faäÈ‘óO™2Û·oGFF†AQQ233ÑÚÚŠõë×ÒÒÒØ‘3¦¤§§C `÷îÝxñÅ„ŒŒ °ºLsçÎáÈ‘#0`€Î÷o¿ý6òóó1}út¶ýšú†ÁðÍ7ß ** ûÛß8í»¹|†˜Ëg¬®èÝwßÅ‚ ÀãñÍ)¡hEEEHOOÇúõëñÊ+¯@&“aذa˜={6õ•ššLš4 €úÞ™gŸ}Ö~;bgµeüøñÈÈÈÀäÉ“Än7v†a––ÆŽj³µ-¯¿þ:,X©TjÕ̆ú)ܧOË’¯]_€±úË6™¼ƒ¦Ì¹ôÔ\‰ërµ™ ¶mÛ†ŠŠŠ{ræK9âÆ{í)snVßÀg›6á“ _Ð@ÚùhÕú¹ @;]ñB¬f͉­;O†¯¾új·•Mì‡SàYµjUw·ƒ8о}ûœÝBˆ¸êÿ:§ÀÃõ²ÕÐzâ:V®\éì&BìÌØ-\ÏÛ²ö6üçäIœÿ/·›]…B!Ä ÀðLJ››uãÓ¨«BîcçΞEsK ¦¾ñ&zûûƒa0·+Ô×ßFïÞêmŒ hjlÄÉS¿àü¹sxTkT¬%œ>sÁ½„Çã±S¯á²Bá·3§‘0½ýý¡T*¡T( P(péÂï8~ôÊJ®¢­M ©T ¹L///ÄÅÆáôë§€²{àÑ>ùöîÝ©©©(//·(¿5i®@ý©€1ûBqJ• ‘ÑÑ:禒+—QYq‘QѨ¸^Ž›ÕÕ:yÂ#" ²àFú®ºåŠGs.)Üwé/IDAT)Á#<‚¿þõ¯ÝQ !„;ÐþP_~­ Õ7ª0v| † †'ñGõ ÔwNãeÝÚÕŠE‹±3¦VTT 99^^^3fŒÎŒµÚ]T]»«L¥µ´´`âĉðööÆðáÃQUU¥Ó‡•+W"** >>>ìì<›6mBPPBBBðý÷ßwË1èºÆ®Ú,X¡Pˆ'žxüñG·¶…BŒ ˆÀ¨1cÁwãC©P@À`Ȱax *ÒêÁ]uëà‚[·n!//C†  žJãÓO?Å÷ßO?ýS¦LÁáÇÜí‚âñxçG3–6þ|„„„ ¡¡«W¯Fvv6þýïë¼æèÑ£8vìüüüðÒK/±wWTT ªª ß|ó æÎ«3Ç‘±ú¬¥½†( ˆÅb,Z´sæÌÁöíÛíR/!„˜³âÃe­ÓÌîžœ óõõÕ9±úúú"11k×®Eÿþýu^ÛÞÞ‘H©TªÛ '{Ciááá8sæ """ÐÜÜŒ~ýú±³kòTWW£OŸ>ze544 r¹B¡PgvZsm1ÅÒ}àñx¨©©AXXjkkÛ·o[\/!äþÃe†ySÞ^ù=^HM@Ù9¢MÉŒŠ¬C©žY¥»pòä ä¿“Ì–ãô™ Œt ‘’’‹fx6¥®®QQQ`*•ÊàE× £¡™2ÜÃÃÃ`{9 $$€zVj.Ë&Bˆ=<äq ϱßÍk§fÀ@Ñ¡`‡SßMgÐôÛ5«ëtèpêÌÌL,[¶ R©ÔäÚ¦Nø]Ó ‘H T*Ùàãl<ÏâÀªY§¾¾Þe–§%„Ü?T*”J%$-ÍhiiFGG:är´··¡±QŒ†1¤­­h½swîØv•åÐÀÓÞÞŽàà`Èd2,]ºÔàkD"‘Ñ%‚ ¥Mœ8999H$¨ªª²ë\MÖߎ‰‰ÁÏ?ÿlQžüü|´··cõêÕHII±ª^B±UmM N8Žövõª±íím8æ Ú¤R» .phàYµjž{î9DGG#22Òàk²³³1zôhƒ'}Ci¹¹¹¨««Cxx8]bÍŸÜÜ\¤¥¥q™§€ââb…Å!Ä‘úÅöGTL ~>RŒs¿Æ¯'O¢oÿþˆŒŽ±[’ÝBq[¬[»sçç@©TªWöU© R©PVzW.]Ä#ƒãÓ/’–6M¥Raûö¯ðFÖ›l9N\@!¤g뇠 ø‹pÇÆàÖB¹Ï9ú>N§C.ãTXƒ˜Ûë!„¸íî2G¡Ù© !„8”É+ž›Õ7ÕB!÷ £ç·ùE!¤Çë è|(¨:LçÃàpjO^¼µž5?{u¦»woÛ !„ô0dÚ;mv­g™±+ꥄ:juàãn b:·B! ¨ €w¯~4W> `¸«Ms9¤êÌÀï̬t”FòB¹i.TäPín7¶»ÍXðÐ\í(a8èh!„¢¡‰š‡æªGOT·+CA§4›Bˆ.MÜÐ<¬ºâÑ:Úßù¸!„]šlšX¡ýlÑæg>tƒŽukB¹Wiâ…vÒ~6yÅÃ@wÜ5w¯€´„BˆÓå¡‚~<1 IDATxœìÝyxÕúðo’6iº§méBÙA ÈV PvP¡.U®ÞŸRY¼>¨(ŠŠˆ¢"¢ E®(–«×+¨‚"h‚ÐRYKi Ý÷%m³Îï4Édš&mÒ¾Ÿçé“t&g›LçtÎÌœ „B!„B!„B!Άga¹¥WB!DcéÕÅD"uó…Sf½nÛªBqj‡w®2µØšN†¦/ÑeÀTÇcà¾g?€[`Ì}dŒÍ*K!ÄùyD GSÙUü²íeýÅnÐt4jªf¯j°œñÐt:Ï?;PTÙ`ð¡ªÂZTÔ"çì-ðù|€¨Õ ¢††AÒÕ’Po6Bœ[EM”*£Á$³\|øû¸;t^³âG úšŽF©÷Ê»óÊà™=ãÑv:åR£uYû.¡º¸B!AnððB(€Çã¡¡´W.Cà)ư‡ûsn !„tT5 ¨¬•âÒ™#œÓô> j5cÔa8R^¥Õ€Ñãè:7h:îžÌè†ßÌžñ¸ö¨Æ`åù—PSZ OOW{ÂÏO ‘H€À@„„z¡ÿ@œH!¤óªªmDyu=®dü†I÷' O¸Äbš«·ªpäçïÑwèD€Ä[ìÐywû hÎx0îtÔw~発;M0eÖëÊÎ~Ò&…ÁŠ‹?_FmI-ÜÄ® ñÄ /Æ@$rÃ0É”Jh*êW$/úp!zz?‹ "„ލ´ªgþ8€¸)!ØÏ“sºóÙE¸’ñ†Ç=€ ‰§CçÅuøóðÿpxçªr2½Wí{99ë5Fïl§¶¤µ%µàóy‹]àê*@EE#B»zãÚÕrÔÔ4ÇãA(@¡T!/·õR9Ôµ TTBj¹7%ÄJÊ*PRV ¹Bw±ÂC»ÀËÓÃäg³sòáëë?_³ù56Ép5;ƒô6¹>ã¯K í‚.þ6©?éXxwþ¿öó„JÍýZJŸ®ÜI¯=7Ïkßáó‰ŸË)/ºüâ§ÄêÒ7_f*¯fÜ`x¦£‚áµó×xÃa¶[Yàñxàñyà 4?¿»‰ûè OO!.ý]ŠÆF%êêd¨¨h@uU#nÝúÁ—²áò¸Å DHke]¸Šè( â§ß/w!Š+êñӉ먬ñ@xhˆÁgoܼ…)CB‘]Pƒ²Ê*øKŒ;ŸÆ&ÊKŠñÜC°ùÇ taçsîüe¼6kŸ¹‰ÂÒrQçCšáë ,©Ô&ÔÓkŦòú$ùA³i_\·× L¶¼9©ËëÅu{ñÀ¤Ñ&—™Ê«·;¯ÚNGyç‡;ëZ¯Âu%uàñ5ï”hhÃÃÇ~¹Ž{‡„bÜ„(ü¼ÿª*ÑØ Ÿ/ÀœsèÙ[†s^ˆ˜Ðò NœOEU JJËÁð O1›d¸UP>_¥Rà @—–C  {·0ø|(•JÜ*,FCƒ |>¡ÁAðñÖœÆWU× ¸´ øKèï‡ÂâRT×ÖA à#Èß~\¼’Ç'ôBÿ¨@ìM»ŠF¹ÝC}±æ¹‰Xûu:JË+à'Ae•&¿êÚzô »Åõ(¬–AíÃÕ` TÊ0¬o(*¾HÃ…K×áëã®!A‰¯Î\.@e]\{˨ M2Ü.,H芺z)$¾Þ jÇo‰´%>¿•Ÿ§;[“—AÇÃ1¯O’Ä‹ëöujæòjFÃNGM§£íx¸Ÿñhº#ÜÝ]‘ðXôé‘› ø|@.SA­fðHBü|àÎe#/ÿ Â"j‘uNŽý†šëIRPT _‘sïï™B…=\A£OÔò<<: ¥žîBüz&³¦ôA´ ?¿nÝ"QQQ†ñÑ]à …RŸOe£Ša mh€—‹OOë>‡Œ«%ȸt £úaà˜{ S(qúr1ò Jì+Äо!Hùæ^ w7W¸ø8|&Ï' Ãü~FS“¾"9æ=p*ª¥ðö‚aÔ`· KŒêïæå§kß?&õGïðœ»V„³×n¢O¯nPªÕºÀ0@UM%ÆêjІb™|µ  EM½ ½#º#ãj!.æÝBTDX;~[¤­èŸY¨[0Ô¦ŸÞÔYŠ~^/®Ûk”NÛièŽ-¯)ãb :ýNçÅu{1e\ŒÙ¼šq…¦ÃqæÎ6ƒN°ð©\¡Ò½çP©T˜ûÌHôêí0 jëä8u2µËUÉTP(Ô¨«/ƒ`N*BìÈÇ V© ò"TÚJŠäŽÃgû²ìçsÆbþÚèê‹i1=ð¿##4Ðïük¶îÉÀôѽPRÕ€Ó׊è-„‡Xˆ?/ ,ȯ>5sÞ݇n!ÞX>o2þ{ø"êåàñ\Ð#ÄOL¾Û~Ì„—‡A/\ÊÍC\lwü‘•‡Y÷ ÄϧnàÔÅÛHY8ß»‚~ÝìyS5^}f*Rþ n"„xA¥VCÚÐO¡Ò¨þÏ­=€ÐÍ™Wh€N\ÈÇÓ÷B“ü¶lþr™RsæÃãA¥R£¬¬Mò8ÿWÆŒzŒZ @Os§d¤ƒ¨¨ªÆäÁa(ª¨‡ Ÿ‡Òj)$žnöóxšôëÃcú¨^psuÁ¡?o¢[ˆ/‚$P©ÊPR-Cú…|Œ‰o1¼=Dºò1*:sJ±?=¡!] T4B,A$tA?œ¹\ˆêÀ],‚«€z¹}#°íÇLt ñAT†Âò:0 Àç3Ñ?ß,Å¡³ùP©Tѯ+|¤ ˜|o”Qý»øÝ½)á“Ýgàíå…àÓÙ9 ™{΃a0w¦ *ªl0ÑÀãA©Rcý7§ 0}t/D†øàfyÄb±¹MJ:_÷^¥RãLæ_Ó 2‚;éøwöSyékþ»þr®yÉüËhxM;ì6|È 0™WK±v<úw,ö BŵRìÛ{*ƒØ±‘˜ùøœJ¿…Šr)Ôj@Ñ(CMýUœ;—ƒØQƒQó0ðô4w÷é T*5\]øpwsE0 ø|Í—ÀE¤™Õ‚aÀ¿sùÀð50ó™LÈ 1^y*_ìÏÂ_r%õêpº ®A±›üý|!—+PQYww¤aʈîxlB|óëßH»X‚ì‚JL…œÂ*,ù¿‘öó„´QŽWgÅB­fp³°ÃûuE}£b‘r¥Ê;C ج¿‹«ŒJ®k£§—¤Jˆ\à Duñ0ÙmÇpuu…J­ŸÇ£VÓßE'`x-E³ÏX¾!@¯³àóÀ(M]—1<è›ëи教uÁèLGØíÅu{1dp´É¼ZŠó5IŸ@”_-ìÿé*.^,ÁýôÆ?þ1 à ?¿ o¿³ 7oæâûjª›ÀðëH×x:8±»7 «Ó¿+R9i£aAÞ`„CÉšV©T¢GW?Ü.«Å¡?sð‰w:¾q»ONµ* ™YÑ321 ‹K°î¿éxl|?Œ†_3òqúRÓyÅÕ¸~«e—`HŸ¸º °ñûL„„† ûv%&Ü …¢nBt ð‚šaà*t5YžÈ h:ž=ºàï›ExfZoäVC,C.¿ó¬D…øšlƒ1ͼšaèæ®6®w¢i±ud-Í Ðt:ƒ0v3—WKq>ã¿>¨¾^¾€¹L…“'òpéR)85tÓþ«ë$>>ȸ–ƒA½ºà‹×„R¥Fqe=^Ýú;|B}tŸãóyºç|ÍNB‘'.Ü£zà»wÃí²:ÝçÏ^-Åà^eøâµx¨¿ÍÅ‘³7‘òÒTÝΖ=goO¼õùxúþ˜uß@<Íç¡®A†÷vžDhh<Ü=p1;rJ±cùCh”)tà îb12®•ÕÙÖ?â§¹;ôùG‡ÁÏ[Œü’ü˜v ‘ÝPSS«yÌ@ÀGúÅÛ˜Û˨ ÍŸÒæñxºÿ6éo£ã38³¸34eêf}úÃf|þÝçeì™×€{úëòpO³ËLåÕR¦f.p2ëuù?g?‡Ü¢*£•ŧòÑTÕoº÷ 4Ä·nçàýþ•o&!(¨ ®\.Ãõk‰‰„›?]<í,ÈÏ¿…†&)\]P«ùèÝ«ê¥ È¹™‹ú£¢¢ U5UèÙ½;nº†@.WàFN†Æ¦&DßÓ|>y·o£QZ>nîžð÷“ çf.ÜÝ\ÐФD×®!øjžÁQ)U((,Bu]-\ù|¨x<ôˆŒ¸{-…róó¡7A¡ÒÜ0 ‰Ùú766áêõlˆD® øP0<ôŒŠ‚ÀE¸r-Aþðôô4نƦ&]ûàZvü$ð󣇪;?owüòÓnÄMy5õœÓÉäJ\Éø ÷Íx •µ  9º3sÁ£4Üù‘ê½oÐÄÚñÜ,¬4YpSeJþ¼Ÿøiÿ7ŸÈdJ%bHzÀÍ:ΈQ3`|½‹—Üjnë4•NÍ0ÃhfB¿óYÍØµîMã¼ Ÿgº*•JsÆebÖ(³õg•Z@`UHçäáîW>ïÿa}GÁ×Çòô4Õ5õ¸}%S¦? …Rs×¥#çjœ;îÏñèJÄŸÖµ7*péìY<0+^ž¾`øø‰!ºÓáÐøu'u為Uß?Ÿ%]³ßr»ØÚ@::i#<Ä"Lº?G~þ·9¦›tdr%¤2‡ÏKƒ{`ê]ãiΫ»bºOmq:BéLêšàïë‰sŸ:L¦P¢^ïŒÂÑóâ™=0ÇBÇÃ9B!,Ê«ê;t^-èwLw<}½Ê±ç`šM*C!¤sèëUŽÃ>göŒçÇ÷GeE9ÀU(âT¨——§ÏÙ Û© ÷B:ƒºº:Ëb¡Ë—›‹ŒŒ³(++cý¬@ €Ÿ¿?†ŠÈnÝ Öܾ…o;Æ©LÖ¡6B![aQ!Nž<ŽI“¦¢[÷îºY50P*”š÷Œõuu())ÁÉÇá*"4$Ôª2ízÏçÊ•+ñøãæ/ZµäblÛ¶ ^^^-NG!Ä´ƒ`ÐÀÁèÕ§ø|>TJ%”J% r9ššÑØØ€††ðx<!** °ºL»u<Ø´iRRRl–çÊ•+‘––FÃh„b# ¥CGhBp=¶ö¿ç(”ìSa±±[Ç“ššŠGy¡¡ÖŠ™R\\ŒÁƒÛ,?Béì†HÄí:¾–@àÒª»u<û÷ïÇÌ™3 –bÔ¨QpwwÇk¯½f°®¶¶ ‹Å>|8òóóuëx<ž.¾·ö½VóÆëÿþí·ß"''{öìÁ?þˆÂÂB[6‘B:,µZ¯¿þ¯UÁë,±[Çsþüy 2Ä`ÙÒ¥K‡ŠŠ Èå†A…–-[†   TVV"!!ÉÉɺuš [ŒÑ{.¤R)âãã1pà@œ?¾-"„ÎA­VcÁ‹/bþsÏ!iñ›w>vëxªªª ‘N‚xèÐ!$%%A,cÉ’%ë¾ÿþ{¼ñÆ‹ÅxþùçqäțԣOŸ>ˆŒŒlõm‡„ÒÑ©Õj¼°`Nž<‰—^zéééX²$Ù¦Ý:‰D‚ª*ÃÙ­+++ºW­²²2DDD@ À×××(­µ„B!€ÏçÓM „bÁ‚ pþüyýí7¬zçüå\¼x/¿üŠÍʰ[Ç3pà@ddd,ó÷÷×= TZZj°.88uuuP©T`†sïªR©tÆmPsB鼦M›†ŸöíÓXI$¾Øµë[Lœ8ÁfeØ­ã™1cvíÚe°lêԩذašššŒn³NHHÀòåËQWW‡üü|<ýôӜʹ~ý:ž|òIˆÅb,^¼Øfõ'„Î衇2ºLâëë‹xÀfeØ­ãILLÄž={PPP [öþûïãèÑ£H$pq1œ4aõêÕ(++CHHÆŒƒ ¸õ®¯¼ò Ö¬Yƒ[·náæÍ›6m!„Û³Û”9~~~X°`’’’ðí·ßºvíŠS§Né>³zõjÝ{OOOìܹ“5OS×höîÝkp½hÛ¶mº÷ÿøÇ? >ÛüwB!mÏ®sµ½ùæ›öÌžõfmgg u@„Ò~œz’PššBZïý÷ÞmÓòlÚñL{g¿-³³hêÛ?™]×Öu!„8ŸCoÌ0»®³üóÚ5$ÑÁU(„@ àœîÌéS–?d†]g§&„Bšk׎çàŠé-úüC"°ç•i-NG!C…S]ã™5®7–|™Žŵí]Bˆ¢cˆcpª¡6‰§ˆvBˆÕèâÚôŒÇßË +fE÷.^øá´áÞî"$?8Ã{!·¬ïìÊ@iM#Ã!9í{íÍWL7¸‘@ÿ÷ƒ+¦ã£ý0gb0 °~ßyœºVb×6BÛ1¤³;’ç#yÙV¤ô€ù[3صiÇó¯Éýp!¯¯¤žÂÓz¬›;±/ªäxlí!<…Mî‡w¿Ë`¾“ᢋ¯O}ôÆßŠy“úRÇCH'ÔšcHg? ŒšŠaÀ¨ÕP1£f ShæÎT© —3N:iuym:Ô6¤{¾?}2¥ »Ós Ö錯þ¸™R…}gsqoT€MÊÜu22… G. ÌßÃ&yBHGSפD]£µJÔ6(PÓ @µTŽªzÍOe½•u2TÔÉZ]V›žñx‹]Q-Õ€Ó¾jùxñŸ…ÁƒæÁP[ÝA_ߤ(UjðY8%„Ò6Ú´ã©mTÀ×]ˆ*© ¾Bƒu•õ2ÌÝx 2¥ªEyª®>*5|Ü…–BiWm:Ô–q£ ÄDAèÂGÂÈîëN\)Æì‰} º ÈGŒ¥ â”gA…£»Bä"À£Íò$„âxÚ´ãÙ~ä uóÇwK§AÕ,ÐÛ¿]…»ß,žŒõ³Gá¯Ü ÎyΛÔÿY4ÅÕ ö¨6!„jÓ¡¶òº&,üü„î÷/~»ª{ß(Wâƒ=Y¬éMÝ’~­éÖý~ 3ßìçénB:7:8§z€”Bˆó£Ž‡BH›²éPÛ‡DÚ2;B±«²1¿µw:%§š$”Bˆý}¿ë£e¦=d³üÛu¨-::ºEŸß½{7bbbL¦ki^E[m.å˜ûÞ´?¶(ÖhŸêxØŽ!䮄™OàáGÇ}ñbêôLºÿ›æïT×x6oÞŒ/¿ü.\0ZgjYgÁöGäHÛÅÜ÷æHu$Û1„´§j+//Gß¾}Û»„'EÇn:ÔP[ii)ž|òI 6 }ô‘Áºúúz,Z´Æ ÃO<¢¢"Ý:íP Ã0FÃ2lC5ÑÑÑØ½{7ÆŽ‹¸¸8;vŒSylNœ8„„Ü{x6möìÙù ãÆÃúõ둘˜ˆ7êÖâÙgŸÅСC1oÞ<rjƒ~»[²]”J%Ö®]‹¸¸8Œ=©©©œÚn)¥z¶txƒmaö­KKK‘˜˜ˆ!C† 11¥¥¥œÊ³v!ŽíBŒu¨¡¶?üÆ É' P( Ö}ôÑGðóóÉ'0yòd¬[·N·N8¦ùÐŒ¥¡š‚‚>|IIIHIIáT›eË–aáÂ…øóÏ?±}ûvœ={–sž ,À_|øøxìÛ·O·ü™gžÁ¼y󞞎‰'â7ÞàÔk·ËæÍ›‘““ƒÝ»wãСC¨¨à6K„¥t\êÙlû‹%æ¶õºuë0xð`¤§§#::~ø!§ò¬Ý_ˆc`û[!m¯M;žôôtÌš5 "‘O?ý´Áº_ýóçχH$ÂO<Ó§OÛ¤Ì9sæÀÍÍ 3fÌ@nnn«Ë‰D¸qãòòòÐ¥K¬ZµŠsžñññºWýÿ´8€˜˜…B<öØcÈÊ2œÁÁ\¬µwï^,[¶ AAAðôôDRR’MÒÙºžlû‹%æ¶õ©S§˜˜‘H„Ù³g#==SyöÚ? qDßïú{¾û~Ù÷íÿG~þÁ¦ù·é5žššøùùüýý ÖUVVbÊ”)µZ žBx{{\]]¡Ö›ÎRyú§âúÿ¥¤¤`ûöíøúë¯Q[[‹¥K—bæÌ™œòtssÓ½*•JÝò´´4¬[·¹¹¹u´Ôk•••!,,Ììzsm·”ÎÖõdÛ_Øê ˜ßÖÍ󬩩áTž½öOBQÂÌ' V3h’+¡VkÁÙâoZ«M;TUUÁßßßh˜& €H$j“ºX*ÏÜ©ø€tÃH'Ož4èx¬mÊ+°bÅ ÄÅÅA.—cäÈ‘-J Ãp>   ááá&×›k»¥t­Áãñ V«Áçß= gÛ_ØêÉÆÛÛÛ ONåµõþIHGÖ¦Cm£GÆÎ;!“ɰsçNƒu“'OÆÇ ©TŠ¢¢",_¾Ü®u±¶¼%K–àúõëP(¨¯¯78Y›§L&ƒD"\.ÇÖ­[[Üüý÷ßœ?5kÖ ¬¬ R©Ÿ|ò‰]ÓqŠÌÌLƒelû‹µFމÔÔTÈd2¤¦¦"&&†Sym½Ò‘µidzxñbœ9s±±±ë.\ˆÊÊJL˜0‰‰‰1b§<ÙîìbcmyS§NÅ’%K0|øplÙ²ï½÷^«ó\ºt)^zé%L:ÁÁÁœÒè›={6æÌ™cò®¶æïà…^@xx80yòdxyyq*ÇÚt\¾£… bÁ‚ëØök-Y²9r$²²²œœÌ©?_þñ¦OQYQ®Y ä6¼——gêBˆ}•••™]7a„6¬‰õêêêZ•~Áº}HˆŸ†Ú…îZŽæÕøv¹Ÿ—§NDÊKSuùܾ…oÛ†O6oy@#€†;?R½÷šlzçÒ¥K¶ÌŽBì*00°½«Ð)Ù´ãéß¿¿-³#„»b;ã!öãTsµBq~ÔñBiS&,B[Õâ¼(,‚cpªÙ©µSšÛrvYš³‰ÎÃÇŽÂËÍ*†£VCÅŒš›+ £¹«M9Óʲœªã¡)Í !­AÇÓ¾ßw°MËkÓŽ§´´III¸zõ*fÍše°®¾¾¯¿þ:Ž?Žž={"%%!!!`ô`$p÷L…k:-m:¶y¾¢££áç燇zYYY1b,X@Â`åÊ•ÈÈÈÀàÁƒñÎ;ï 44€f§^´h®\¹‚Ù³gcëÖ­œêI±/¶cHg7)RŠèƒà*¶èAí3§OY]¦Ó‡Eà’îÂ… xã7ððÛÌÓkBlذƒ ¢iõ q0Á±8}X.é233±ÿ~¬X±‚s]­ a––†9sæ@$ÑÑ´ú„¢áôa,¥+))Áš5k°iÓ&…BÎuµ&„Auuµ®}Ú×Ö¶B:§‹À–N&“áå—_ÆŠ+l65[___TTT 00•••œëI!‰Ó‡E`K÷öÛo#!!Á¦÷ì³…0;v,vìØ™L†¯¾úŠs= !¤3qú°léöîÝ‹×_]7?×°lØB,Z´YYYˆ…P(4N£iõ !DƒÂ"ØImm-¦OŸŽ´´´ö® !Ä ‹ü°ë«o§žñÐ#ºß),‚ƒØºu+mB…EhÁÆ>ÿüslݺHIIAXXX{W‰b…EhN5eŽ3˜;w.æÎÛÞÕ „‡Ea!„´©NÁÔn¶ÒÚ<;Ó”í\¾‡Î´=ˆ}QXÇàTg<Ú)Ím1Ï—ùš¬Ý9i(Gÿãò=8Òö$ÎÍ–Çb=§êxhJsBHkÐ1Ä1´iÇSZZŠ'Ÿ|Æ ÃG}d°®¾¾‹-°aÃðÄO ¨¨H·N;Ã0ŒÑ°Laa!ž}öY :óæÍCaa¡A:}\ÿû·öáR¶a£èèhìÞ½cÇŽE\\Ž;¦[ךíb.ÏÖ´Á\žæê2cÆ dggä£P(0nÜ8£©‘ZÂÚíɶÍHçÄv !mÏéÃ"°…)°–µS¨[úlAA>Œ¤¤$¤¤¤è–[»]ØòlÍ4ðæò4W—ñãÇãèÑ£y¤¥¥¡gÏžF“Á¶„µRÖñq IDATÛ“BPæ(,‚cqú°la Íœ9sàææ†3f 77W·¼5ÛÅ\žö¨§¹ºh;žêêj 4uuuØ·o¦M›f“úتž„ÇàôaØÂØ [ôR6ÞÞÞWWWƒº¶f»˜Ë³5m0—§¹ºÜ{ï½ÈÏÏÇ¡C‡ÀãñpìØ1?~ÜàìÓÚmƦ¥õ$„8§‹À¦€ÏçC.—C(¢ªªÊdzµZ >ßôÉÃ0F.[Ÿ¦Ûc»è³UÌÕE  66Ÿ~ú)âââ°aà <‰„sy–¾[Ô“âœ>,[˜‚ÈÈHìß¿2™ _~ù¥Éô¡¡¡ÈÌÌ4¹ÎÇÇÿý7§z´†=¶‹–-ÛÀV—ñãÇ£¼¼3gÎDiii‹‡Ùؾ[Ö“Òþœ>,[˜íEçÉ“'›3máÂ…X°`É»\fÏž9sæØýn8{lkÛÀ†­.cÆŒD"All,|}}1yòäçÝü{°v{R B…E „tZÂ"BH›¢°íƒÂ"B:- ‹Ð>œjÊB!Î:B!mªÃ„E ¹—!–PXÇàTgüðC£úfddàË/¿Ä‘#GpüøqÀˆ#t36>|ãÆƒ««+§öâŒ(,‚cqú°–Øzêü½{÷bÙ²e ‚§§'’’’të¬ ÑÀV—´´4Ì™3"‘³fÍ2HwêÔ)$&&B$aöìÙHOO7Ê{ÅŠ …··7>ûì3@LLŒ®ŒC‡á¾ûîãTOB±§‹`‰µS盛ƿ¬¬Ìì¼oÖ†h`«Kuuµn›i_µšoÏšš£¼ƒ‚‚Œ–1ï½÷JKKqãÆ ƒ½ !ÄÞœ>,‚µ,•gîT< 7ZÇ¢A_ó0luñõõEEEQYYi°ÎÛÛÛ`{úøø˜m¯¾   H$|üñÇ7n\\Út7 „trNÁZÖ–5kÖ ¬¬ R©Ÿ|ò‰n[ˆ-Sa Øê2vìXìØ±2™ _}õ•Aº‘#G"552™ ©©©ˆ‰‰áÚ|ÄÄÄ`ïÞ½˜4iç4„b N¡­§Îá…Ž„„Lž<^^^ºul!´L…)`«Ë¢E‹••…ØØX…Bƒ3¥%K– ###GŽDVV’““9µ€îZÔ¨Q£8§!„[ °N¤¶¶Ó§OGZZZ«óÚ¿?<ˆ?þØ5#Ä9QX ‹@8غu«M¶sTTæÏŸOßéÔ(,Bû °NàóÏ?ÇÖ­[””³wÕqáÇcëÖ­ôüéÔ(,Bû Û™œÀܹs1wî\›åGÏBÚ“SÍÕF!ÄùQX„b›Î^åµe]h+ÓÚú{'öAaƒSñ8BXGšçÉ‘ê¢ÕQÿ q[“–£°ŽÁ©:šÒœÒt q ¡…aذå¹`ÁìÚµ °k×.,X°€s¾}ô† †'Ÿ|Ò(ô9l!ØB;èÛ¾};üqH¥R‹å±=Ȉ!::Ú }úwYûY OanŸ`KÇÆRûšÿpmŸ¹°¤å(,‚c¡°- ‹À†-ÏW_};wîDSSRSSñꫯrÎW¥Ráĉ6lÖ¯_Ï) [ȶÐZ?üð~üñGlÙ²ËcûŽ,…aÐo߆ tË­ýŽØÂSæ÷ KéÌakŸv[\¸po¼ñ~øáµÏTX ÒrÁ±PX–Ç–gXX¦M›†^x÷ß‹žÅц>˜5kNž<É) [ȶÐpìØ1lÙ²[·n…D"á\Os,…aÐoŸþÁÕÚïÈRx sû„µa-¸„™ÈÌÌÄþýû±bÅŠµÏTX Bœ…E0Sž¹°l,å9}útlÙ²ÅäÒlåé‡E0úÀ¶ l¡`ùòåxôÑGÒ¢zšc) ƒ~ûª««uË­ýŽ,…§0·OXÖÂRûJJJ°fÍlÚ´ B¡sûÓa-qv¡…a´x<Ôj5øü»'–òܶmf̘mÛ¶áÝwßå\žv›UUUÁ××—S]ØB&°…v€o¿ýÉÉÉ8þ<ȹžZÍÃ>X à߾æõ´æ;âžÂšt¦¶5[ûd2^~ùe¬X±Âhz–¶Þç qÁÊòBCC‘™™É9Ï+W®àÒ¥KXµj.^¼ˆ«W¯r.Kú`çÎ3f §º°…L` í]»vÅÚµk±jÕ*Ô××s®'`:ìÀ†A¿}£GÖ-·ö;âžÂÚt¦¶5`¾}o¿ý6L^Ìnë}žGAaZXž~ú po°~ýzÌ™3sæÌá|“€Vll,Μ9ƒE‹qª [ȶÐZaaaxî¹ç°zõêÕÓTØÀrmû/^lÐ.k¾#.á)¬Mgj[æÛ·wï^¼þúë&ïjkí>Hˆ³¢°¤M˜ ÃÝ!î0¢0ΉÂ"PXÒ™ Ãð¿ÿý¯Cì7fÂ9QX„öAaˆÝ±…aèg<fÂyQX„öAaˆÝ±u,ÎÞé£ „´%§š«Bˆóë0a!Ä:†8§:ãa›Òœv$Bˆ%Á18UÇCSšBZƒŽ!Ž¡Ã„Ehþhûéø !މÂ"8–¡½§ã'„8& ‹àX:tX„¶žŽŸBˆe:,‚½¦ã'„b½¡­¦ã'„b½Á¦ã'„b™Ó‡EÐr„éø !„XÖ¦CmAAAøê«¯t¿/\¸P÷ÞÝÝï½÷kz¶;Qžyæ<óÌ3FË FmrØ,)) IIIF˹ԅâ|èn6ÇÐáÃ"tôéø !Ö£°í£C‡EèèÓñBZ‡Â"´¡£OÇO!ÎÈ©æj#„âü(,‚£í@HËÐ1Ä18ÕP›vJsš]–b :†8§j£)Í !­AÇÇÐ!Â"Œ7ëׯGbb"6nܨ[WXXˆgŸ}C‡żyóPXX¨[§T*±víZÄÅÅaôèÑHMM5¨Ott4vìØ)S¦`øðáØ±c‡® ‰‰‰2dQZZÊ©íÖÖ“-´ƒÐúu¡Ð„ÜEa‹Ó‡E€ à‹/¾@||<öíÛ§[þÌ3Ï`Þ¼yHOOÇĉñÆoèÖmÞ¼999ؽ{7:d4wdddàË/¿Ä‘#Gt³W¯[·ƒFzz:¢££ñá‡rn¿5õlIh‡õë×sÚž„t6Á±tˆ°ñññºWýÿú8 ›2ç±ÇCVV–nÝÞ½{±lÙ2ÁÓÓÓä +V¬@hh(¼½½ñÙgŸN:¥ §0{öl¤§§Ûµž- ípòäIÝr í@qT",‚›››îU©Tê–§¥¥aݺuÈÍÍ…Z­6HSVV†°°0Ö|ƒ‚‚,¶¡¦¦Æ`½þ)|óÿª¬©gKB;è×…B;BU‡ ‹ÐÜŠ+°bÅ ÄÅÅA.—´PPP€ðððåéíímÐýp €u¦²Õ³%¡|}} ÚG¡!Ž¨Ã„E0E&“A"‘@.—cëÖ­ëâãã±fÍ”••A*•â“O>á”çÈ‘#uáRSSc×zÜC;Œ3F·œB;BU‡ ‹`ÊÒ¥KñÒK/aêÔ©6X÷ / << ˜Ù¼åQîüHõÞ7hêða:s¡!­CaÚG‡‹Ð°…v „´…EhN5W[gDºB:§š«Bˆóë0a¬{©­ælb+§%u 9¦±…Ep N5ÔÆ6¥¹µCR4”EHçAaƒS µÑ”æ„Ö cˆcèaÌMsÝ»wcìØ±ˆ‹‹Ã±cÇZ®¼¼O=õ† †7Zuʾ}ûv<þøãJ¥ºeæÂ°m36Î.‚¶@a‹Ó‡E°4ÅyAA>Œ¤¤$¤¤¤´:݆ 0hÐ “màâ‡~À?þˆ-[¶ÀÃÃC·Ü\x¶mf‰³„‹ ÄÞ(,‚céaØÌ™3nnn˜1crss[.-- sæÌÑ…"h‰cÇŽaË–-غu+$‰Á:sá Ø¶™%Î.‚Ò¹tˆ°l¼½½®®®F!¬IW]]mŠ 9¶°Ë—/Ç£>Š£tæÂ°m3Kå9R¸BÑêÐaìÁ×× Dee¥Ñz¶Søo¿ýÉÉÉ8þ<h°Î\x¶mf©,‚þ*-¹[ÅÚt‹-BVVbcc! [<$†çž{«W¯6Zg*¼Û6³–³„‹ „tL¡jkk1}út¤¥¥µwU!V °Á)mݺµS¶›Ž€Â"´ ‹`…Ï?ÿ[·nEDDRRR,ÞFqL¡}8Õ\mŽbîܹ˜;wn{WƒBœ’SÍÕF!Äùuú°\Ø{^'¶yã!¶CaƒS µÙ#,‚#ÐÖþ±/ ‹àœj¨¦4'„´CC§ ‹ÀVžµ¡ØB X6ÀR:sa Nœ8„„Ü{x6möìÙù„t4Á±tÚ°låYŠ€-¤€µa¸¤3¦`Ù²eX¸p!þüóOlß¾gÏžåÜB: ‹àX:mX¶ò¬ EÀRÀÚ°\Ò™ S ‰pãÆ äåå¡K—.XµjçvBˆ=uÚ°låYŠ€-¤€µa¸¤3¦ %%Û·oÇ×_ÚÚZ,]º3gÎäT&!„ØS§ ‹ÀVžµ¡ØB p Àãñ V«Áçó[”Δè†Ož\=yúЧtÕ×U¨½©‚GcÖ‰9¥+<®Dÿg4õð/ Ó ëÙýWÝ«þÙ›±ó/À¿Ûxð"„žƒš‚?ï–wákô›²n^¡py¡÷„·9åY‘s‘#@à"F·/¬+¹º=Ƽ ‹CžEEÞ±V×Ó/r*s5ù”\ùÁ}8åY__MþcÇÂËË õõmw‰Òöì6;µD"Ñͪ¬%¯aàæ¯¹¬}Õjªd°;¶`F Ó“ù˜ÐX¦†gXËûÏñ[ÜqñS.ïC^Ë`ør7ôþ?Ëÿ¡7oƒ¼Öð ËEÌÓ½ª¹õ(»qW¼††Êl0ŒÊ`¬¾bßH³iõï>Ó¿)@ÑT¡»æ©l¡‡áÓÙò†rü¾±/L 66[=ý»Ã•ÃÉÕ¡¾ì2ü£¸M7âéé ©T ///¤¥¥¡¦¦žžtG!™Ý:ž"##S§NÕ-ùòÐTÉ@ÀCS…á[ÈGÂQOÜZv—’8úÛjxEw>< ’¡¦cÓ0P€ñŸº Ó”øýÅÓƒã²Ðǰ BïÖßUuqÿsèßö¸j•G> Ö­yvAcu>Ü%Q&Óš»ÍUìEC9„AK ŸÎyvÁ˜ùAàÂv–ÇèÀãݽ™ƒ½ž!ºàúïo!°×àñ]9´èׯÎ;‡¸¸8@ff&Í€AHg·¡¶3f`×®]ËBã\pùsT2Ü‘Ó\¹N…”´PãK9•ÓãWüùv#K(¤ŒÁ}ïn|äì‘CÕÄàÒg†å{¾UWUP+476L̃*òå¡ü‚áö!±.¸´]Ó†¿?“!$¶õ}·ZÙ¡{ Ô*9rN¬1,oÀ?qå×¥ÕC)¯Çõß¹ µùGMBî™MP+›wÆð†„ >âúïoA)¯GSí-\øéY£ôbßHTÝ2ŒvÊVOð‹‚ó_¡KïxNu€'Ÿ|¯¿þ:Š‹‹Q\\Œ+V`Ö¬YŸ¡[¦ éXìÖñ$&&bÏž=(((Ð-úŠŠÒ•øï ðš¯‡¼ì†¦ 5¾Q‡Ÿ“"x·Û¦'¹Á+‚ï«ÃîQug C_uCæûMØ5ºžá†Mí6Ý¿¿Ð€ÿô«Á_É0v½»QÞ÷üK„ƒOH îjöšJþTâë5(ËTbørn×”Øô™ôÎíþþØÔn^†L{Ž]wß(œøl~ߨ®nÜžaê=áTæý#)aà5ÛØ½Ç½EC9Ž}ܧwN_DœQú^ãVâÜ®Ç †òØê ~ÝÆAàâ?ŽÃl€&”ÄСCÑ·o_ôíÛ111˜?¾ÅtúÏðÐó<„8›†EÐ?o½õþþûo|ûí·­­'qEÿÅ—¿Ç½ý¯½«BH§ÑéÃ"4÷æ›oÚ3{â@Ô*ng}®gYþ0!¤S£IB‰MþÀÁýgZü,!¤s³ëé<Úr~7Bˆs£3B!mªCŸñÙ°A÷~Ò¢EíXçaÏmvdçøLÕ“m»X»Íœe{hµt»´4¯ÖæIœ‡Cñhw8ýOûû‘ ðû§Ÿ"ó»ïPu‹Û¤–“-j—·yýIk·[Ûå bªžlÛ¥½ö³¶ÖÒíÒšrì±=Í_HÛsš3žI‹A)“¡º —BÿiÓ 3~–„BˆcsšŽ\D"tïF­FÞÙ³„…A)—ãÒ¡C¨ÈÍ…§¿?¢gÌ€[³ç‰Liª­Åå_EuA|BCÑʸy{N|þ9?ü0<üü —JqjçNŒù׿À·p»þRÚ÷ÚÿÜdõõ¸xàjKJàÝ¥ <ðDæ$cÔjd?Ž¢Ë—Á¨ÕˆŠ‰AÄÙœÙò<²a„îîé×5EE„…¡ûèѺu݆Gþ¹sð DôŒÝ™¨“ Û¶fk;ÛЉ¥6ô4 7NœÇC¿)Sн; "/ÙiiVVBäé‰î11¹çÖú§ù%Θ½ùÕ*Nlߎ˜§žBÚ¶mfëi/7Nœ@þ¹sð ÀÀøxÝ÷`ýúä_`ЃÂÃßÒŠ üµw/FÏ™c1µC_ly²µµÛ…8‡jÓîÔ–vnß°0ÔÐì¼B±ãæÏG`Ïž¸þÇœÊÊüî;DŽqÏ?À=péðaÝ:Ix¸n8¯4;Ý»[ìt´õÖoƒ~;®§¥Á'$ãž{ÞÁÁ¸ž–Æ©ž9§NAZY‰˜'ŸDì¼y74pγû¨QÈËÈ@p¿~(ºrÅ`£VcÜüùðíÚ7ŽçT¶mÍÖv¶¡Kmhª­Eì3Ϡǘ1ÈÖ«ç¥_~AØXŒá yôQTéÍaN@÷î(»qÃ`YEn.<üý!two—!3í÷ C¶^Ûí±_ûEF¢"OC©"/þ‘‘œÒY»]Øòdk;k· ÀýøBìÏ¡:®\D"(åš3¥ÙÙˆ9|„ ÈùúÏè9sà¾@€® ¦¨H·Î/<•ÚŽçúutéÝ»Õu®ÌÏGÄ!໸ bèPTæçsJWtéúŒ‘§'\„Bô3†sžÁýúé^eÍB èÒÝ{¯î`d‰µÛš¥6D‹ ‚ûöECU•n9ßÅÒŠ 4VWCäé‰þz“Ñš…²œ(ššðÛGA)“¡øòetéÕ«Õí°–þ÷P©÷=Øc¿öˆÐ•Q‘—?½Ž‡-µ,åi®ílì±’¶çTCmZJ™ .BÍLÒŠ†œøì3hQ(䊛7q=- UUFé$áá¸zô(dR)ê+*àÑú:75ÁÕ]3œÐÝÊ&nÑIåR)Ü|LÏÏf)O‹‹î•QÆÒ¦suw‡¢‘Û„¬Önk6–Úà"ÒL×Ä ÊŒž1ygÎàVV”2zÅÅ¡kt4kY¾¡¡h¬®Féµk‡òœTäæ¢Ï¤I6i‹5 ¾½¶Ûe¿ŽˆÀ߇A)“¡¦¨ÑÓ§sJg-Kyšk;{샤í9eÇS]Pï`Í”üBŒž=|ö¦0 c0‘ä¥Ã‡ÑwâDøGEQ©plófÝ:‘‡„îî¸qâºwßúC‘ŠÆFÝÝ!oh€‹·ÉE…hª­…ØDçcmžtép5“®ù6㺭[ÂÚ6xwé‚è3•yy¸pà€ÅއÇçÿ[7äœ>€¨(dŸ8ŸÐPÅÜ‚j5ß.\×™bð=èÕÃÚmͶ_»…ð ÀÍÓ§á ûçÍR:®Zò7˜o;[žöØIÛsª¡6¥L†ò›7qí÷ß9l ¨gOÜ8y*¹Muu¸tð Q:±·7ª›]P«Tpuw£RáæéÓFi$áá(ºt A=z´¸ž®nn¨-)1XæüÌL¨•JägfÂ/<œS^!ýúáÚ±cI¥PÉå¸qòd«ó KwëÜ9ƒ!-Sی˶6Õv6Ö¶áÂþý¨//‡Z¥‚R.×ÝY¹TŠ®@V_ £šÚ.\Ö™£ÿ=è_sá²­M±´_ûEFâö_}ç–ÒYbÍߘ¹¶³åÉe»ÐíÒŽÏiþm8²aƒæ?¶.]ÐoÊÝ­Ô=bcqåȤýûßpusC÷Q£ŒÒöˆÅ_{÷B%—ë.,öŠ‹Ãù½{Á0ŒÉ4~w:k†Ù"†Eæ®]P)•ºòzŽ‹‹àØæÍšÿÖõ†9ØD‰ì´4œÞ¹ à jÄÝ:kóÔú}ËÍEwÎô™Úf\¶µ©¶³Ýñfm‚zõÂÅÐP] ??ô¿ï>Néü»uƒ«X ¿nÝàêæ† ž=êfªžZ¦¶ —ul~ß²Eww¡~^–¶µ)–ökÿÈH䤧èÙÒY»],ÕÅ\ÛÙò´v»Çb×°άøÊ”\»†A>ØÞU±9g{bžbž3†Epª¡¶¶¢V©Pxñ¢ÁÄBlƒ:Ž~ò  KŸ>í\BéxœæO[êèÃP½}„ÇFg<„BÚu¿ì¥WpkýM(«­®§v(M;Í×3‘‚‚Œ3"‘cÆŒAÞÓÚ¹¹¹˜:u*ÜÜÜ0qâDäææ•×ü=!„82‡ëxL §õJé‡^)ýŒÞ€¸§®kBÔýU{<ÁÜ=3j Ç»} îᎊŸJuËË*…ÀË=V÷Ç@o”í½»Ž SÃfúÃi-ZKNNÆèÑ£Q]]˜˜,]ºT·nòäÉxå•WPSSƒ‡~óæÍkuy„Òž®ãi)÷^îh¼&ÔgÕÂs°·ÁzÉx?ð\yŒ÷ƒô²T·¼þ|ü¦€çʃï‰.öð믿bñâÅ‹ÅHNNÆa½¸%ÙÙÙ˜4iD"ž}öY¤§§·[= !Äî9ý³.Ľ¨ã!Rhh(~øa¤¦¦¶wU!Í8EÇ£ªSâÖG¹È~ù *~.3z€ôzÒeT­ÀÍ·²‘ýÊUT­(k”¸ýq.²“¯àöǹPÖ( Ò4ÏCÿ½¹p Ö²Þ@Ÿ©È¥ÍßìáØ( ,^¼H$HIIá”'ÇC—.]ðòË/c̘1X±b…Áº×^{ îîî5jŠŠŠ8Õ¥¶¶ ‹Å>|8òóó9µ-ÖÌ™3±ÿ~Nõ „´‡ëxLM™S¾¯ânbôx·.ÖNs7þR$º¿Ù wf¡.ÿ±nQîèñ^¸EŠQ¾·„s=Ì…Sà”Öİ[xKy™ }ÀNÍÊ•+qåÊdee!//%%w·‹¥<ß~ûm¬]»³fÍÂþóƒuJ¥ˆ‹‹Ã«¯¾Ê©.Ë–-CPP*++‘€äädNmgK§5tèPüõ×_œêAi;Nq;µô²‘/GiÂŒóCÕ‘ £ÏÍ ‹¦9]Ÿ4\“"ò•îšÐü‘ÿAç2õÃ)ä}p³ÕmÈÎÎÖ½öÙg9˜Ùüú미pá‚.œÂÀ9¥KMMÅÑ£GѵkWÀš5k8ç9kÖ,ÌŸ?³fÍ‹/¾h°NÚ!)) ƒ âT—ï¿ÿ‹Åxþùçѽ{w›¥óõõEuu5§ü!mÇáÎxL={£’* ˜¢ít Ò5¨té\<] jäVÀ\8k8pýû÷‡‹‹ Äb1';m)¶p €ù»ÉŠŠŠeUžîîîºW…Â0j«6]`` **Œÿ90¥¬¬ ðõõ5*¯5骫«áëëË)?BHÛq¸ŽÇ‡ ”ušƒ¿Jʽ¸  ª×|^Y¯„@¬7_3ݨê;$mºæá¬5wî\¼ûî»hhh@mm­a=ÈdšðÝeeefóh>„§ §À(œ‚öó¦î( 6¸ÆÔ’<ÙhÓ•——ÃÏÏÏh½6$DóºÔÕÕA¥Ra¨Õj“y›jƒ¥tgÏžå|æEi;×ñ˜ºÆãÑÏU¿U€Q0¨þƒûí±î½=taªUÌ^- ¢.£Œ‚AÕ1ãÿÎÍ…S°[xƒ^½z᫯¾Bcc#Ö¯_o2½©ÐláØÌš5 .DQQêêêðú믷:Oºt6lÀÔ©SÖ› ‘€åË—£®®ùùùxúé§Ò™j;—t»víÂ<À¹þ„¶áp)ñAhÊmÄåWÁsásŽð`o4àÆ«Wјۀ€ï†EˆBùO¥¸ùÖu¸ú › §`-¶ðï¿ÿ>^}õU„‡‡›3ú€-œ›·Þz =zô@tt4ÂÃà †£¬ÍМ•H$=zï¿ÿ¾ÑzS!!V¯^²²2„„„`̘1˜0a§¶[JwûömìÙ³‰‰‰œëOiNAÝ Bîê辪·ÝÊ p -ÇãñZõ¨­Íœ9 À›o¾ÙÞU!Ä®œ1,‚SÜÕå{Ká7-5§ª!îéÞÞÕ!n×®]í]BˆNÓñ<¸ùæu¸2'ÌrB!Éi:É$H&ù·IY4ÌÖrŽ4ÌFá® ¨EÅmZ¦Ót<„Bìã•eË ¿`ÔjÍ+(Ê;ËÕzëlÙ²Ùêò¨ã!„µZ µZ æÎ«Z­è!“ÉL®k §¸šBHÇA!„6E!„üÑhîÃêêj8pÀfePÇC!DçàÁƒ˜¯ë|ªªª1sæ?ðÛoGmVu<„Bt6n܈bü„ XöÚk˜vß}0`>øÀx,kQÇC!D‡ÏçcÓÆˆÅ¦M›1jÔ(|øá:ðù¶ë.èvjB!ø|>6~ò bGÆ#< ­¾…Ú ›åDþ¿½»ŠªÞ8þFD”Ñ\,å–8záÖüÌ&͹áH¶“ Ö8Æ^S ÍESÒ¼Zcš™6‰£©ë LY:2 þtœÌ‡ŸEWý%¦hŠOIWá"‹,»{î°§]žöXãóš9³Ë÷ì÷áöœÏ~Ïùžs„âO£[·nü㓽ÚÓQËöz‰B!î~~~.?Ùl65{²±+$ð!Dн;?}çRžs%%twÿL!„èÂbǧ¤ä,K/`2™Úü¬¢(üöï߸rå ±<ÝW!D> œQ£FóÝÉìÿß}˜ÍæV?ëïïOhh(Ñ£G> Üí: <¿ÿþ»S…9û9!„¾£ø_þ—òÔëìàr}N÷x.\¸àráB!þ¼öïßÏÒ.q9ŸjhµZ»¿ ¼wk oº_ÚÙ•Xÿ'®ü/ÜÉã¬;vpõêU–/_îõ²;›V«íôï¼í6èI[|&ð´µR}a…;£=7¨ödmoÓ»+:bÙ½ÑÎö²dÉŠŠŠ(((àøñ㤧§ãïïÏÂ… 5j”Óå8ú®Ÿ:uЬ¬,.^¼HïÞ½ILL$>>EQÐét>ž¼¼<~þùgvìØÀòåËÙ·o/¿ü²WêvEgµå«¯¾"&&†ÐÐP»t_ 2÷ƒö^gx’’’Ðétèt:RRRœš×^òóóÉÎÎÆ`0ðØc±hÑ"ÂÃÛý¢·ý»iô·g2™Ø´i‡`ìØ±Ì;—îNŒß»w/yyyüúë¯<øàƒL›6ØØØ6ËÔjµ :”ÒÒRFŽIqq1qqq¼ùæ›j»ÆŽ˱cLjˆˆàý÷ß硇j³Öú¾ùæ, £GfÁ‚ôìÙÓ©eo)Ÿ»õùƒÁÀ–-[x÷Ýw™7ožšnýuo{›‘ŠŠŠf;EWìܹ“9sæ¨,00´´4>Ìo¼¡–?cÆ 233;%ðtV[ ™ù¤úC·¼¼œuëÖqæÌ†ÊâÅ‹éß¿?Ððýܶm‡Âl63mÚ4øá‡غu+×®]#44”éÓ§ó /x´\mÞj«>­VË”)SÈÉÉaÈ!¬\¹Ò£ïŸ7uèu<ŽºgmèˆC—.]"##ƒŒŒ NŸ>ÍÆæ±í‚6ý{ûöíäç瓜œLrr2ùùùlß¾Ýa™{öìaÆ 8œœ6oÞLii©Sež={–¼¼wëó5™™™Œ9’Ç\M[¸p!Ë–-ãwÞaÁ‚>|˜E‹Q\\ìQ]%%%TUUñÊ+¯DzeËÔ[×_½z•ÈÈHõ³QQQ”••yTŸ»:«-—/_&**Ê¥úè#uÞŽ;¸víìÞ½ÛîÙ5«W¯fæÌ™jkkY½z5±±±Õ§×ë)++cûöíäææÒ¿ÒÓÓ¨­­¥W¯^Ì›7   —oƒâ-Õ½^OŸ>}š¥7ÝÆl·³qãÆ©¯wîÜQÓwîÜÉðáà  >>Þn?pèÐ!RSS #((ˆY³f©ózôèÁÕ«W¹qãýúõcÉ×G|¹ÂQ} ’À÷ßït¹m­3opùP[[Ý>G#ZJ³=gÓtŵ5Ï™ú\UXXȧŸ~Êõëש¯o£îéµIôîÝ[M«¬¬t˜ïöíÛ-sµLEQìþ¶Í§×ë¶ÅZ_||¼šÖô …¾¯£¥§§3kÖ¬f;»“'O’——G\\ñññlذììlÒÒÒˆŽŽv»¾^½z1sæLµ¾3f0iÒ$u^mm-AAAlܸ‘ššuçßÑ:«-}úôA¯×óÀØ¥·µo T_m¯Ú/**B§Óqýúõfwe®¨¨`À€-–·bÅ ¾øâ rssÑëõ¤¤¤0aÂu¾·÷YŽê @£Ñ4ûÚŸ;ÇÓVƒÊÊ•+(..fåÊ•vÀÛû,GõUUUÌÝ»w›dOøùùyô˜Ÿ:ÇÓÙ¬+R£Ñðí·ßÚÍÓh4@á·cÇŽµ˜ßº¿yó¦š6vìXŽ?®æ{î¹ç¶eâĉ@àŠêêjªªªØ´i“GeZ;vLÍ7|øp5½µÃ‹ÖÃ_~ù%F£‘[·nñá‡Ú}¦¥ew&_KÝxGù¼uÔSÖcï¶Çà ì‚¥58Zƒ¥'´Z-:½^Á` ++‹‘#G ߉ÌÌL*++©¬¬$++‹çŸÞ£úÜÕYm‰ŽŽnv>Ó]F£FƒÑhä³Ï>³›7nÜ8>ùä***0 v÷ß{ï=._¾ŒÉd¢¦¦†=zx¥=­qTßž={0äääx% [õïߟŸ~úÉíü>ªÍ—ÌŸ?NÇ믿Î3Ïÿüs¦NŠ¢(””DMM ›7o`„ êÈ™¶$$$н{wòòò˜4iaaaL:Àí2­NŸ>ÍÑ£G‰ŠŠ²;?1wî\Ö¯_OjjªÚ~k}Š¢pðàAvíÚÅÀyõÕWZvGùZâ(_kíôEóçÏgéÒ¥øùùñÖ[o9•§¥h$$$°yóf¦L™B]]#FŒ`Ñ¢E@Õ[·n1mÚ4 áÚ™—^zÉ{ â‚ÎjKll,S§N%11‘°°05½µõÙ–””–-[@bb¢Ý¼×^{ NGRRf³YÝ.ž}öYV¬XÁÍ›7‰ˆˆ`éÒ¥N·¿µvÚ¦7]ë¨>EQ˜0a‚:ªÍÓ¶XÍœ9“¥K—b0ܺsAKÇ)RS’7먬h8ÙVg¬—[æü ܯ¸ ßåkw.ÈÎΦ¬¬ìOyçWuÄ…÷¶·Ì¹yã:ŸnÛÆ'[¶NjCãTcó¾¸'=!„ÛÜÙ±µçÎpúôéíV¶ð§ϺuëÚ»¢íß¿¿³› „辺­;xœí¶¶4†^øŽ?þ¸³› „ð²Ö.‰pv¿]w¯–ï 9óÿÎ]ìDTd#ÿþwºuso|šjBˆ.ìô©SÜ­®fÖ³é«Ñ ( Jãå wîü›¾}ƒÒ õõõTýç?}ǙӧyÒfT¬+:ýÎB!:Ï¿~,&:z}5Ìf3f“ “ÉĹ³?qâØQ.•^ ¶Ö€Á`ÀXWGÏž=‰IñîßJzSÔ÷§ÚÆéžÍk]k=…†e¦!jÕþü¨”Æt!„ÂÊDCੌüÑû±ö|hùP›µ;diÌàߘÙ6è˜[É+„¢ë²vTŒ4ÛÃnêá¶Ö‚‡µ·c¦å c HB!„•5fX'k¯ÇO,à\§¥ S ÅBaÏ7¬“[=Û c{Χx„BسŽ`³Æ ÛW—z<Ö÷þØ–FÄ !„躬ñÂ6Ù¾¶ÙãQ°wíÇ= ÛI!„°RšLšÇ“Vƒ‡Ÿ“¯B!„-ÅÑëÒ©62o¾«JIEND®B`‚auto-complete-1.5.1/doc/changes.md000066400000000000000000000065201267667017000170120ustar00rootroot00000000000000% Auto-Complete - Changes # v1.4 Changes {#changes-v1.4} ## New Options {#new-options_v1.4} * [`ac-use-dictionary-as-stop-words`](manual.html#ac-use-dictionary-as-stop-words) * [`ac-non-trigger-commands`](manual.html#ac-non-trigger-commands) ## New Sources {#new-sources_v1.4} * [`ac-source-ghc-mod`](manual.html#ac-source-ghc-mod) * [`ac-source-slime`](manual.html#ac-source-slime) ## New Dictionaries {#new-dictionaries_v1.4} * erlang-mode * ada-mode ## Fixed Bugs {#fixed-bugs_v1.4} * Rare completion frequency computation error * Improve dictionary caching sterategy * Fixed help-mode error ("help-setup-xref: Symbol's value as variable is void: help-xref-following") * Fixed auto-complete couldn't use pos-tip on Windows * [Added workaround for linum-mode displaying bug](manual.html#linum-mode-bug) # v1.3.1 Changes {#changes_v1.3.1} ## Fixed Bugs {#fixed-bugs_v1.3.1} * Significant bug on css-mode ## Others {#others_v1.3.1} * Added COPYING files # v1.3 Changes {#changes_v1.3} Major changes in v1.3. ## New Options {#new-options_v1.3} * [`ac-disable-faces`](manual.html#ac-disable-faces) * [`ac-show-menu-immediately-on-auto-complete`](manual.html#ac-show-menu-immediately-on-auto-complete) * [`ac-expand-on-auto-complete`](manual.html#ac-expand-on-auto-complete) * [`ac-use-menu-map`](manual.html#ac-use-menu-map) ## New Sources {#new-sources_v1.3} * [`ac-source-semantic-raw`](manual.html#ac-source-semantic-raw) * [`ac-source-css-property`](manual.html#ac-source-css-property) ## New Source Properties {#new-source-properties_v1.3} * [`summary`](manual.html#summary) * [`available`](manual.html#available) ## New Dictionaries {#new-dictionaries_v1.3} * tcl-mode * scheme-mode ## Changed Behaviors {#changed-behaviors_v1.3} * Scoring regarding to candidate length (sort by length) ## Fixed Bugs {#fixed-bugs_v1.3} * Error on Emacs 22.1 * `flyspell-mode` confliction (`M-x flyspell-workaround`) ## Others {#others-v1.3} * Improved word completion performance (#18) * Cooperate with [pos-tip.el](manual.html#show-help-beautifully) * Yasnippet 0.61 support * Fix many bugs # v1.2 Changes {#changes_v1.2} Major changes in v1.2 since v1.0. ## New Features {#new-features_v1.2} * [Completion by Fuzzy Matching](manual.html#completion-by-fuzzy-matching) * [Completion by Dictionary](manual.html#completion-by-dictionary) * [Incremental Filtering](manual.html#filtering-completion-candidates) * [Intelligent Candidate Suggestion](manual.html#candidate-suggestion) * [Trigger Key](manual.html#trigger-key) * [Help](manual.html#Help) ## New Commands {#new-commands_v1.2} * [`auto-complete`](manual.html#auto-complete-command) ## New Options {#new-options_v1.2} * [`ac-delay`](manual.html#ac-delay) * [`ac-auto-show-menu`](manual.html#ac-auto-show-menu) * [`ac-use-fuzzy`](manual.html#ac-use-fuzzy) * [`ac-use-comphist`](manual.html#ac-use-comphist) * [`ac-ignores`](manual.html#ac-ignores) * [`ac-ignore-case`](manual.html#ac-ignore-case) * [`ac-mode-map`](manual.html#ac-mode-map) ## New Sources {#new-sources_v1.2} * [`ac-source-dictionary`](manual.html#ac-source-dictionary) ## Changed Behaviors {#changed-behaviors_v1.2} * Completion is now delayed to start ([`ac-delay`](manual.html#ac-delay)) * Completion menu is now delayed to show ([`ac-auto-show-menu`](manual.html#ac-auto-show-menu)) ## Others {#others_v1.2} * Fix many bugs * Improve performance auto-complete-1.5.1/doc/manual.md000066400000000000000000001355741267667017000166730ustar00rootroot00000000000000% Auto-Complete - User Manual # Introduction Auto-Complete (a.k.a `auto-complete.el`, `auto-complete-mode`) is an extension that automates and advances the completion-system of GNU Emacs. It is superior to the old system. Features include: * Visual interface * Reduce overhead of completion by using a statistical method * Extensibility This user manual covers from how to install and use to how to extend. Please contact me if you have any questions. Auto Complete Mode is licensed under the terms of GPLv3. And this document is licensed under the term of GFDL. # Downloads You can download the latest auto-complete from [the official site](http://auto-complete.org/). # Installation ## Requirements * 800MHz or higher CPU * 256MB or higher RAM * GNU Emacs 24 or later ## Installation You can install `auto-complete.el` from [MELPA](https://melpa.org/#/) or [MELPA Stable](https://stable.melpa.org/#/) with package.el. Add following configurations for initializing package.el. ```emacs-lisp (require 'package) ;; If you want to use latest version (add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/")) ;; If you want to use last tagged version (add-to-list 'package-archives '("melpa-stable" . "https://stable.melpa.org/packages/")) (package-initialize) ``` Then You can install auto-complete by - `M-x package-list-packages` and select auto-complete - `M-x package-refresh-contents` and `M-x package-install auto-complete` ## After-Installation Check Type some characters in \*scratch\* buffer in a restarted or newly-launched Emacs. Installation has been successful if you see a completion menu. If you have an error or no completion is started, it could be a failure. Please contact me in such case with confirmation following: * Characters `AC` in mode-line? If you don't see characters `AC` in mode-line (a gray line of bottom of buffer), `auto-complete-mode` is not enabled. Type `M-x auto-complete-mode` to enable and try again. * Error occurred If you have \*Backtrace* with errors or errors in minibuffer (bottom of frame), please contact me with the errors. # Basic Usage First, in a meaning, `auto-complete-mode` has no "usage". Because `auto-complete-mode` is designed to fade into the Emacs editing system. Users will receive a highly-developed completion system automatically without any difficulty. Ultimately, a goal of `auto-complete-mode` is to provide a system that does what users want without any command, but it is impossible to accomplish 100% accuracy actually. So there is "usage" to cover those points. ## Input Characters Inputting characters is basic. Completions will never be shown without any character. So when completion will be started, what character causes completion to be started? It is a good question but it is difficult to answer here. In simple words, completion will be started when a character is inserted. See [`ac-trigger-commands`][] for more details. ![Inputting Characters](ac.png) ## Completion by TAB After completion is started, completion by TAB will be enabled temporarily. Completion by TAB is the most important and most frequent used command. TAB has several meanings. * Case that only one candidate remains If only one candidate remains, the candidate will be used to complete. * Case that there is a common part among candidates For example, if all candidates start with "set", it means they have a common part "set". So TAB completes "set" at first. * Otherwise Otherwise, select candidates in cycle by typing TAB. It may be a little different according to settings, but basically completion by TAB works as we wrote above. A reason why TAB has several meanings is that we want users to do anything with TAB. ## Completion by RET Like completion by TAB but some points are different: * Complete a selected candidate immediately * Execute an action if a selected candidate has the action It is necessary to type TAB a few times for completion by TAB. Completion by RET instead complete a selected candidate immediately, so when you see a candidate you want, just type RET. If the candidate has an action, the action will be executed. Take a example of builtin abbrev completion. In completion by TAB, an abbrev which expands "www" to "World Wide Web" will be completed to "www", but in completion by RET, the abbrev will be expanded to "World Wide Web" as completion. ## Candidate Selection Following the `auto-complete-mode` philosophy, it is not recommended to manually select candidates. That means it has been failed to guess the completion, and also it requires users to do candidate selection which is a high cost operation. We think there are so many cases that requires to do candidate selection, because completion by TAB will help candidate selection somehow and in recent versions, a statistical method contributes to make a candidate suggestion more accurate. However, actually, this is such cases. So we also think it is not bad idea to remember how to select candidates. Selecting candidates is not a complex operation. You can select candidates forward or backward by cursor key or `M-p` and `M-n`. According to settings, a behavior of completion by TAB will be changed as a behavior of completion by RET. See [`ac-dwim`]() for more details. There are other ways to select candidates. `M-1` to select candidate 1, `M-2` to select candidate 2, and so on. ## Help `auto-complete-mode` has two types of help functionalities called *Quick Help* and *Buffer Help*. They are different in a point of displaying. Quick help will appear at the side of completion menu, so you can easily see that, but there is a problem if there is no space to display the help. Quick help will be shown automatically. To use quick help, you need to set [`ac-use-quick-help`][] to `t`. Delay time to show quick help is given by [`ac-quick-help-delay`][]. On the other side, buffer help will not be shown without any instructions from users. Buffer help literally displays help in a buffer in another window. It costs more to see than quick help, but it has more readability. To show buffer help, press `C-?` or `f1`. By pressing `C-M-v` or `C-M-S-v` after showing buffer help, you can scroll forward or backward through the help buffer. Other commands will be fallbacked and buffer help will be closed. ## Summary Completion will be started by inserting characters. After completion is started, operations in the following table will be enabled temporarily. After completion is finished, these operations will be disabled. | Key | Command | Description | |---------------|---------------|---------------------------| | `TAB`, `C-i` | `ac-expand` | Completion by TAB | | `RET`, `C-m` | `ac-complete` | Completion by RET | | `down`, `M-n` | `ac-next` | Select next candidate | | `up`, `M-p` | `ac-previous` | Select previous candidate | | `C-?`, `f1` | `ac-help` | Show buffer help | To stop completion, simply use `C-g`. # Advanced Usage ## `auto-complete` command Basically there is an assumption that `auto-complete-mode` will be started automatically, but there is also exception. For example, that is a case that an user wants to complete without inserting any character or a case not to start `auto-complete-mode` automatically by settings. A command called `auto-complete` is useful in such cases, which is used with key binding in general. The following code changes a default completion command to more advanced feature that `auto-complete-mode` provides. ```emacs-lisp (define-key ac-mode-map (kbd "M-TAB") 'auto-complete) ``` So, as of `auto-complete` command, it is a little different from an original automatic completion. * Case that only one candidate remains Complete immediately without showing completion menu. * Case that no candidates remains Attempt to complete with fuzzy matching. See [Completion by Fuzzy Matching][] for more details. * Otherwise Otherwise start completion with/without expanding a whole common part and showing completion menu. See also [`ac-show-menu-immediately-on-auto-complete`][] and [`ac-expand-on-auto-complete`][]. ## Completion by Fuzzy Matching In a case that there are no candidates by `auto-complete` command or the case where `ac-fuzzy-complete` command is executed, `auto-complete-mode` attempts to complete with fuzzy matching instead of the usual exact matching. Parameters of fuzzy matching have already been optimized for use, so users don't need to change them. However if you want to know the internals, see `fuzzy.el`. Using completion by fuzzy matching, typos will be fixed as a series of completion. For instance, input "messaeg" in a buffer, and then do `M-x auto-complete` or `M-x ac-fuzzy-complete`. The cursor color will be changed to red if completion has been successful, and then you can continue to complete, regarding "messaeg" as "message". It is not a bad idea to bind `auto-complete` command to some key to handle such cases. ![Fuzzy matching](ac-fuzzy.png) ## Filtering Completion Candidates You can start filtering by `C-s`(You need to set `ac-use-menu-map` to `t`). The cursor color will change to blue. Then input characters to filter. It is possible to do completion by TAB or select candidates, which changes the cursor color to original so that telling filtering completion candidates has done. The filtering string will be restored when `C-s` again. To delete the filter string, press `DEL` or `C-h`. Other general operations is not allowed there. ![Filtering](ac-isearch.png) ## Trigger Key It is difficult what key `auto-complete` command is bound to. It should be bound to a key which is easy to press as much as possible because completion operation is often happened. However, it is a major problem that there is no empty key to press easily. `auto-complete-mode` provides a feature called *Trigger Key* that handles such the problem. Using trigger key, you can use an arbitrary key temporarily if necessary. The following code uses `TAB` as trigger key. ```emacs-lisp (ac-set-trigger-key "TAB") ``` Trigger key will be enabled after inserting characters. Otherwise it is dealt as an usual command (TAB will be indent). Generally, trigger key is used with `ac-auto-start` being `nil`. ```emacs-lisp (setq ac-auto-start nil) ``` As of `ac-auto-start`, see [Not to complete automatically][] or [`ac-auto-start`][] for more details. ## Candidate Suggestion `auto-complete-mode` analyzes completion operations one by one and reduces overheads of completion as much as possible. For example, having a candidate "foobar" been completed few times, `auto-complete-mode` arranges it to top of the candidates next time and make a situation that allows users to complete the word with one time TAB or few times TAB. It is called `comphist` internally, and you can use it by setting `ac-use-comphist` to `t`. It is enabled by default. Collection operations data will be stored in `user-emacs-directory` or `~/.emacs.d/` with a name `ac-comphist.dat`. `auto-complete-mode` collects two types of data to accomplish accurate candidate suggestion. * Count of completion * Position of completion Simply saying, it collects not only a completion count but also a position of completion. A completion candidate will be scored with the count and the point. If you complete `find-file` with a word f few times, in next time `find-file` will be arranged to top of candidates. However it is too simple. Actually `find-file` with `find-` will not have the same score, because a distance between `f` and `find-` will reduce a weight of scoring. It means that if you often complete `find-library` after `find-`, `find-library` will get high score than `find-file` at that position. So `auto-complete-mode` can guess `find-file` will be top after `f` and `find-library` will be top after `find-` as it seems to learn from users' operations. ## Completion by Dictionary Dictionary is a simple list of string. There is three types of dictionary: user defined dictionary, major mode dictionary, and extension dictionary. You need to add `ac-source-dictionary` to `ac-sources` (default). See [Source][] for more details. ### User Defined Dictionary# User defined dictionary is composed of a list of string specified `ac-user-dictionary` and dictionary files specified by `ac-user-dictionary-files`. Dictionary file is a word list separated with newline. User defined dictionary is shared with all buffers. Here is example adding your mail address to dictionary. ```emacs-lisp (add-to-list 'ac-user-dictionary "foobar@example.com") ``` Setting will be applied immediately. Try to input "foo" in a buffer. You may see `foobar@example.com` as a completion candidate. This setting will be cleared if Emacs will quit. You need to write the following code to keep setting in next Emacs launching. ```emacs-lisp (setq ac-user-dictionary '("foobar@example.com" "hogehoge@example.com")) ``` There is more easy way to add word to dictionary. Files specified by `ac-user-dictionary-files` will be treated as dictionary files. By default, `~/.dict` will be a dictionary file, so edit `~/.dict` like: ``` foobar@example.com hogehoge@example.com ``` As we said, words are separated with newline. They are not applied immediately, because `auto-complete-mode` uses cache not to load every time from a dictionary file. It may be high cost. To clear cache, do `M-x ac-clear-dictionary-cache`. After that, dictionary files will be load absolutely. No need to say perhaps, you can use other files as dictionary file by adding to `ac-user-dictionary-files`. ### Major Mode Dictionary and Extension Dictionary You can use other dictionaries for every major-modes and extensions. A dictionary will loaded from a directory specified with `ac-dictionary-directories`. `ac-dictionary-directories` may be the following setting if you followed [Installation][] instructions. ```emacs-lisp (add-to-list 'ac-dictionary-directories "~/.emacs.d/ac-dict") ``` A dictionary named `c++-mode` for specific major-mode and a dictionary named `txt` for specific extension will be stored in the directory. For instance, you complete in a buffer named `a.cpp` with dictionary completion, following the setting above, `~/.emacs.d/ac-dict/c++-mode` and `~/.emacs.d/ac-dict/cpp` will be loaded as dictionary file. You can edit the dictionary files and make a new one. In addition, you can add a new dictionary file to a directory that has same configuration. As same as user defined dictionary, after editing and adding dictionary, you should do `M-x ac-clear-dictionary-cache` to apply changes. # Source *Source* is a concept that ensures the extensibility of `auto-complete-mode`. Simply saying, source is a description of: * How to generate completion candidates * How to complete * How to show Anybody who knows a little Emacs Lisp can define a source easily. See [Extend][] for how to define a source. Here we will explain how to use built-in sources. Usually a source name starts with `ac-source-`. So you can list sources with `apropos` (`M-x apropos RET ^ac-source-`). You may see `ac-source-filename` and `ac-source-dictionary` which are entities of sources. ## Using Source If you wrote `(ac-config-default)` in your `.emacs.d/init.el`, it is rare to change a source setting because it is already optimized to use. Here is a short explanation about source however. Sources will be used by setting `ac-sources` to a list of sources. You can see the setting by evaluating `ac-sources` in \*scratch\* buffer: ```emacs-lisp ;; Formatted (ac-source-filename ac-source-functions ac-source-yasnippet ac-source-variables ac-source-symbols ac-source-features ac-source-abbrev ac-source-words-in-same-mode-buffers ac-source-dictionary) ``` As you see, `ac-sources` in \*scratch\* buffer has six sources. We explain each source for detail, you can guess meanings of sources. It is worth to remember that `ac-sources` is a buffer local variable, which means each `ac-sources` for buffers will be different. Here is an example. Imagine you are at the \*scratch\* buffer. As we said, this buffer has many sources. Some people think there are too many. So try to change `ac-sources` to reduce functionality. It is easy to change. Just evaluate the following code in the \*scratch\* buffer or with `M-:`: ```emacs-lisp (setq ac-sources '(ac-source-symbols ac-source-words-in-same-mode-buffers)) ``` This example changes `ac-source` setting and enable only symbol completion and word completion among same major modes. Then, how can we enable this setting in next Emacs launching? We can change settings by adding a hook which is called when \*scratch\* buffer is created. ```emacs-lisp (defun my-ac-emacs-lisp-mode () (setq ac-sources '(ac-source-symbols ac-source-words-in-same-mode-buffers))) (add-hook 'emacs-lisp-mode-hook 'my-ac-emacs-lisp-mode) ``` If the code `(ac-config-default)` is written in `.emacs.d/init.el`, the code above may not work correctly. This is because `(ac-config-default)` will overwrite the setting. In such case, you can redefine a function which is used in `(ac-config-default)`. The function name is `ac-emacs-lisp-mode-setup` in `emacs-lisp-mode`. See `auto-complete-config.el` for more details. ```emacs-lisp (defun ac-emacs-lisp-mode-setup () (setq ac-sources '(ac-source-symbols ac-source-words-in-same-mode-buffers))) ``` So, now you know how to change sources in a specific major mode. Summary is: 1. Define a function changing `ac-sources` 2. Register the function to proper mode hooks (`c++-mode-hook`, `ruby-mode-hook`, and `python-mode-hook`, etc) By the way, how can we change a setting for all buffers? We use `setq-default` to change `ac-sources` instead of `setq` in such case. Then the default value of `ac-sources` will be changed to the value you specified. ```emacs-lisp (setq-default ac-sources '(ac-source-words-in-all-buffer)) ``` There are other ways to do that. `(ac-config-default)` changes the default value of `ac-sources` by registering a hook for `auto-complete-mode`. The registered function is `ac-common-setup` that adds `ac-source-filename` to the first of `ac-sources` by default. So all `auto-complete-mode` enabled buffer will have `ac-source-filename` at the first of `ac-sources`. A reason why adding to the first is relating to [Omni Completion][]. Anyway you don't care about it here. So if you want to change `ac-sources` of all buffer, you can redefine `ac-common-setup` function to do that. ```emacs-lisp ;; Add ac-source-dictionary to ac-sources of all buffer (defun ac-common-setup () (setq ac-sources (append ac-sources '(ac-source-dictionary)))) ``` ## Builtin Sources Here are defined sources in `auto-complete.el` and `auto-complete-config.el`. ### `ac-source-abbrev` A source for Emacs abbreviation function. See `info emacs Abbrevs` about abbreviation function. ### `ac-source-css-property`# A source for CSS property. ### `ac-source-dictionary` A source for dictionary. See [Completion by Dictionary][] about dictionary. ### `ac-source-eclim` A source for [Emacs-eclim](http://github.com/senny/emacs-eclim). ### `ac-source-features` A source for completing features which are available with `(require '`. ### `ac-source-filename` A source for completing file name. Completion will be started after inserting `/`. ### `ac-source-files-in-current-dir` A source for completing files in a current directory. It may be useful with `eshell`. ### `ac-source-functions` A source for completing Emacs Lisp functions. It is available only after `(`. ### `ac-source-ghc-mod` A source for [ghc-mod](http://www.mew.org/~kazu/proj/ghc-mod/en/). ### `ac-source-gtags` A source for completing tags of [Global](http://www.tamacom.com/global.html). ### `ac-source-imenu` A source for completing `imenu` nodes. See `info emacs imenu` for details. ### `ac-source-semantic` A source for [Semantic](http://cedet.sourceforge.net/semantic.shtml). It can be used for completing member name for C/C++. ### `ac-source-slime` A source for [SLIME](http://common-lisp.net/project/slime/). ### `ac-source-semantic-raw` Unlike `ac-source-semantic`, this source is for completing symbols in a raw namespace. ### `ac-source-symbols` A source for completing Emacs Lisp symbols. ### `ac-source-variables` A source for completing Emacs Lisp symbols. ### `ac-source-words-in-all-buffer` A source for completing words in all buffer. Unlikely [`ac-source-words-in-same-mode-buffers`][], it doesn't regard major-mode. ### `ac-source-words-in-buffer` A source for completing words in a current buffer. ### `ac-source-words-in-same-mode-buffers` A source for completing words which are collected over buffers whom major-mode is same to of a current buffer. For example, words will shared among `a.cpp` and `b.cpp`, but not shared among `a.pl` and `b.cpp` because they are different major-mode buffers. Usually this source is more useful than [`ac-source-words-in-all-buffer`](#). ### `ac-source-yasnippet` A source for [Yasnippet](http://code.google.com/p/yasnippet/) to complete and expand snippets. # Tips ## Not to complete automatically If you are being annoyed with displaying completion menu, you can disable automatic starting completion by setting `ac-auto-start` to `nil`. ```emacs-lisp (setq ac-auto-start nil) ``` You need to bind some key to `auto-complete` command (because you need to complete anyway). For example, bind to `ac-mode-map`, which is a key map for `auto-complete-mode` enabled buffer: ```emacs-lisp (define-key ac-mode-map (kbd "M-TAB") 'auto-complete) ``` Or bind to global key map. ```emacs-lisp (global-set-key "\M-/" 'auto-complete) ``` In addition, if you allow to start completion automatically but also want to be silent as much as possible, you can do it by setting `ac-auto-start` to an prefix length integer. For example, if you want to start completion automatically when you has inserted 4 or more characters, just set `ac-auto-start` to 4: ```emacs-lisp (setq ac-auto-start 4) ``` Setting `ac-auto-start` to large number will result in good for performance. Lesser `ac-auto-start`, more high cost to produce completion candidates, because there will be so many candidates necessarily. If you feel `auto-complete-mode` is stalling, change `ac-auto-start` to a larger number or `nil`. See [`ac-auto-start`][] for more details. And consider to use [Trigger Key][]. ## Not to show completion menu automatically There is another approach to solve the annoying problem is that not to show completion menu automatically. Not to show completion menu automatically, set [`ac-auto-show-menu`][] to `nil`. ```emacs-lisp (setq ac-auto-show-menu nil) ``` When you select or filter candidates, completion menu will be shown. In other way, you can delay showing completion menu by setting `ac-auto-show-menu` to seconds in real number. ```emacs-lisp ;; Show 0.8 second later (setq ac-auto-show-menu 0.8) ``` This interface has both good points of completely automatic completion and completely non-automatic completion. This may be default in the future. ## Stop completion You can stop completion by pressing `C-g`. However you won't press `C-g` while defining a macro. In such case, it is a good idea to bind some key to `ac-completing-map`. ```emacs-lisp (define-key ac-completing-map "\M-/" 'ac-stop) ``` Now you can stop completion by pressing `M-/`. ## Finish completion by TAB As we described above, there is many behaviors in TAB. You need to use TAB and RET properly, but there is a simple interface that bind RET to original and TAB to finish completion: ```emacs-lisp (define-key ac-completing-map "\t" 'ac-complete) (define-key ac-completing-map "\r" nil) ``` ## Select candidates with C-n/C-p only when completion menu is displayed By evaluating the following code, you can select candidates with C-n/C-p, but it might be annoying sometimes. ```emacs-lisp ;; Bad config (define-key ac-completing-map "\C-n" 'ac-next) (define-key ac-completing-map "\C-p" 'ac-previous) ``` In this case, it is better that selecting candidates is enabled only when completion menu is displayed so that the key input will not be taken as much as possible. `ac-menu-map` is a keymap for completion on completion menu which is enabled when `ac-use-menu-map` is `t`. ```emacs-lisp (setq ac-use-menu-map t) ;; Default settings (define-key ac-menu-map "\C-n" 'ac-next) (define-key ac-menu-map "\C-p" 'ac-previous) ``` See [`ac-use-menu-map`][] and [`ac-menu-map`][] for more details. ## Not to use quick help A tooltip help that is shown when completing is called quick help. You can disable it if you don't want to use it: ```emacs-lisp (setq ac-use-quick-help nil) ``` ## Change a height of completion menu Set `ac-menu-height` to number of lines. ```emacs-lisp ;; 20 lines (setq ac-menu-height 20) ``` ## Enable `auto-complete-mode` automatically for specific modes `auto-complete-mode` won't be enabled automatically for modes that are not in `ac-modes`. So you need to set if necessary: ```emacs-lisp (add-to-list 'ac-modes 'brandnew-mode) ``` ## Ignore case There is three ways to distinguish upper case and lower case. ```emacs-lisp ;; Just ignore case (setq ac-ignore-case t) ;; Ignore case if completion target string doesn't include upper characters (setq ac-ignore-case 'smart) ;; Distinguish case (setq ac-ignore-case nil) ``` Default is `smart`. ## Stop completion automatically after inserting specific words Set `ac-stop-words` to words that stops completion automatically. In ruby, some people want to stop completion automatically after inserting "end": ``` (add-hook 'ruby-mode-hook (lambda () (make-local-variable 'ac-stop-words) (add-to-list 'ac-stop-words "end"))) ``` Note that `ac-stop-words` is not a buffer local variable, so you need to make it buffer local with `make-local-variable` if it is buffer specific setting. ## Change colors Colors settings are following: | Face | Description | |----------------------|---------------------------------------| | `ac-completion-face` | Foreground color of inline completion | | `ac-candidate-face` | Color of completion menu | | `ac-selection-face` | Selection color of completion menu | To change face background color, use `set-face-background`. To change face foreground color, use `set-face-foreground`. To set underline, use `set-face-underline`. ```emacs-lisp ;; Examples (set-face-background 'ac-candidate-face "lightgray") (set-face-underline 'ac-candidate-face "darkgray") (set-face-background 'ac-selection-face "steelblue") ``` ## Change default sources Read [Source][] first if you don't familiar with sources. To change default of sources, use `setq-default`: ```emacs-lisp (setq-default ac-sources '(ac-source-words-in-all-buffer)) ``` ## Change sources for specific major modes For example, you may want to use specific sources for C++ buffers. To do that, register a hook by `add-hook` and change `ac-sources` properly: ```emacs-lisp (add-hook 'c++-mode (lambda () (add-to-list 'ac-sources 'ac-source-semantic))) ``` ## Completion with specific source You can start completion with specific source. For example, if you want to complete file name, do `M-x ac-complete-filename` at point. Or if you want to complete C/C++ member name, do `M-x ac-complete-semantic` at point. Usually, you may bind them to some key like: ```emacs-lisp ;; Complete member name by C-c . for C++ mode. (add-hook 'c++-mode-hook (lambda () (local-set-key (kbd "C-c .") 'ac-complete-semantic))) ;; Complete file name by C-c / (global-set-key (kbd "C-c /") 'ac-complete-filename) ``` Generally, such commands will be automatically available when sources are defined. Assume that a source named `ac-source-foobar` is being defined for example, a command called `ac-complete-foobar` will be also defined automatically. See also [Builtin Sources][] for available commands. If you want to use multiple sources for a command, you need to define a command for it like: ```emacs-lisp (defun semantic-and-gtags-complete () (interactive) (auto-complete '(ac-source-semantic ac-source-gtags))) ``` `auto-complete` function can take an alternative of `ac-sources`. ## Show help persistently Use `ac-persist-help` instead of `ac-help`, which is bound to `M-` and `C-M-?`. ## Show a lastly completed candidate help `ac-last-help` command shows a lastly completed candidate help in a `ac-help` (buffer help) form. If you give an argument by `C-u` or just call `ac-last-persist-help`, its help buffer will not disappear automatically. `ac-last-quick-help` command show a lastly completed candidate help in a `ac-quick-help` (quick help) form. It is useful if you want to see a function documentation, for example. You may bind keys to these command like: ```emacs-lisp (define-key ac-mode-map (kbd "C-c h") 'ac-last-quick-help) (define-key ac-mode-map (kbd "C-c H") 'ac-last-help) ``` ## Show help beautifully If [pos-tip.el](http://www.emacswiki.org/emacs-en/PosTip) is installed, `auto-complete-mode` uses its native rendering engine for displaying quick help instead of legacy one. # Third-party Extensions ## SLIME See [ac-slime](https://github.com/purcell/ac-slime) page. ## Scala See [ENSIME](https://github.com/aemoncannon/ensime) page. # Configuration Any configuration item will be set in `.emacs.d/init.el` or with `M-x customize-group RET auto-complete RET`. ## `ac-delay` Delay time to start completion in real number seconds. It is a trade-off of responsiveness and performance. ## `ac-auto-show-menu` Show completion menu automatically if `t` specified. `t` means always automatically showing completion menu. `nil` means never showing completion menu. Real number means delay time in seconds. ## `ac-show-menu-immediately-on-auto-complete` Whether or not to show completion menu immediately on `auto-complete` command. If inline completion has already been showed, this configuration will be ignored. ## `ac-expand-on-auto-complete` Whether or not to expand a common part of whole candidates. ## `ac-disable-faces` Specify a list of face symbols for disabling auto completion. Auto completion will not be started if a face text property at a point is included in the list. ## `ac-stop-flymake-on-completing` Whether or not to stop Flymake on completion. ## `ac-use-fuzzy` Whether or not to use [fuzzy matching](#Completion_by_Fuzzy_Matching). ## `ac-fuzzy-cursor-color` Change cursor color to specified color when [Completion by Fuzzy Matching][] is started. `nil` means never changed. Available colors can be seen with `M-x list-colors-display`. ## `ac-use-comphist` Whether or not to use [Candidate Suggestion][]. `nil` means never using it and get performance better maybe. ## `ac-comphist-threshold` Specify a percentage of limiting lower scored candidates. 100% for whole scores. ## `ac-comphist-file` Specify a file stores data of [Candidate Suggestion][]. ## `ac-use-quick-help` Whether or not to use quick help. ## `ac-quick-help-delay` Delay time to show quick help in real number seconds. ## `ac-menu-height` Specify an integer of lines of completion menu. ## `ac-quick-help-height` Specify an integer of lines of quick help. ## `ac-quick-help-prefer-pos-tip` Whether or not auto-complete prefers native tooltip with pos-tip than overlap popup for displaying quick help. If non-nil, you also need to install [pos-tip.el](http://www.emacswiki.org/emacs/PosTip) so that displaying tooltip can work well. ## `ac-candidate-limit` Limit a number of candidates. Specifying an integer, the value will be a limit of candidates. `nil` means no limit. ## `ac-modes` Specify major modes as a list of symbols that will be enabled automatically if `global-auto-complete-mode` is enabled. ## `ac-compatible-packages-regexp` Specify a regexp that identifies starting completion or not for that package. ## `ac-non-trigger-commands` Specify commands as a list of symbols that does NOT starts completion automatically. ## `ac-trigger-commands` Specify commands as a list of symbols that starts completion automatically. `self-insert-command` is one of default. ## `ac-trigger-commands-on-completing` Same as [`ac-trigger-commands`][] expect this will be used on completing. ## `ac-trigger-key` Specify a [Trigger Key][]. ## `ac-auto-start` Specify how completion will be started. `t` means always starting completion automatically. `nil` means never started automatically. An integer means completion will not be started until the value is more than a length of the completion target string. ## `ac-stop-words` Specify a list of strings that stops completion. ## `ac-use-dictionary-as-stop-words` Specify whether auto-complete uses dictionaries as stop words. ## `ac-ignore-case` Specify how distinguish case. `t` means always ignoring case. `nil` means never ignoring case. `smart` in symbol means ignoring case only when the completion target string doesn't include upper characters. ## `ac-dwim` "Do What I Mean" function. `t` means: * After selecting candidates, TAB will behave as RET * TAB will behave as RET only on candidate remains ## `ac-use-menu-map` Specify a special keymap (`ac-menu-map`) should be enabled when completion menu is displayed. `ac-menu-map` will be enabled when it is `t` and satisfy one of the following conditions: * `ac-auto-start` and `ac-auto-show-menu` are not `nil`, and completion menu is displayed after starting completion * Completion menu is displayed by `auto-complete` command * Completion menu is displayed by `ac-isearch` command ## `ac-use-overriding-local-map` Use only when operations is not affected. Internally it uses `overriding-local-map`, which is too powerful to use with keeping orthogonality. So don't use as much as possible. ## `ac-completion-face` Face of inline completion. ## `ac-candidate-face` Face of completion menu background. ## `ac-selection-face` Face of completion menu selection. ## `global-auto-complete-mode` Whether or not to use `auto-complete-mode` globally. It is `t` in general. ## `ac-user-dictionary` Specify a dictionary as a list of string for [Completion by Dictionary][]. ## `ac-user-dictionary-files` Specify a dictionary files as a list of string for [Completion by Dictionary][]. ## `ac-dictionary-directories` Specify a dictionary directories as a list of string for [Completion by Dictionary][]. ## `ac-sources` Specify sources as a list of [Source][]. This is a buffer local variable. ## `ac-completing-map` Keymap for completion. ## `ac-menu-map` Keymap for completion on completion menu. See also [`ac-use-menu-map`][]. ## `ac-mode-map` Keymap for `auto-complete-mode` enabled buffers. # Extend A meaning to extend `auto-complete-mode` is just defining a [Source][]. This section describe how to define a source. ## Prototype Source basically takes a form of the following: ```emacs-lisp (defvar ac-source-mysource1 '((prop . value) ...)) ``` As you see, source is just an associate list. You can define a source by combining pairs of defined property and its value. ## Example The most important property for source is [`candidates`][] property. This property describes how to generate completion candidates by giving a function, an expression, or a variable. A result of evaluation should be a list of strings. Here is an example to generate candidates "Foo", "Bar", and "Baz": ```emacs-lisp (defvar ac-source-mysource1 '((candidates . (list "Foo" "Bar" "Baz")))) ``` Then add this source to `ac-sources` and use: ```emacs-lisp (setq ac-sources '(ac-source-mysource1)) ``` It is successful if you have "Bar" and "Baz" by inserting "B". The example above has an expression `(list ...)` in `candidates` property. The expression specified there will not be byte-compiled, so you should not use an expression unless it is too simple, because it has a bad affection on performance. You should use a function instead maybe: ```emacs-lisp (defun mysource1-candidates () '("Foo" "Bar" "Baz")) (defvar ac-source-mysource1 '((candidates . mysource1-candidates))) ``` The function specified in `candidates` property will be called without any arguments on every time candidates updated. There is another way: a variable. ## Initialization You may want to initialize a source at first time to complete. Use `init` property in these cases. As same as `candidates` property, specify a function without any parameters or an expression. Here is an example: ```emacs-lisp (defvar mysource2-cache nil) (defun mysource2-init () (setq mysource2-cache '("Huge" "Processing" "Is" "Done" "Here"))) (defvar ac-source-mysource2 '((init . mysource2-init) (candidates . mysource2-cache))) ``` In this example, `mysource2-init` function does huge processing, and stores the result into `mysource2-cache` variable. Then specifying the variable in `candidates` property, this source prevents huge processing on every time update completions. There are possible usage: * Do `require` * Open buffers first of all ## Cache Caching strategy is important for `auto-complete-mode`. There are two major ways: `init` property and `cache` property that is described in this section. Specifying `cache` property in source definition, a result of evaluation of `candidates` property will be cached and reused the result as the result of evaluation of `candidates` property next time. Rewrite the example in previous section by using `cache` property. ```emacs-lisp (defun mysource2-candidates () '("Huge" "Processing" "Is" "Done" "Here")) (defvar ac-source-mysource2 '((candidates . mysource2-candidates) (cache))) ``` There is no performance problem because this source has `cache` property even if `candidates` property will do huge processing. ### Cache Expiration It is possible to keep among more wider scope than `init` property and `cache` property. It may be useful for remembering all function names which is rarely changed. In these cases, how can we clear cache property not at the expense of performance? This is true time use that functionality. Use `ac-clear-variable-after-save` to clear cache every time a buffer saved. Here is an example: ```emacs-lisp (defvar mysource3-cache nil) (ac-clear-variable-after-save 'mysource3-cache) (defun mysource3-candidates () (or mysource3-cache (setq mysource3-cache (list (format "Time %s" (current-time-string)))))) (defvar ac-source-mysource3 '((candidates . mysource3-candidates))) ``` Add this source to `ac-sources` and complete with "Time". You may see a time when completion has been started. After that, you also see the same time, because `mysource3-candidates` returns the cache as much as possible. Then, save the buffer once and complete with "Time" again. In this time, you may find a new time. An essence of this source is to use `ac-clear-variable-after-save` to manage a variable for cache. It is also possible to clear cache periodically. Use `ac-clear-variable-every-minute` to do that. A way to use is same to `ac-clear-variable-after-save` except its cache will be cleared every minutes. A builtin source `ac-source-functions` uses this functionality. ## Action [Completion by RET][] will evaluate a function or an expression specified in `action` property. A builtin sources `ac-source-abbrev` and `ac-source-yasnippet` use this property. ## Omni Completion *Omni Completion* is a type of completion which regards of a context of editing. A file name completion which completes with slashed detected and a member name completion in C/C++ with dots detected are omni completions. To make a source support for omni completion, use `prefix` property. A result of evaluation of `prefix` property must be a beginning point of completion target string. Retuning `nil` means the source is disabled within the context. Consider a source that completes mail addresses only after "To: ". First of all, define a mail address completion source as same as above. ```emacs-lisp (defvar ac-source-to-mailaddr '((candidates . (list "foo1@example.com" "foo2@example.com" "foo3@example.com")))) (setq ac-sources '(ac-source-to-mailaddr)) ``` Then enable completions only after "To: " by using `prefix` property. `prefix` property must be one of: * Regexp * Function * Expression Specifying a regexp, `auto-complete-mode` thinks of a point of start of group 1 or group 0 as a beginning point of completion target string by doing `re-search-backward`[^1] with the regexp. If you want to do more complicated, use a function or an expression instead. The beginning point that is evaluated here will be stored into [`ac-point`][]. In above example, regexp is enough. ``` ^To: \(.*\) ``` A reason why capturing group 1 is skipping "To: ". By adding this into the source definition, the source looks like: ```emacs-lisp (defvar ac-source-to-mailaddr '((candidates . (list "foo1@example.com" "foo2@example.com" "foo3@example.com")) (prefix . "^To: \\(.*\\)"))) ``` Add this source to `ac-sources` and then type "To: ". You will be able to complete mail addresses. [^1]: Strictly `re-search-backward` with the added adding `\=` at the end ## `ac-define-source` You may use an utility macro called `ac-define-source` which defines a source and a command. ```emacs-lisp (ac-define-source mysource3 '((candidates . (list "Foo" "Bar" "Baz")))) ``` This expression will be expanded like: ```emacs-lisp (defvar ac-source-mysource3 '((candidates . (list "Foo" "Bar" "Baz")))) (defun ac-complete-mysource3 () (interactive) (auto-complete '(ac-source-mysource3))) ``` A source will be defined as usual and in addition a command that completes with the source will be defined. Calling `auto-complete` without arguments will use `ac-sources` as default sources and with arguments will use the arguments as default sources. Considering compatibility, it is difficult to answer which you should use `defvar` and `ac-define-source`. Builtin sources are defined with `ac-define-sources`, so you can use them alone by binding some key to these commands such like `ac-complete-filename`. See also [Completion with specific source][]. ### Source Properties #### `init` Specify a function or an expression that is evaluated only once when completion is started. #### `candidates` Specify a function, an expression, or a variable to calculate candidates. Candidates should be a list of string. If [`cache`][] property is enabled, this property will be ignored twice or later. ### `prefix` Specify a regexp, a function, or an expression to find a point of completion target string for [Omni Completion][]. This source will be ignored when `nil` returned. If a regexp is specified, a start point of group 1 or group 2 will be used as a value. ### `requires` Specify a required number of characters of completion target string. If nothing is specified, `auto-complete-mode` uses [`ac-auto-start`][] instead. ### `action` Specify a function or an expression that is executed on [Completion by RET][]. ### `limit` Specify a limit of candidates. It overrides `ac-candidate-limit` partially. ### `symbol` Specify a symbol of candidate meaning in one character string. The symbol will be any character, but you should follow the rule: | Symbol | Meaning | |--------+------------------| | `s` | Symbol | | `f` | Function, Method | | `v` | Variable | | `c` | Constant | | `a` | Abbreviation | | `d` | Dictionary | ### `summary` Specify a summary of candidate in string. It should be used for summarizing the candidate in short string. ### `cache` Use [Cache][]. ### `require` Specify an integer or `nil`. This source will be ignored when the integer value is lager than a length of completion target string. `nil` means nothing ignored. ### `candidate-face` Specify a face of candidate. It overrides [`ac-candidate-face`][] partially. ### `selection-face` Specify a face of selection. It overrides [`ac-selection-face`][] partially. ### `depends` Specify a list of features (which are `require`d) that the source is depending. ### `available` Specify a function or an expression that describe the source is available or not. ### `document` Specify a function or an expression that returns documentation of the candidate. ## Variables Here is a list of often used variables. ### `ac-buffer` A buffer where completion started. ### `ac-point` A start point of completion target string. ### `ac-prefix` A string of completion target. ### `ac-limit` A limit of candidates. Its value may be one of [`ac-candidate-limit`][] and [`limit`][] property. ### `ac-candidates` A list of candidates. # Trouble Shooting ## Response Latency To keep much responsibility is very important for `auto-complete-mode`. However it is well known fact that a performance is a trade off of functionalities. List up options related to the performance. ### `ac-auto-start` {#trouble-ac-auto-start} For a larger number, it reduces a cost of generating completion candidates. Or you can remove the cost by setting `nil` and you can use when you truly need. See [Not to complete automatically][] for more details. ### `ac-delay` {#trouble-ac-delay} For a larger number, it reduces a cost of starting completion. ### `ac-auto-show-menu` {#trouble-ac-auto-show-menu} For a larger number, it reduces a displaying cost of completion menu. ### `ac-use-comphist` {#trouble-ac-use-comphist} Setting [`ac-use-comphist`][] to `nil` to disable [Candidate Suggestion][], it reduces a cost of suggestion. ### `ac-candidate-limit` {#trouble-ac-candidate-limit} For a property number, it reduces much computation of generating candidates. ## Completion menu is disrupted There is two major cases. ### Column Computation Case `auto-complete-mode` tries to reduce a cost of computation of columns to show completion menu correctly by using a optimized function at the expense of accuracy. However, it probably causes a menu to be disrupted. Not to use the optimized function, evaluate the following code: ```emacs-lisp (setq popup-use-optimized-column-computation nil) ``` ### Font Case There is a problem when render [IPA font](http://ossipedia.ipa.go.jp/ipafont/) with Xft in Ubuntu 9.10. Use [VL gothic](http://dicey.org/vlgothic/), which renders more suitably. Or disable Xft, then it can render correctly. We don't good answers now, but you may shot the troubles by changing font size with `set-face-font`. For instance, completion menu may be disrupted when displaying the menu including Japanese in NTEmacs. In such case, it is worth to try to evaluate the following code to fix it: ```emacs-lisp (set-face-font 'ac-candidate-face "MS Gothic 11") (set-face-font 'ac-selection-face "MS Gothic 11") ``` # Known Bugs ## Auto completion will not be started in a buffer `flyspell-mode` enabled {#flyspell-mode-bug} A way of delaying processes of `flyspell-mode` disables auto completion. You can avoid this problem by `M-x ac-flyspell-workaround`. You can write the following code into your `~/.emacs.d/init.el`. ```emacs-lisp (ac-flyspell-workaround) ``` ## `linum-mode` tries to display the line numbers even for the comletion menu {#linum-mode-bug} linum-mode tries to add the line numbers even for the comletion menu. To stop that annoying behavior, do `M-x ac-linum-workaround` or add the following code into your `~/.emacs.d/init.el`. ```emacs-lisp (ac-linum-workaround) ``` # Reporting Bugs Visit [Auto-Complete Issue Tracker](https://github.com/auto-complete/auto-complete/issues) and create a new issue. auto-complete-1.5.1/doc/style.css000066400000000000000000000004361267667017000167320ustar00rootroot00000000000000body { margin: 1em; } h1, h2, h3 { margin-top: 1em; } pre { margin: 0.5em 2em; padding: 0.5em; background-color: #eee; border: 1px solid #ddd; } table { margin-left: 1em; background-color: lightgray; } td, th { padding: 0.3em; } td { background-color: white; } auto-complete-1.5.1/etc/000077500000000000000000000000001267667017000150635ustar00rootroot00000000000000auto-complete-1.5.1/etc/install.el000066400000000000000000000037641267667017000170650ustar00rootroot00000000000000(require 'cl) (when (or (not (featurep 'auto-complete)) (yes-or-no-p "You are trying to upgrade auto-complete within an existed Emacs which has loaded its older version. It causes sometimes errors or installation fault. Are you sure? ")) (let* ((basedir (file-name-directory (directory-file-name (file-name-directory load-file-name)))) (default-dir "~/.emacs.d/") (todir (file-name-as-directory (or (car command-line-args-left) (read-directory-name "Install to: " default-dir default-dir)))) (basedictdir (concat basedir "dict")) (todictdir (concat todir "ac-dict"))) (cond ((not (file-directory-p basedir)) (error "Base directory is not found")) ((or (= (length todir) 0) (not (file-directory-p todir))) (error "To directory is empty or not found")) (t (message "Installing to %s from %s" todir basedir) (add-to-list 'load-path basedir) (make-directory todictdir t) (loop for file in (directory-files basedir t "^.*\\.elc?$") do (copy-file file todir t)) (loop for file in (directory-files basedictdir t "^[^\\.]") do (copy-file file todictdir t)) (let ((msg (concat "Successfully installed! Add the following code to your .emacs: " (if (and (not (member (expand-file-name todir) load-path)) (not (member (concat (expand-file-name todir) "/") load-path))) (format "(add-to-list 'load-path \"%s\")\n" (directory-file-name todir)) "") "(require 'auto-complete-config)\n" ;(format "(add-to-list 'ac-dictionary-directories \"%s\")\n" todictdir) "(ac-config-default)\n"))) (if noninteractive (progn (princ msg) (princ "\n")) (switch-to-buffer "*Installation Result*") (erase-buffer) (insert msg))))))) auto-complete-1.5.1/etc/test.txt000066400000000000000000000126521267667017000166110ustar00rootroot00000000000000-*- org -*- * How to test You can read this testcase document by following some rules. - (Code) is a code you should evaluate for testing the fixture. - (Expect) is a expected result of your test. If no (Expect) is given, it means Emacs doesn't display any errors. - (Assume) is a code you should evaluate before test. If no sources you should use are not given in each fixture, we assumes that you use following sources. Code: (defvar ac-source-test '((candidates list "Foo" "FooBar" "Bar" "Baz" "LongLongLine"))) (defvar ac-source-action-test '((candidates list "Action1" "Action2") (action . (lambda () (message "Done!"))))) (setq ac-sources '(ac-source-test ac-source-action-test)) * Setup ** Load auto-complete Code: (require 'auto-complete) (require 'auto-complete-config) ** Enable/disable auto-complete by M-x auto-complete-mode ** Use global-auto-complete-mode Code: (global-auto-complete-mode t) Expect: No errors. auto-complete-mode will be enabled automatically. * Auto-completion ** Type some string at *scratch* buffer Expect: Menu contains words in the current buffer. ** Type some string at right of the window Expect: Menu will be shown in right-to-left direction without any window scrolling. ** Continue to type some string above case Expect: Menu will never be disrupted. ** Type some string at the right of window with truncate-lines enabled Assume: (setq truncate-lines t) ** Type some string at the bottom of window Expect: Menu will be shown in bottom-to-top direction without any window scrolling. ** Delete a character at the word Expect: Completion will be started. ** Type some string so that a menu overlaps the end of buffer that doesn't have newline at the end Expect: Menu will be shown correctly. Newline at the end is not seen. ** Type some string with ac-auto-start nil Assume: (setq ac-auto-start nil) Expect: Completion will never be started automatically. ** Type some string with ac-auto-start t Assume: (setq ac-auto-start t) Expect: Completion will be started automatically if possible. ** Type 1 character with ac-auto-start 2 Assume: (setq ac-auto-start 2) Expect: Completion will never be started automatically. ** Type 2 characters with ac-auto-start 2 Assume: (setq ac-auto-start 2) Expect: Completion will be started automatically if possible. ** Type F Expect: Menu contains "Foo" and "FooBar" as candidates. Inline completion appears and it contains "oo" as common-part. ** Type TAB while completion with ac-dwim disabled Assume: (setq ac-dwim nil) Expect: (a) If there is common-part of candidates, auto-complete expands it. (b) If the prefix equals to the first of candidates, auto-complete selects next candidate. (c) Othewise, auto-complete expands selected candidate. ** Type TAB while completion with ac-dwim enabled Assume: (setq ac-dwim t) Expect: (a) If there is common-part of candidates, auto-complete expands it. (b) If only one candidate remains, or if it is done after selecting be ac-previous/ac-next, auto-complete simulates ac-complete. - If its candidate has an action, the action will be invoked. ("Action1" and "Action2" have an action) - Expand its candidate. (c) If the prefix equals to the first of candidates, auto-complete selects next candidate. (d) Othewise, auto-complete expands selected candidate. ** Type RET while completion Expect: Completion will be done for selected candidate. If its candidate has an action, the action will be invoked. Use "Action" for the prefix for test. * Configuration ** Change menu height Code: (setq ac-menu-height 20) Expect: Up to 20 candidates will be shown in a menu. ** Use trigger key facility Code: (ac-set-trigger-key "TAB") Expect: Now you can use TAB for auto-completion. It is enabled only when (a) After insertion/deletion command (b) With prefix (C-u TAB) Otherwise, it behaves as default. Generally, it is used with ac-auto-start disabled. ** Use ac-mode-map Code: (define-key ac-mode-map (kbd "M-TAB") 'auto-complete) Expect: Now you can start auto-complete with typing M-TAB anywhere. ** Change default ac-sources Code: (setq-default ac-sources '(ac-source-words-in-all-buffer)) Expect: Now default ac-sources has been changed for newly opened buffers. * Builtin sources ** ac-source-words-in-buffer Expect: Candidates will be words in the current buffer. ** ac-source-words-in-all-buffer Expect: Candidates will be words in all buffer. ** ac-source-words-in-same-mode-buffers Expect: Candidates will be words for buffers which major-mode same to the current buffer's one. ** ac-source-symbols Expect: Candidates will be all Emacs Lisp symbols. ** ac-source-abbrev Expect: Candidates will be abbreviations of local-abbrev-table and global-abbrev-table. ** ac-source-files-in-current-dir Expect: Candidates will be files contained by the current directory (default-directory). ** ac-source-filename Expect: Candidates will be absolute/relative file name. This source will be executed when the prefix seems to be file name. That is, the prefix contains slash (/) and a string between first to last flash is a valid directory. When ac-complete, this continues to complete if the prefix is a valid directory. ** ac-source-imenu Expect: Candidates will be a node of imenu tree. auto-complete-1.5.1/tests/000077500000000000000000000000001267667017000154525ustar00rootroot00000000000000auto-complete-1.5.1/tests/auto-complete-test.el000066400000000000000000000124131267667017000215300ustar00rootroot00000000000000(require 'ert) (require 'auto-complete) (require 'auto-complete-config) ;; Move this into test case or setup macro once we start testing with ;; non-default config. (ac-config-default) (defmacro ac-test-with-common-setup (&rest body) (declare (indent 0) (debug t)) `(save-excursion (with-temp-buffer (switch-to-buffer (current-buffer)) (auto-complete-mode 1) (emacs-lisp-mode) (unwind-protect (progn ,@body) (when ac-menu (ac-menu-delete))) ))) (ert-deftest ac-test-version-variable () (should-not (null ac-version)) (should (stringp ac-version))) (ert-deftest ac-test-version-major () (should-not (null ac-version-major)) (should (numberp ac-version-major))) (ert-deftest ac-test-version-minor () (should-not (null ac-version-minor)) (should (numberp ac-version-minor))) (ert-deftest ac-test-simple-invocation () (ac-test-with-common-setup (let ((ac-source-test '((candidates list "Foo" "FooBar" "Bar" "Baz" "LongLongLine"))) (ac-source-action-test '((candidates list "Action1" "Action2") (action . (lambda () (message "Done!"))))) (ac-sources '(ac-source-test ac-source-action-test))) (should-not (popup-live-p ac-menu)) (should (eq ac-menu nil)) (insert "Foo") (auto-complete) (should (popup-live-p ac-menu)) (should (equal (popup-list ac-menu) '("Foo" "FooBar"))) ))) (ert-deftest ac-test-single-candidate () (ac-test-with-common-setup (let ((ac-source-test '((candidates list "Foo" "FooBar" "Bar" "Baz" "LongLongLine")))) (setq ac-sources '(ac-source-test)) (should-not (popup-live-p ac-menu)) (should (eq ac-menu nil)) (insert "FooB") (auto-complete) (should-not (popup-live-p ac-menu)) (should (eq ac-menu nil)) (should (string= (buffer-string) "FooBar")) ))) (ert-deftest ac-test-complete-common-part () (ac-test-with-common-setup (let ((ac-source-test '((candidates list "Foo" "FooBar" "Bar" "Baz" "LongLongLine")))) (setq ac-sources '(ac-source-test)) (execute-kbd-macro "Fo") (auto-complete) (ac-stop) (should (string= (buffer-string) "Foo")) ))) (ert-deftest ac-test-simple-update () (ac-test-with-common-setup (let ((ac-source-test '((candidates list "Foo" "FooBar" "Bar" "Baz" "LongLongLine"))) (ac-source-action-test '((candidates list "Action1" "Action2") (action . (lambda () (message "Done!"))))) (ac-sources '(ac-source-test ac-source-action-test))) (should-not (popup-live-p ac-menu)) (should (eq ac-menu nil)) (insert "Foo") (auto-complete) (execute-kbd-macro "B") (ac-update-greedy) (should (popup-live-p ac-menu)) (should (equal (popup-list ac-menu) '("FooBar"))) ))) (ert-deftest ac-test-complete-common-part-when-buffer-undo-list-is-t () (ac-test-with-common-setup (let ((ac-source-test '((candidates list "Foo" "FooBar" "Bar" "Baz" "LongLongLine"))) (ac-sources '(ac-source-test))) (execute-kbd-macro "Fo") (let ((last-command this-command) (buffer-undo-list t)) (auto-complete)) (ac-stop) (should (string= (buffer-string) "Foo")) ))) (ert-deftest ac-test-update-no-candidate () (ac-test-with-common-setup (let ((ac-source-test '((candidates list "Foo" "FooBar" "Bar" "Baz" "LongLongLine")))) (setq ac-sources '(ac-source-test)) (should-not (popup-live-p ac-menu)) (should (eq ac-menu nil)) (insert "Foo") (auto-complete) (execute-kbd-macro "A") (ac-update-greedy) (should-not (popup-live-p ac-menu)) (should (eq ac-menu nil)) (should (string= (buffer-string) "FooA")) ))) (ert-deftest ac-test-default-selection () (ac-test-with-common-setup (let ((ac-source-test '((candidates list "Action1" "Action2" "Action3")))) (setq ac-sources '(ac-source-test)) (should-not (popup-live-p ac-menu)) (should (eq ac-menu nil)) (insert "Action") (auto-complete) (should (popup-live-p ac-menu)) (should (equal (popup-list ac-menu) '("Action1" "Action2" "Action3"))) (should (equal (ac-selected-candidate) "Action1")) ))) (ert-deftest ac-test-delete-duplicate-candidates () (ac-test-with-common-setup (let ((ac-source-test '((candidates list "Action1" "Action1" "Action2")))) (setq ac-sources '(ac-source-test)) (should-not (popup-live-p ac-menu)) (should (eq ac-menu nil)) (insert "Action") (auto-complete) (should (equal (popup-list ac-menu) '("Action1" "Action2"))) ))) (ert-deftest ac-test-duplicate-candidates-but-different-properties () (ac-test-with-common-setup (let ((ac-source-test '((candidates list (propertize "Action1" 'action 'foo) (propertize "Action1" 'action 'foo) (propertize "Action1" 'action 'bar))))) (setq ac-sources '(ac-source-test)) (should-not (popup-live-p ac-menu)) (should (eq ac-menu nil)) (insert "Action") (auto-complete) (should (equal (popup-list ac-menu) '("Action1" "Action1"))) ))) auto-complete-1.5.1/tests/run-test.el000066400000000000000000000007651267667017000175650ustar00rootroot00000000000000;; Usage: ;; ;; cask exec emacs -Q -l tests/run-test.el # interactive mode ;; cask exec emacs -batch -Q -l tests/run-test.el # batch mode (defvar ac-test-dir (file-name-directory load-file-name)) (defvar ac-root-dir (concat ac-test-dir "..")) ;; Setup `load-path' (mapc (lambda (p) (add-to-list 'load-path p)) (list ac-test-dir ac-root-dir)) ;; Load tests (load "auto-complete-test") ;; Run tests (if noninteractive (ert-run-tests-batch-and-exit) (ert t))